| Files | Last commit | Last update |
|---|---|---|
Run each routine of an agent in its own thread (#4777) * Run each routine of an agent in its own thread Each agent routine now has its own side thread, and its runs use the lane of that thread. Thus a routine does not wait for the chat or for other routines, and the chat does not wait for a routine. Each run starts a new provider session in the routine thread. The answer stays in the routine thread. The chat shows the run with an "Open thread" link, and a Test run opens the routine thread. Migration 54 adds routine_id to the agent thread projection, with a unique partial index. The default thread limit changes from 2 to 4. The agent-tasks-v1 and agent-task-limit-v1 wire contracts do not change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep chat tools and routine digests correct in routine threads - A routine thread is not an execution thread for the tool router, so a routine run can call await_event and start_task, as a run in the agent's chat could. - A routine digest and the handoff cleanup after a chat turn start change the handoff one at a time. The cleanup removes only the part that the turn sent, so a digest that arrives during a chat turn start stays for the next turn. - A routine run gives its thread the routine's current name, unless a person renamed the thread. - Docs and release notes: routine threads have no Computer Use. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Update the status of runs in routine threads The queue that the routine scheduler reconciled did not include side-thread deliveries, so a run in a routine thread stayed queued. Its History row and its chat marker did not change. The skip policy of a spent plan also did not cancel these runs. Read the routine deliveries of side threads for both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Reuse reopen for routine threads and fix the default task limit in docs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Read the answer of a routine run from the thread that ran it Routine flows, routine result destinations and local scripts read the answer of a run from the agent's chat only. A run in a routine thread gave no answer to them. The turn row now names the thread of the turn. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Notify for routine runs in their own threads A non-quiet turn in a routine thread sends the local-only event routine-thread-turn-completed. The desktop notification, the phone push and the completion sound use it, read the answer from the routine thread, and a click opens that thread. The run's own turn-completed stays in AgentTasks, so the chat keeps its turn state. The Team API adapters drop the new event. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Remove the old doc comment of runsInOwnSession Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> | 6 days ago | |
Let an agent find work from its other chats (#5543) * Let an agent find work from its other chats An agent now reads its own chat and its side threads with openbot.history_search and openbot.history_read. A search with no taskId searches all of its chats in one call. A search with no query lists the chats with their last request and reply. A messaging chat searches only itself, and a channel gets no history. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Say in the handoff text that history tools read all chats Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> | 3 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 6 days ago | ||
| 3 days ago |