docs(agent): update steering docs for deferred tool execution closes #2330

This commit is contained in:
Mario Zechner
2026-03-18 03:49:16 +01:00
parent 16a010fd21
commit 8a8e2a8049
8 changed files with 21 additions and 19 deletions

View File

@@ -310,10 +310,10 @@ agent.clearAllQueues();
Use clearSteeringQueue, clearFollowUpQueue, or clearAllQueues to drop queued messages.
When steering messages are detected after a tool completes:
1. Remaining tools are skipped with error results
When steering messages are detected after a turn completes:
1. All tool calls from the current assistant message have already finished
2. Steering messages are injected
3. LLM responds to the interruption
3. The LLM responds on the next turn
Follow-up messages are checked only when there are no more tool calls and no steering messages. If any are queued, they are injected and another turn runs.

View File

@@ -304,8 +304,9 @@ export class Agent {
}
/**
* Queue a steering message to interrupt the agent mid-run.
* Delivered after current tool execution, skips remaining tools.
* Queue a steering message while the agent is running.
* Delivered after the current assistant turn finishes executing its tool calls,
* before the next LLM call.
*/
steer(m: AgentMessage) {
this.steeringQueue.push(m);

View File

@@ -159,9 +159,9 @@ export interface AgentLoopConfig extends SimpleStreamOptions {
/**
* Returns steering messages to inject into the conversation mid-run.
*
* Called after each tool execution to check for user interruptions.
* If messages are returned, remaining tool calls are skipped and
* these messages are added to the context before the next LLM call.
* Called after the current assistant turn finishes executing its tool calls.
* If messages are returned, they are added to the context before the next LLM call.
* Tool calls from the current assistant message are not skipped.
*
* Use this for "steering" the agent while it's working.
*