feat: add 'processing' agent state for tool calling #4469
+11
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new
"processing"state toAgentStateto distinguish when the agent is executing function tools vs thinking (LLM inference). This allows applications to show appropriate UI/animations when the agent is executing tool calls, which typically take time and are silent.Changes:
"processing"to theAgentStateLiteral type inevents.pyagent_activity.pyto emit"processing"instead of"thinking"when tool execution begins:test_tool_calltest to verify the new state transition sequence (now expects 7 state events instead of 6)State transition during tool calls:
speaking→processing(tool execution) →thinking(LLM inference for response) →speaking→listeningCloses #4460
Review & Testing Checklist for Human
"processing"is the preferred name vs alternatives like"tool_calling"- this affects the public API"processing"state (only two locations were changed)Notes