Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

multiagent-orchestration changedmanaged-agents/multiagent-orchestration

Nearest release: v2.1.296, published an hour after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Recorded here
Lines+35added
Lines−22removed
From line 92 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits27to this page, all time

The whole hunk

from line 92, old and new numbered
/
lines
from line 92
9292 ```markdown
9393 ---
9494 name: reviewer
95 model: claude-haiku-4-5
95 model: claude-haiku-5-5
9696 ---
9797 
9898 You are a code reviewer.
from line 103
103103 ```markdown
104104 ---
105105 name: test-writer
106 model: claude-haiku-4-5
106 model: claude-haiku-5-5
107107 ---
108108 
109109 You write unit tests.
from line 426
426426 research_agent_id=$(curl --fail-with-body -sS "$BASE/v1/agents" "${H[@]}" --data @- <<'EOF' | jq -er '.id'
427427 {
428428 "name": "researcher",
429 "model": "claude-haiku-4-5",
429 "model": "claude-haiku-5-5",
430430 "mcp_servers": [{"type": "url", "name": "github", "url": "https://api.githubcopilot.com/mcp/"}],
431431 "tools": [{"type": "mcp_toolset", "mcp_server_name": "github"}]
432432 }
from line 471
471471 ```markdown
472472 ---
473473 name: researcher
474 model: claude-haiku-4-5
474 model: claude-haiku-5-5
475475 mcp_servers:
476476 - type: url
477477 name: github
from line 487
487487 ```python Python
488488 research_agent = client.beta.agents.create(
489489 name="researcher",
490 model="claude-haiku-4-5",
490 model="claude-haiku-5-5",
491491 mcp_servers=[
492492 {"type": "url", "name": "github", "url": "https://api.githubcopilot.com/mcp/"},
493493 ],
from line 508
508508 ```typescript TypeScript
509509 const researchAgent = await client.beta.agents.create({
510510 name: "researcher",
511 model: "claude-haiku-4-5",
511 model: "claude-haiku-5-5",
512512 mcp_servers: [
513513 { type: "url", name: "github", url: "https://api.githubcopilot.com/mcp/" },
514514 ],
from line 530
530530 var researchAgent = await client.Beta.Agents.Create(new()
531531 {
532532 Name = "researcher",
533 Model = BetaManagedAgentsModel.ClaudeHaiku4_5,
533 Model = BetaManagedAgentsModel.ClaudeHaiku5_5,
534534 McpServers =
535535 [
536536 new()
from line 579
579579 ```go Go
580580 researcher, err := client.Beta.Agents.New(ctx, anthropic.BetaAgentNewParams{
581581 Name: "researcher",
582 Model: anthropic.BetaManagedAgentsModelConfigParams{ID: anthropic.BetaManagedAgentsModelClaudeHaiku4_5},
582 Model: anthropic.BetaManagedAgentsModelConfigParams{ID: anthropic.BetaManagedAgentsModelClaudeHaiku5_5},
583583 MCPServers: []anthropic.BetaManagedAgentsURLMCPServerParams{{
584584 Type: anthropic.BetaManagedAgentsURLMCPServerParamsTypeURL,
585585 Name: "github",
from line 623
623623 var researcher = client.beta().agents().create(
624624 AgentCreateParams.builder()
625625 .name("researcher")
626 .model(BetaManagedAgentsModel.CLAUDE_HAIKU_4_5)
626 .model(BetaManagedAgentsModel.CLAUDE_HAIKU_5_5)
627627 .addMcpServer(BetaManagedAgentsUrlMcpServerParams.builder()
628628 .name("github")
629629 .type(BetaManagedAgentsUrlMcpServerParams.Type.URL)
from line 657
657657 ```php PHP
658658 $researchAgent = $client->beta->agents->create(
659659 name: 'researcher',
660 model: 'claude-haiku-4-5',
660 model: 'claude-haiku-5-5',
661661 mcpServers: [
662662 ['type' => 'url', 'name' => 'github', 'url' => 'https://api.githubcopilot.com/mcp/'],
663663 ],
from line 684
684684 ```ruby Ruby
685685 research_agent = client.beta.agents.create(
686686 name: "researcher",
687 model: "claude-haiku-4-5",
687 model: "claude-haiku-5-5",
688688 mcp_servers: [
689689 {type: "url", name: "github", url: "https://api.githubcopilot.com/mcp/"}
690690 ],
from line 832
832832 curl -fsS "https://api.anthropic.com/v1/sessions/$SESSION_ID/threads" \
833833 -H "x-api-key: $ANTHROPIC_API_KEY" \
834834 -H "anthropic-version: 2023-06-01" \
835 -H "anthropic-beta: managed-agents-2026-04-01" \
836 | jq -r '.data[] | "[\(.agent.name)] \(.status)"'
835 -H "anthropic-beta: managed-agents-2026-04-01"
837836 ```
838837 
839838 ```bash CLI
from line 841
842841 
843842 ```python Python
844843 for thread in client.beta.sessions.threads.list(session.id):
845 print(f"[{thread.agent.name}] {thread.status}")
844 agent = thread.agent
845 label = agent.type if agent.type == "advisor" else agent.name
846 print(f"[{label}] {thread.status}")
846847 ```
847848 
848849 ```typescript TypeScript
849850 for await (const thread of client.beta.sessions.threads.list(session.id)) {
850 const name = thread.agent.type === "agent" ? thread.agent.name : "advisor";
851 console.log(`[${name}] ${thread.status}`);
851 const label = thread.agent.type === "advisor" ? thread.agent.type : thread.agent.name;
852 console.log(`[${label}] ${thread.status}`);
852853 }
853854 ```
854855 
from line 856
855856 ```csharp C#
856857 await foreach (var thread in (await client.Beta.Sessions.Threads.List(session.ID)).Paginate())
857858 {
858 Console.WriteLine($"[{thread.Agent.Name}] {thread.Status}");
859 var label = thread.Agent.TryPickBetaManagedAgentsSessionThread(out var agent)
860 ? agent.Name
861 : thread.Agent.Json.GetProperty("type").GetString();
862 Console.WriteLine($"[{label}] {thread.Status.Raw()}");
859863 }
860864 ```
861865 
from line 867
863867 threads := client.Beta.Sessions.Threads.ListAutoPaging(ctx, session.ID, anthropic.BetaSessionThreadListParams{})
864868 for threads.Next() {
865869 thread := threads.Current()
866 fmt.Printf("[%s] %s\n", thread.Agent.Name, thread.Status)
870 label := cmp.Or(thread.Agent.Name, thread.Agent.Type)
871 fmt.Printf("[%s] %s\n", label, thread.Status)
867872 }
868873 if err := threads.Err(); err != nil {
869874 panic(err)
from line 877
872877 
873878 ```java Java
874879 for (var thread : client.beta().sessions().threads().list(session.id()).autoPager()) {
875 var name = thread.agent().isAgent() ? thread.agent().asAgent().name() : "advisor";
876 IO.println("[" + name + "] " + thread.status());
880 var agent = thread.agent();
881 var label = agent.isAgent() ? agent.asAgent().name() : agent.type().asString();
882 IO.println("[" + label + "] " + thread.status());
877883 }
878884 ```
879885 
880886 ```php PHP
881887 foreach ($client->beta->sessions->threads->list($session->id)->pagingEachItem() as $thread) {
882 echo "[{$thread->agent->name}] {$thread->status}\n";
888 $label = $thread->agent instanceof \Anthropic\Beta\Agents\BetaManagedAgentsAdvisor
889 ? $thread->agent->type
890 : $thread->agent->name;
891 echo "[{$label}] {$thread->status}\n";
883892 }
884893 ```
885894 
886895 ```ruby Ruby
887896 client.beta.sessions.threads.list(session.id).auto_paging_each do |thread|
888 puts "[#{thread.agent.name}] #{thread.status}"
897 agent = thread.agent
898 label = agent.type == :advisor ? agent.type : agent.name
899 puts "[#{label}] #{thread.status}"
889900 end
890901 ```
891902 </CodeGroup>
from line 1476
14651476```
14661477 
14671478Post `user.tool_confirmation` (with `tool_use_id`) or `user.custom_tool_result` (with `custom_tool_use_id`); the server routes the response to the correct thread automatically.
1479 
1480The session goes `idle` only when no thread is `running`, so `session.status_idle` can arrive long after a subagent's call. You don't have to wait for it: send the `user.custom_tool_result` as soon as the cross-posted `agent.custom_tool_use` event arrives.
14681481 
14691482Under `auto`, your `user.message` events can lead the server to allow a call it would otherwise deny. Nothing in a subagent's thread counts as your intent: your client posts no messages there, and the coordinator's messages to the subagent do not count. When the server denies a call under `auto`, nothing is cross-posted: the event and the error tool result appear only on the subagent's own [thread stream](https://platform.claude.com/docs/en/managed-agents/multiagent-orchestration#session-thread-events), and the subagent keeps running.
14701483 
Feedback