Appearance
Class: ContextManager
Defined in: agent.ts:160
Manages conversation context and message history for the agent.
Constructors
Constructor
ts
new ContextManager(
systemPrompt,
llmClient,
tools,
workspaceDir,
tokenLimit,
events): ContextManager;Defined in: agent.ts:172
Parameters
systemPrompt
string
llmClient
LLMClient
tools
Tool[]
workspaceDir
string
tokenLimit
number = 80000
events
Returns
ContextManager
Properties
apiTotalTokens
ts
apiTotalTokens: number;Defined in: agent.ts:169
events
ts
events: AgentEventsEmitter;Defined in: agent.ts:165
llmClient
ts
llmClient: LLMClient;Defined in: agent.ts:161
messages
ts
messages: Message[];Defined in: agent.ts:168
skipNextTokenCheck
ts
skipNextTokenCheck: boolean;Defined in: agent.ts:170
systemPrompt
ts
systemPrompt: string;Defined in: agent.ts:163
tokenLimit
ts
tokenLimit: number;Defined in: agent.ts:164
toolDict
ts
toolDict: Map<string, Tool>;Defined in: agent.ts:167
tools
ts
tools: Tool[];Defined in: agent.ts:166
workspaceDir
ts
workspaceDir: string;Defined in: agent.ts:162
Accessors
context
Get Signature
ts
get context(): Context;Defined in: agent.ts:209
Get current conversation context (messages and tools).
Returns
Methods
addAssistantMessage()
ts
addAssistantMessage(response): void;Defined in: agent.ts:219
Add an assistant message to context.
Parameters
response
Returns
void
addToolMessage()
ts
addToolMessage(
result,
toolCallId,
name): void;Defined in: agent.ts:229
Add a tool result message to context.
Parameters
result
ToolResult
toolCallId
string
name
string
Returns
void
addUserMessage()
ts
addUserMessage(content): void;Defined in: agent.ts:214
Add a user message to context.
Parameters
content
string
Returns
void
createSummary()
ts
createSummary(messages, roundNum): Promise<string>;Defined in: agent.ts:448
Create summary for one execution round.
Parameters
messages
Message[]
roundNum
number
Returns
Promise<string>
estimateTokens()
ts
estimateTokens(): number;Defined in: agent.ts:247
Accurately calculate token count for message history using tiktoken.
Returns
number
estimateTokensFallback()
ts
estimateTokensFallback(): number;Defined in: agent.ts:289
Fallback token estimation method (when tiktoken is unavailable).
Returns
number
getHistory()
ts
getHistory(): Message[];Defined in: agent.ts:516
Get message history (shallow copy).
Returns
Message[]
summarizeMessages()
ts
summarizeMessages(): Promise<void>;Defined in: agent.ts:328
Check and summarize message history if token limit exceeded.
Strategy (Agent mode):
- Keep all user messages (these are user intents)
- Summarize content between each user-user pair (agent execution process)
- If last round is still executing (has agent/tool messages but no next user), also summarize
- Structure: system -> user1 -> summary1 -> user2 -> summary2 -> user3 -> summary3 (if executing)
Summary is triggered when EITHER:
- Local token estimation exceeds limit
- API reported total_tokens exceeds limit
Returns
Promise<void>
updateApiTokens()
ts
updateApiTokens(response): void;Defined in: agent.ts:240
Update API reported token count.
Parameters
response
Returns
void