One read of Claude Developer Platformapi-20260820T170710Z
229 pages moved out of 583 read.
Pages moved
229
significant first
Pages read
583
in this capture
Captured
17:07 UTC
Corpus hash
9cf0330dc487
corpus-hash
What this read moved
126-150 of 229, page 6 of 10This capture is too large to show at once. Changes 126-150 of 229 are below, significant first; the rest are on the following screens.
managed-agents/github Changed · +22 / -10 lines
from line 47
4747 )
4848 ```
4949
50 ```bash CLI
51 AGENT_ID=$(ant beta:agents create \
52 --name "Code Reviewer" \
53 --model '{id: claude-opus-5}' \
54 --system "You are a code review assistant with access to GitHub." \
55 --mcp-server '{type: url, name: github, url: https://api.githubcopilot.com/mcp/}' \
56 --tool '{type: agent_toolset_20260401}' \
57 --tool '{type: mcp_toolset, mcp_server_name: github}' \
58 --transform id --raw-output)
59 ```
50 <MultiFileExample language="cli" label="CLI">
51 ```bash CLI
52 AGENT_ID=$(ant beta:agents create --transform id --raw-output < code-reviewer.agent.yaml)
53 ```
54
55 <File filename="code-reviewer.agent.yaml">
56 ```yaml
57 name: Code Reviewer
58 model:
59 id: claude-opus-5
60 system: You are a code review assistant with access to GitHub.
61 mcp_servers:
62 - type: url
63 name: github
64 url: https://api.githubcopilot.com/mcp/
65 tools:
66 - type: agent_toolset_20260401
67 - type: mcp_toolset
68 mcp_server_name: github
69 ```
70 </File>
71 </MultiFileExample>
6072
6173 ```python Python
6274 agent = client.beta.agents.create(
managed-agents/mcp-connector Changed · +21 / -9 lines
from line 51
5151 agent_id=$(jq -r '.id' <<<"$agent_response")
5252 ```
5353
54 ```bash CLI
55 AGENT_ID=$(ant beta:agents create \
56 --name "GitHub Assistant" \
57 --model '{id: claude-opus-5}' \
58 --mcp-server '{type: url, name: github, url: "https://api.githubcopilot.com/mcp/"}' \
59 --tool '{type: agent_toolset_20260401}' \
60 --tool '{type: mcp_toolset, mcp_server_name: github}' \
61 --transform id --raw-output)
62 ```
54 <MultiFileExample language="cli" label="CLI">
55 ```bash CLI
56 AGENT_ID=$(ant beta:agents create --transform id --raw-output < github-assistant.agent.yaml)
57 ```
58
59 <File filename="github-assistant.agent.yaml">
60 ```yaml
61 name: GitHub Assistant
62 model:
63 id: claude-opus-5
64 mcp_servers:
65 - type: url
66 name: github
67 url: https://api.githubcopilot.com/mcp/
68 tools:
69 - type: agent_toolset_20260401
70 - type: mcp_toolset
71 mcp_server_name: github
72 ```
73 </File>
74 </MultiFileExample>
6375
6476 ```python Python
6577 agent = client.beta.agents.create(
managed-agents/migration Changed · +49 / -32 lines
from line 300
300300 kill "${stream_pid}" 2>/dev/null || true
301301 ```
302302
303 ```bash CLI
304 { read -r _ agent_id; read -r _ agent_version; } < <(ant beta:agents create \
305 --name "Task Runner" \
306 --model claude-opus-5 \
307 --tool '{type: agent_toolset_20260401}' \
308 --transform '{id,version}' --format yaml)
303 <MultiFileExample language="cli" label="CLI">
304 ```bash CLI
305 { read -r _ agent_id; read -r _ agent_version; } < <(ant beta:agents create \
306 --transform '{id,version}' --format yaml < task-runner.agent.yaml)
309307
310 session_id=$(ant beta:sessions create \
311 --agent "{type: agent, id: $agent_id, version: $agent_version}" \
312 --environment-id "$environment_id" \
313 --transform id --raw-output)
308 session_id=$(ant beta:sessions create \
309 --agent "{type: agent, id: $agent_id, version: $agent_version}" \
310 --environment-id "$environment_id" \
311 --transform id --raw-output)
314312
315 # Open the stream first, then send the user message
316 exec {stream}< <(ant beta:sessions:events stream \
317 --session-id "$session_id" \
318 --transform type --raw-output)
313 # Open the stream first, then send the user message
314 exec {stream}< <(ant beta:sessions:events stream \
315 --session-id "$session_id" \
316 --transform type --raw-output)
319317
320 ant beta:sessions:events send \
321 --session-id "$session_id" \
322 --event "{type: user.message, content: [{type: text, text: \"$task\"}]}" \
323 > /dev/null
318 ant beta:sessions:events send \
319 --session-id "$session_id" \
320 --event "{type: user.message, content: [{type: text, text: \"$task\"}]}" \
321 > /dev/null
324322
325 # Wait for the session to go idle (grep exits at the first match)
326 grep -m1 -x 'session.status_idle' <&"$stream" > /dev/null
327 exec {stream}<&-
328 ```
323 # Wait for the session to go idle (grep exits at the first match)
324 grep -m1 -x 'session.status_idle' <&"$stream" > /dev/null
325 exec {stream}<&-
326 ```
329327
328 <File filename="task-runner.agent.yaml">
329 ```yaml
330 name: Task Runner
331 model: claude-opus-5
332 tools:
333 - type: agent_toolset_20260401
334 ```
335 </File>
336 </MultiFileExample>
337
330338 ```python Python
331339 agent = client.beta.agents.create(
332340 name="Task Runner",
from line 1332
13241332 --json "$(jq -n --argjson version "$AGENT_VERSION" '{version: $version, model: "claude-opus-5"}')"
13251333 ```
13261334
1327 ```bash CLI
1328 ant beta:agents update \
1329 --agent-id "$AGENT_ID" \
1330 --version "$AGENT_VERSION" \
1331 --model claude-opus-5
1332 ```
1335 <MultiFileExample language="cli" label="CLI">
1336 ```bash CLI
1337 ant beta:agents update --agent-id "$AGENT_ID" < agent.yaml
1338 ```
1339
1340 <File filename="agent.yaml">
1341 ```yaml
1342 name: Task Runner
1343 model: claude-opus-5
1344 system: You are a task automation agent. Complete the task you are given end to end.
1345 tools:
1346 - type: agent_toolset_20260401
1347 ```
1348 </File>
1349 </MultiFileExample>
13331350
13341351 ```python Python
13351352 client.beta.agents.update(
managed-agents/multiagent-orchestration Changed · +66 / -50 lines
from line 63
6363 )
6464 ```
6565
66 ```bash CLI
67 ant beta:agents create <<YAML
68 name: Engineering Lead
69 model: claude-opus-5
70 system: You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.
71 tools:
72 - type: agent_toolset_20260401
73 multiagent:
74 type: coordinator
75 agents:
76 - type: agent
77 id: $REVIEWER_AGENT_ID
78 - type: agent
79 id: $TEST_WRITER_AGENT_ID
80 YAML
81 ```
66 <MultiFileExample language="cli" label="CLI">
67 ```bash CLI
68 ant beta:agents create < coordinator.agent.yaml
69 ```
8270
71 <File filename="coordinator.agent.yaml">
72 ```yaml
73 name: Engineering Lead
74 model: claude-opus-5
75 system: You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.
76 tools:
77 - type: agent_toolset_20260401
78 multiagent:
79 type: coordinator
80 agents:
81 - type: agent
82 id: $REVIEWER_AGENT_ID # replace before running command
83 - type: agent
84 id: $TEST_WRITER_AGENT_ID # replace before running command
85 ```
86 </File>
87 </MultiFileExample>
88
8389 ```python Python
8490 coordinator = client.beta.agents.create(
8591 name="Engineering Lead",
from line 426
420426 echo "$session_id"
421427 ```
422428
423 ```bash CLI
424 research_agent_id=$(ant beta:agents create --transform id --raw-output <<YAML
425 name: researcher
426 model: claude-haiku-4-5
427 mcp_servers:
428 - type: url
429 name: github
430 url: https://api.githubcopilot.com/mcp/
431 tools:
432 - type: mcp_toolset
433 mcp_server_name: github
434 YAML
435 )
429 <MultiFileExample language="cli" label="CLI">
430 ```bash CLI
431 research_agent_id=$(ant beta:agents create --transform id --raw-output < researcher.agent.yaml)
432 ```
436433
437 coordinator_id=$(ant beta:agents create --transform id --raw-output <<YAML
438 name: coordinator
439 model: claude-opus-5
440 tools:
441 - type: agent_toolset_20260401
442 multiagent:
443 type: coordinator
444 agents:
445 - type: agent
446 id: $research_agent_id
447 YAML
448 )
434 <File filename="researcher.agent.yaml">
435 ```yaml
436 name: researcher
437 model: claude-haiku-4-5
438 mcp_servers:
439 - type: url
440 name: github
441 url: https://api.githubcopilot.com/mcp/
442 tools:
443 - type: mcp_toolset
444 mcp_server_name: github
445 ```
446 </File>
449447
450 session_id=$(ant beta:sessions create \
451 --agent "$coordinator_id" \
452 --environment-id "$environment_id" \
453 --vault-id "$vault_id" \
454 --transform id --raw-output)
455 echo "$session_id"
456 ```
448 <File filename="subagent-coordinator.agent.yaml">
449 ```yaml
450 name: coordinator
451 model: claude-opus-5
452 tools:
453 - type: agent_toolset_20260401
454 multiagent:
455 type: coordinator
456 agents:
457 - type: agent
458 id: $research_agent_id # replace before running command
459 ```
460 </File>
461
462 ```bash CLI
463 coordinator_id=$(ant beta:agents create --transform id --raw-output < subagent-coordinator.agent.yaml)
464
465 session_id=$(ant beta:sessions create \
466 --agent "$coordinator_id" \
467 --environment-id "$environment_id" \
468 --vault-id "$vault_id" \
469 --transform id --raw-output)
470 echo "$session_id"
471 ```
472 </MultiFileExample>
457473
458474 ```python Python
459475 research_agent = client.beta.agents.create(
managed-agents/permission-policies Changed · +42 / -30 lines
from line 50
5050 }')
5151 ```
5252
53 ```bash CLI
54 ant beta:agents create <<'YAML'
55 name: Coding Assistant
56 model: claude-opus-5
57 tools:
58 - type: agent_toolset_20260401
59 default_config:
60 permission_policy:
61 type: always_ask
62 YAML
63 ```
53 <MultiFileExample language="cli" label="CLI">
54 ```bash CLI
55 ant beta:agents create < agent.yaml
56 ```
6457
58 <File filename="agent.yaml">
59 ```yaml
60 name: Coding Assistant
61 model: claude-opus-5
62 tools:
63 - type: agent_toolset_20260401
64 default_config:
65 permission_policy:
66 type: always_ask
67 ```
68 </File>
69 </MultiFileExample>
70
6571 ```python Python
6672 agent = client.beta.agents.create(
6773 name="Coding Assistant",
from line 240
234240 }')
235241 ```
236242
237 ```bash CLI
238 ant beta:agents create <<'YAML'
239 name: Dev Assistant
240 model: claude-opus-5
241 mcp_servers:
242 - type: url
243 name: github
244 url: https://mcp.example.com/github
245 tools:
246 - type: agent_toolset_20260401
247 - type: mcp_toolset
248 mcp_server_name: github
249 default_config:
250 permission_policy:
251 type: always_allow
252 YAML
253 ```
243 <MultiFileExample language="cli" label="CLI">
244 ```bash CLI
245 ant beta:agents create < agent.yaml
246 ```
254247
248 <File filename="agent.yaml">
249 ```yaml
250 name: Dev Assistant
251 model: claude-opus-5
252 mcp_servers:
253 - type: url
254 name: github
255 url: https://mcp.example.com/github
256 tools:
257 - type: agent_toolset_20260401
258 - type: mcp_toolset
259 mcp_server_name: github
260 default_config:
261 permission_policy:
262 type: always_allow
263 ```
264 </File>
265 </MultiFileExample>
266
255267 ```python Python
256268 agent = client.beta.agents.create(
257269 name="Dev Assistant",
from line 573
561573 },
562574 },
563575 },
564 Configs: []anthropic.BetaManagedAgentsAgentToolConfigUnionParamsUnion{{
565 OfBetaManagedAgentsBashToolConfigs: &anthropic.BetaManagedAgentsBashToolConfigParams{
576 Configs: []anthropic.BetaManagedAgentsAgentToolConfigParamsUnion{{
577 OfBash: &anthropic.BetaManagedAgentsBashToolConfigParams{
566578 PermissionPolicy: anthropic.BetaManagedAgentsBashToolConfigParamsPermissionPolicyUnion{
567579 OfAlwaysAsk: &anthropic.BetaManagedAgentsAlwaysAskPolicyParam{
568580 Type: anthropic.BetaManagedAgentsAlwaysAskPolicyTypeAlwaysAsk,
managed-agents/quickstart Changed · +37 / -20 lines
from line 37
3737 For Linux environments, download the release binary directly.
3838
3939 ```bash
40 VERSION=1.22.1
40 VERSION=1.26.1
4141 OS=$(uname -s | tr '[:upper:]' '[:lower:]')
4242 case $(uname -m) in
4343 x86_64) ARCH=amd64 ;;
from line 88
8888
8989 <Tab title="Java">
9090 ```groovy Gradle
91 implementation("com.anthropic:anthropic-java:2.53.0")
91 implementation("com.anthropic:anthropic-java:2.57.0")
9292 ```
9393 </Tab>
9494
from line 161
161161 echo "Agent ID: $AGENT_ID, version: $AGENT_VERSION"
162162 ```
163163
164 ```bash CLI
165 AGENT_ID=$(ant beta:agents create \
166 --name "Coding Assistant" \
167 --model '{id: claude-opus-5}' \
168 --system "You are a helpful coding assistant. Write clean, well-documented code." \
169 --tool '{type: agent_toolset_20260401}' \
170 --transform id --raw-output)
164 <MultiFileExample language="cli" label="CLI">
165 ```bash CLI
166 AGENT_ID=$(ant beta:agents create --transform id --raw-output < coding-assistant.agent.yaml)
171167
172 echo "Agent ID: $AGENT_ID"
173 ```
168 echo "Agent ID: $AGENT_ID"
169 ```
174170
171 <File filename="coding-assistant.agent.yaml">
172 ```yaml
173 name: Coding Assistant
174 model:
175 id: claude-opus-5
176 system: You are a helpful coding assistant. Write clean, well-documented code.
177 tools:
178 - type: agent_toolset_20260401
179 ```
180 </File>
181 </MultiFileExample>
182
175183 ```python Python
176184 from anthropic import Anthropic
177185
from line 366
358366 echo "Environment ID: $ENVIRONMENT_ID"
359367 ```
360368
361 ```bash CLI
362 ENVIRONMENT_ID=$(ant beta:environments create \
363 --name "quickstart-env" \
364 --config '{type: cloud, networking: {type: unrestricted}}' \
365 --transform id --raw-output)
369 <MultiFileExample language="cli" label="CLI">
370 ```bash CLI
371 ENVIRONMENT_ID=$(ant beta:environments create --transform id --raw-output < quickstart.environment.yaml)
366372
367 echo "Environment ID: $ENVIRONMENT_ID"
368 ```
373 echo "Environment ID: $ENVIRONMENT_ID"
374 ```
375
376 <File filename="quickstart.environment.yaml">
377 ```yaml
378 name: quickstart-env
379 config:
380 type: cloud
381 networking:
382 type: unrestricted
383 ```
384 </File>
385 </MultiFileExample>
369386
370387 ```python Python
371388 environment = client.beta.environments.create(
managed-agents/self-hosted-sandboxes Changed · +24 / -16 lines
from line 83
8383 }'
8484 ```
8585
86 ```bash CLI
87 ant beta:environments create \
88 --name self-hosted \
89 --config '{"type": "self_hosted"}'
90 ```
86 <MultiFileExample language="cli" label="CLI">
87 ```bash CLI
88 ant beta:environments create < environment.yaml
89 ```
9190
91 <File filename="environment.yaml">
92 ```yaml
93 name: self-hosted
94 config:
95 type: self_hosted
96 ```
97 </File>
98 </MultiFileExample>
99
92100 ```python Python
93101 client = anthropic.Anthropic()
94102
from line 214
206214 For Linux environments, download the release binary directly.
207215
208216 ```bash
209 VERSION=1.22.1
217 VERSION=1.26.1
210218 OS=$(uname -s | tr '[:upper:]' '[:lower:]')
211219 case $(uname -m) in
212220 x86_64) ARCH=amd64 ;;
from line 253
245253
246254 ```text
247255 FROM your-base-image
248 ARG ANT_VERSION=1.22.1
256 ARG ANT_VERSION=1.26.1
249257 ARG TARGETARCH
250258 RUN ARCH=$([ "$TARGETARCH" = "arm64" ] && echo arm64 || echo amd64) && \
251259 curl -fsSL "https://github.com/anthropics/anthropic-cli/releases/download/v${ANT_VERSION}/ant_${ANT_VERSION}_linux_${ARCH}.tar.gz" \
from line 678
670678
671679 * `.run()`: runs indefinitely, picking up sessions as they arrive.
672680 * `.handle_item()`: handles a single claimed work item and exits. Pass the work, session, and environment identifiers explicitly, or let it read the `ANTHROPIC_*` variables that `ant beta:worker poll --on-work` sets for the process it spawns. To let the session mount its [memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores), also pass the work item's `secret` as `work_secret` (`workSecret` in TypeScript, `WorkSecret` in Go) or set `ANTHROPIC_WORK_SECRET`; `ant beta:worker poll --on-work` does not set that variable, so read the secret from the work item JSON it writes to your script's standard input, as shown in [Run one sandbox per session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#run-one-sandbox-per-session).
673 * `memory_sync_interval` (`memorySyncIntervalMs` in TypeScript, `MemorySyncInterval` in Go) and `memory_sync_deletes` (`memoryRemoteDeletes`, `MemorySyncDeletes`): how often attached memory stores reconcile with the server while the session runs, and whether files the agent deletes locally are also deleted from the store. See [Configure sync](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#configure-sync) for units, defaults, and how to disable memory support.
681 * `memory_sync_interval` (`memorySyncIntervalMs` in TypeScript, `MemorySyncInterval` in Go) and `memory_sync_deletions` (`memorySyncDeletions`, `MemorySyncDeletions`): how often attached memory stores reconcile with the server while the session runs, and whether files the agent deletes locally are also deleted from the store. See [Configure sync](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#configure-sync) for units, defaults, and how to disable memory support.
674682
675683* **`work.poller()`:** polls the work queue on your behalf and gives you each claimed session. Use this when you want to decide what happens for each session, for example launching a sandbox rather than running tools in-process.
676684
from line 1284
12761284Two `EnvironmentWorker` options control memory behavior:
12771285
12781286* **`memory_sync_interval`** (Python, in seconds; `memorySyncIntervalMs` in TypeScript, in milliseconds; `MemorySyncInterval` in Go, a duration): how often attached stores reconcile with the server while the session runs. Defaults to 15 seconds; the minimum is 5 seconds. A shorter interval narrows the window in which another session sees stale memories, at the cost of more memory store requests. `None` in Python, `null` in TypeScript, or a negative duration in Go disables memory support entirely: the worker neither downloads nor syncs stores, and a session with memory stores attached runs without them even though its system prompt still describes them, so disable memory support only on workers whose sessions attach no memory stores. While memory support is enabled, a work item that arrives without a per-session `secret` for a session with attached stores fails rather than running without memory (see [Troubleshoot memory mounts](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#troubleshoot-memory-mounts)).
1279* **`memory_sync_deletes`** (`memoryRemoteDeletes` in TypeScript, `MemorySyncDeletes` in Go): whether a file the agent deletes locally is also deleted from the store. The value is one of `"enabled"` (the default), `"log_only"`, or `"disabled"` in Python and TypeScript, and one of the constants `environments.MemorySyncDeletesEnabled` (the zero value), `environments.MemorySyncDeletesLogOnly`, or `environments.MemorySyncDeletesDisabled` in Go. When enabled, the worker deletes the memory from the store once a later sync confirms the file is still gone; in log-only mode it runs the same checks but only logs what it would have deleted, which lets you watch what your workers would delete before you trust the enabled mode; when disabled, it never deletes from the store. Uploads and downloads are unaffected by this setting.
1287* **`memory_sync_deletions`** (`memorySyncDeletions` in TypeScript, `MemorySyncDeletions` in Go): whether a file the agent deletes locally is also deleted from the store. The value is one of `"enabled"` (the default), `"log_only"`, or `"disabled"` in Python and TypeScript, and one of the constants `environments.MemorySyncDeletionsEnabled` (the zero value), `environments.MemorySyncDeletionsLogOnly`, or `environments.MemorySyncDeletionsDisabled` in Go. When enabled, the worker deletes the memory from the store once a later sync confirms the file is still gone; in log-only mode it runs the same checks but only logs what it would have deleted, which lets you watch what your workers would delete before you trust the enabled mode; when disabled, it never deletes from the store. Uploads and downloads are unaffected by this setting.
12801288
12811289Set these options where you construct the worker, whether through the `EnvironmentWorker` constructor or, in Python and TypeScript, the `client.beta.environments.work.worker()` factory that the webhook handler uses.
12821290
from line 1298
12901298 environment_key=environment_key,
12911299 workdir="/workspace",
12921300 memory_sync_interval=10, # seconds
1293 memory_sync_deletes="log_only",
1301 memory_sync_deletions="log_only",
12941302 )
12951303 ```
12961304
from line 1309
13011309 environmentKey,
13021310 workdir: "/workspace",
13031311 memorySyncIntervalMs: 10_000,
1304 memorySyncDeletes: "log_only"
1312 memorySyncDeletions: "log_only"
13051313 });
13061314 ```
13071315
from line 1319
13111319
13121320 ```go Go
13131321 worker := environments.NewEnvironmentWorker(client, environments.EnvironmentWorkerOptions{
1314 EnvironmentID: environmentID,
1315 EnvironmentKey: environmentKey,
1316 Workdir: "/workspace",
1317 MemorySyncInterval: 10 * time.Second,
1318 MemorySyncDeletes: environments.MemorySyncDeletesLogOnly,
1322 EnvironmentID: environmentID,
1323 EnvironmentKey: environmentKey,
1324 Workdir: "/workspace",
1325 MemorySyncInterval: 10 * time.Second,
1326 MemorySyncDeletions: environments.MemorySyncDeletionsLogOnly,
13191327 })
13201328 ```
13211329
managed-agents/skills Changed · +40 / -35 lines
from line 1
11---
22title: Skills
33url: https://platform.claude.com/docs/en/managed-agents/skills
4description: Attach reusable, filesystem-based expertise to your agent for domain-specific workflows.
4description: Attach pre-built or custom skills to an agent in Claude Managed Agents to give it reusable, filesystem-based expertise for domain-specific workflows.
55---
66
77Skills are reusable, filesystem-based resources that give your agent domain-specific expertise: workflows, context, and best practices that turn a general-purpose agent into a specialist. Each skill you add incurs a modest cost on the session's context window, adding instructions and metadata that help the model use the skill. Learn more in the [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) overview.
from line 21
2121
2222A custom skill is a directory containing a `SKILL.md` file plus any supporting files, uploaded to your workspace as a zip archive or as individual files. Creating the skill returns the `skill_*` ID you reference when attaching it to an agent. Anthropic pre-built skills are already available in every workspace and don't require this step. To use only pre-built skills, skip to [Attach skills to an agent](https://platform.claude.com/docs/en/managed-agents/skills#attach-skills-to-an-agent).
2323
24The Skills API doesn't require a beta header. The cURL example still sends `anthropic-beta: skills-2025-10-02`, and the CLI and SDK `beta` commands add it automatically; requests that include it continue to work unchanged.
24The Skills API doesn't require a beta header. Requests that still send `anthropic-beta: skills-2025-10-02` keep working and return the earlier response fields.
2525
26These examples omit the optional `display_title` field, so the skill's title is derived from `SKILL.md`. An explicitly passed `display_title` must be unique among the custom skills in your workspace.
26These examples omit the optional `display_name` field, so the skill's display name is derived from the `name` field in `SKILL.md`. An explicit `display_name` can be up to 255 characters and doesn't need to be unique within your workspace.
2727
2828<CodeGroup defaultLanguage="CLI">
2929 ```bash cURL
from line 30
3030 curl -X POST "https://api.anthropic.com/v1/skills" \
3131 -H "x-api-key: $ANTHROPIC_API_KEY" \
3232 -H "anthropic-version: 2023-06-01" \
33 -H "anthropic-beta: skills-2025-10-02" \
3433 -F "files[]=@example_skill.zip"
3534 ```
3635
3736 ```bash CLI
38 ant beta:skills create \
37 ant skills create \
3938 --file example_skill.zip
4039 ```
4140
from line 44
4544
4645 client = anthropic.Anthropic()
4746
48 skill = client.beta.skills.create(
47 skill = client.skills.create(
4948 files=files_from_dir("example_skill"),
5049 )
5150
5251 print(f"Created skill: {skill.id}")
53 print(f"Latest version: {skill.latest_version}")
52 print(f"Latest version: {skill.latest_version_id}")
5453 ```
5554
5655 ```typescript TypeScript
from line 59
6059
6160 const client = new Anthropic();
6261
63 const skill = await client.beta.skills.create({
62 const skill = await client.skills.create({
6463 files: [await toFile(fs.createReadStream("example_skill.zip"), "example_skill.zip")]
6564 });
6665
6766 console.log(`Created skill: ${skill.id}`);
68 console.log(`Latest version: ${skill.latest_version}`);
67 console.log(`Latest version: ${skill.latest_version_id}`);
6968 ```
7069
7170 ```csharp C#
7271 using System.IO;
7372 using Anthropic;
74 using Anthropic.Models.Beta.Skills;
73 using Anthropic.Models.Skills;
7574
7675 AnthropicClient client = new();
7776
from line 81
8281 ],
8382 };
8483
85 var skill = await client.Beta.Skills.Create(parameters);
84 var skill = await client.Skills.Create(parameters);
8685
8786 Console.WriteLine($"Created skill: {skill.ID}");
88 Console.WriteLine($"Latest version: {skill.LatestVersion}");
87 Console.WriteLine($"Latest version: {skill.LatestVersionID}");
8988 ```
9089
9190 ```go Go
from line 109
110109 }
111110 defer zipFile.Close()
112111
113 skill, err := client.Beta.Skills.New(context.TODO(), anthropic.BetaSkillNewParams{
112 skill, err := client.Skills.New(context.TODO(), anthropic.SkillNewParams{
114113 Files: []io.Reader{zipFile},
115114 })
116115 if err != nil {
from line 117
118117 }
119118
120119 fmt.Printf("Created skill: %s\n", skill.ID)
121 fmt.Printf("Latest version: %s\n", skill.LatestVersion)
120 fmt.Printf("Latest version: %s\n", skill.LatestVersionID)
122121 }
123122 ```
124123
from line 125
126125 import com.anthropic.client.AnthropicClient;
127126 import com.anthropic.client.okhttp.AnthropicOkHttpClient;
128127 import com.anthropic.core.MultipartField;
129 import com.anthropic.models.beta.skills.SkillCreateParams;
130 import com.anthropic.models.beta.skills.SkillCreateResponse;
128 import com.anthropic.models.skills.Skill;
129 import com.anthropic.models.skills.SkillCreateParams;
131130 import java.io.IOException;
132131 import java.io.InputStream;
133132 import java.nio.file.Files;
from line 143
144143 .build())
145144 .build();
146145
147 SkillCreateResponse skill = client.beta().skills().create(params);
146 Skill skill = client.skills().create(params);
148147
149148 IO.println("Created skill: " + skill.id());
150 IO.println("Latest version: " + skill.latestVersion().orElseThrow());
149 IO.println("Latest version: " + skill.latestVersionId());
151150 }
152151 ```
153152
from line 173
174173
175174 client = Anthropic::Client.new
176175
177 skill = client.beta.skills.create(
176 skill = client.skills.create(
178177 files: [
179178 File.open("example_skill.zip", "rb")
180179 ]
from line 180
181180 )
182181
183182 puts "Created skill: #{skill.id}"
184 puts "Latest version: #{skill.latest_version}"
183 puts "Latest version: #{skill.latest_version_id}"
185184 ```
186185</CodeGroup>
187186
188To list, retrieve, delete, and version custom skills, see [Managing custom skills](https://platform.claude.com/docs/en/build-with-claude/skills-guide#managing-custom-skills). For the full request and response schemas, see the [Create Skill API reference](https://platform.claude.com/docs/en/api/beta/skills/create). Skill bundles upload directly to the Skills API rather than through the [Files API](https://platform.claude.com/docs/en/build-with-claude/files).
187To list, retrieve, delete, and version custom skills, see [Managing custom skills](https://platform.claude.com/docs/en/build-with-claude/skills-guide#managing-custom-skills). For the full request and response schemas, see the [Create Skill API reference](https://platform.claude.com/docs/en/api/skills/create). Skill bundles upload directly to the Skills API rather than through the [Files API](https://platform.claude.com/docs/en/build-with-claude/files).
189188
190189## Attach skills to an agent
191190
from line 222
223222 )
224223 ```
225224
226 ```bash CLI
227 ant beta:agents create <<'YAML'
228 name: Financial Analyst
229 model: claude-opus-5
230 system: You are a financial analysis agent.
231 skills:
232 - type: anthropic
233 skill_id: xlsx
234 - type: custom
235 skill_id: skill_01AbCdEfGhIjKlMnOpQrStUv
236 version: latest
237 YAML
238 ```
225 <MultiFileExample language="cli" label="CLI">
226 ```bash CLI
227 ant beta:agents create < agent.yaml
228 ```
229
230 <File filename="agent.yaml">
231 ```yaml
232 name: Financial Analyst
233 model: claude-opus-5
234 system: You are a financial analysis agent.
235 skills:
236 - type: anthropic
237 skill_id: xlsx
238 - type: custom
239 skill_id: skill_01AbCdEfGhIjKlMnOpQrStUv
240 version: latest
241 ```
242 </File>
243 </MultiFileExample>
239244
240245 ```python Python
241246 agent = client.beta.agents.create(
managed-agents/tools Changed · +30 / -24 lines
from line 129
129129 Tools: []anthropic.BetaAgentNewParamsToolUnion{{
130130 OfAgentToolset20260401: &anthropic.BetaManagedAgentsAgentToolset20260401Params{
131131 Type: anthropic.BetaManagedAgentsAgentToolset20260401ParamsTypeAgentToolset20260401,
132 Configs: []anthropic.BetaManagedAgentsAgentToolConfigUnionParamsUnion{{
133 OfBetaManagedAgentsWebFetchToolConfigs: &anthropic.BetaManagedAgentsWebFetchToolConfigParams{
132 Configs: []anthropic.BetaManagedAgentsAgentToolConfigParamsUnion{{
133 OfWebFetch: &anthropic.BetaManagedAgentsWebFetchToolConfigParams{
134134 Enabled: anthropic.Bool(false),
135135 },
136136 }},
from line 446
446446 Tools: []anthropic.BetaAgentNewParamsToolUnion{{
447447 OfAgentToolset20260401: &anthropic.BetaManagedAgentsAgentToolset20260401Params{
448448 Type: anthropic.BetaManagedAgentsAgentToolset20260401ParamsTypeAgentToolset20260401,
449 Configs: []anthropic.BetaManagedAgentsAgentToolConfigUnionParamsUnion{
450 {OfBetaManagedAgentsWebSearchToolConfigs: &anthropic.BetaManagedAgentsWebSearchToolConfigParams{
449 Configs: []anthropic.BetaManagedAgentsAgentToolConfigParamsUnion{
450 {OfWebSearch: &anthropic.BetaManagedAgentsWebSearchToolConfigParams{
451451 AllowedDomains: []string{"docs.example.com", "arxiv.org"},
452452 UserLocation: anthropic.BetaManagedAgentsUserLocationParam{
453453 Country: anthropic.String("US"),
from line 454
454454 Timezone: anthropic.String("America/Los_Angeles"),
455455 },
456456 }},
457 {OfBetaManagedAgentsWebFetchToolConfigs: &anthropic.BetaManagedAgentsWebFetchToolConfigParams{
457 {OfWebFetch: &anthropic.BetaManagedAgentsWebFetchToolConfigParams{
458458 BlockedDomains: []string{"ads.example.com"},
459459 MaxContentTokens: anthropic.Int(50000),
460460 }},
from line 691
691691 )
692692 ```
693693
694 ```bash CLI
695 ant beta:agents create <<'YAML'
696 name: Weather Agent
697 model: claude-opus-5
698 tools:
699 - type: agent_toolset_20260401
700 - type: custom
701 name: get_weather
702 description: Get current weather for a location
703 input_schema:
704 type: object
705 properties:
706 location:
707 type: string
708 description: City name
709 required:
710 - location
711 YAML
712 ```
694 <MultiFileExample language="cli" label="CLI">
695 ```bash CLI
696 ant beta:agents create < agent.yaml
697 ```
698
699 <File filename="agent.yaml">
700 ```yaml
701 name: Weather Agent
702 model: claude-opus-5
703 tools:
704 - type: agent_toolset_20260401
705 - type: custom
706 name: get_weather
707 description: Get current weather for a location
708 input_schema:
709 type: object
710 properties:
711 location:
712 type: string
713 description: City name
714 required:
715 - location
716 ```
717 </File>
718 </MultiFileExample>
713719
714720 ```python Python
715721 agent = client.beta.agents.create(
managed-agents/vaults Changed · +14 / -7 lines
from line 37
3737 echo "$vault_id" # "vlt_01ABC..."
3838 ```
3939
40 ```bash CLI
41 VAULT_ID=$(ant beta:vaults create \
42 --display-name "Alice" \
43 --metadata '{external_user_id: usr_abc123}' \
44 --transform id --raw-output)
45 echo "$VAULT_ID" # "vlt_01ABC..."
46 ```
40 <MultiFileExample language="cli" label="CLI">
41 ```bash CLI
42 VAULT_ID=$(ant beta:vaults create --transform id --raw-output < alice.vault.yaml)
43 echo "$VAULT_ID" # "vlt_01ABC..."
44 ```
45
46 <File filename="alice.vault.yaml">
47 ```yaml
48 display_name: Alice
49 metadata:
50 external_user_id: usr_abc123
51 ```
52 </File>
53 </MultiFileExample>
4754
4855 ```python Python
4956 vault = client.beta.vaults.create(
release-notes/overview Changed · +5 / -5 lines
from line 4
44description: Updates to the Claude Platform, including the Claude API, client SDKs, and the Claude Console.
55---
66
7The Claude Platform release notes list changes to the Claude API, the client SDKs, and the Claude Console, newest first.
8
79<Tip>
810 For release notes on Claude Apps, see the [Release notes for Claude Apps in the Claude Help Center](https://support.claude.com/en/articles/12138966-release-notes).
911
from line 14
1214
1315### August 19, 2026
1416
17* The [Files API](https://platform.claude.com/docs/en/build-with-claude/files) is now generally available on the Claude API. Requests to the `/v1/files` endpoints, and Messages API requests that reference an uploaded file, no longer require the `files-api-2025-04-14` beta header. Requests sent without the header use the GA response format: [file expiration](https://platform.claude.com/docs/en/build-with-claude/files#file-expiration) (set `expires_in_seconds` when you upload a file; file objects report `expires_at`), and `page` and `next_page` [pagination](https://platform.claude.com/docs/en/api/overview#pagination) plus an `ids[]` filter when you [list files](https://platform.claude.com/docs/en/build-with-claude/files#list-files). `/v1/files` requests that still send the beta header keep working and return the previous response format.
18* [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) and the Skills API (`/v1/skills`) are now generally available on the Claude API. Requests no longer require the `skills-2025-10-02` beta header, including Messages API requests that load Skills through the `container` parameter. Requests that still send the header continue to work unchanged. See [Using Agent Skills with the API](https://platform.claude.com/docs/en/build-with-claude/skills-guide).
1519* The [Admin API](https://platform.claude.com/docs/en/api/admin) user-management endpoints for **Claude Enterprise** (claude.ai) organizations (members, invites, groups, and custom roles) are now generally available. The `anthropic-beta: ce-user-management-2026-07-13` header is no longer required on group and custom-role requests; requests that still send it are accepted unchanged. See [User management](https://platform.claude.com/docs/en/manage-claude/user-management).
1620
17- The [Files API](https://platform.claude.com/docs/en/build-with-claude/files) is now generally available on the Claude API. Requests to the `/v1/files` endpoints, and Messages API requests that reference an uploaded file, no longer require the `files-api-2025-04-14` beta header. Requests sent without the header use the GA response format: [file expiration](https://platform.claude.com/docs/en/build-with-claude/files#file-expiration) (set `expires_in_seconds` when you upload a file; file objects report `expires_at`), and `page` and `next_page` [pagination](https://platform.claude.com/docs/en/api/overview#pagination) plus an `ids[]` filter when you [list files](https://platform.claude.com/docs/en/build-with-claude/files#list-files). Storage is 1 TB per organization and the rate limit is 500 requests per minute. `/v1/files` requests that still send the beta header keep working and return the previous response format.
18
19* [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) and the Skills API (`/v1/skills`) are now generally available on the Claude API. Requests no longer require the `skills-2025-10-02` beta header, including Messages API requests that load Skills through the `container` parameter. Requests that still send the header continue to work unchanged. See [Using Agent Skills with the API](https://platform.claude.com/docs/en/build-with-claude/skills-guide).
20
2121- You can now restrict which sites a Claude Managed Agents agent's `web_search` and `web_fetch` tools can reach. Set `allowed_domains` or `blocked_domains` on the tool's entry in the `agent_toolset_20260401` `configs` array; `web_fetch` also accepts `max_content_tokens` and `web_search` accepts `user_location`. Each `configs` entry is identified by its `name` and typed by an optional `type`, and requests that pass only `name`, `enabled`, and `permission_policy` continue to work; in the typed SDKs, `configs` entries become per-tool types. See [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains).
2222- Claude Managed Agents sessions that run in a [self-hosted sandbox](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes) can now attach [memory stores](https://platform.claude.com/docs/en/managed-agents/memory). The Python, TypeScript, and Go SDK workers download each attached store into the sandbox at its `mount_path` and sync the agent's changes back to the store. See [Use memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores).
2323- The session viewer in the Claude Console has been redesigned with a timeline minimap, a transcript grouped by model request, and an Inspector panel for session details and cost, raw events, per-tool statistics, mounted resources, and per-thread activity. See [Console observability](https://platform.claude.com/docs/en/managed-agents/events-and-streaming#console-observability).
from line 380
380380 * **Anthropic-managed Skills**: Pre-built Skills for working with PowerPoint (.pptx), Excel (.xlsx), Word (.docx), and PDF files
381381 * **Custom Skills**: Upload your own Skills through the Skills API (`/v1/skills` endpoints) to package domain expertise and organizational workflows
382382 * Skills require the [code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool) to be enabled
383 * Learn more in [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) and [API reference](https://platform.claude.com/docs/en/api/skills/create-skill)
383 * Learn more in [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) and [API reference](https://platform.claude.com/docs/en/api/skills/create)
384384
385385### October 15, 2025
386386
about-claude/models/whats-new-sonnet-5 Changed · +1 / -1 lines
from line 121
121121
122122## Cybersecurity safeguards
123123
124Claude Sonnet 5 is the first Sonnet-tier model with real-time cybersecurity safeguards. Requests that involve prohibited or high-risk cybersecurity topics may be refused. Refusals return as a successful HTTP 200 response with `stop_reason: "refusal"`, not an error. See [Safeguards, warnings, and appeals](https://support.claude.com/en/articles/8241253-safeguards-warnings-and-appeals) for background.
124Claude Sonnet 5 is the first Sonnet-tier model with real-time cybersecurity safeguards. Requests that involve prohibited or high-risk cybersecurity topics may be refused. Refusals return as a successful HTTP 200 response with `stop_reason: "refusal"`, not an error. See [Real-time cyber safeguards on Claude Opus and Sonnet](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude-opus-and-sonnet) for what the safeguards block and how legitimate security work can apply to the Cyber Verification Program.
125125
126126## Pricing
127127
agents-and-tools/tool-use/define-tools Changed · +2 / -2 lines
from line 400
400400 if err != nil {
401401 log.Fatal(err)
402402 }
403 fmt.Println(response)
403 fmt.Println(response.RawJSON())
404404 ```
405405
406406 ```java Java
from line 738
738738 if err != nil {
739739 log.Fatal(err)
740740 }
741 fmt.Println(response)
741 fmt.Println(response.RawJSON())
742742 ```
743743
744744 ```java Java
agents-and-tools/tool-use/strict-tool-use Changed · +2 / -2 lines
from line 577
577577 if err != nil {
578578 log.Fatal(err)
579579 }
580 fmt.Println(response)
580 fmt.Println(response.RawJSON())
581581 ```
582582
583583 ```java Java
from line 962
962962 if err != nil {
963963 log.Fatal(err)
964964 }
965 fmt.Println(response)
965 fmt.Println(response.RawJSON())
966966 ```
967967
968968 ```java Java
agents-and-tools/tool-use/tool-search-tool Changed · +1 / -1 lines
from line 365
365365 if err != nil {
366366 log.Fatal(err)
367367 }
368 fmt.Println(response)
368 fmt.Println(response.RawJSON())
369369 ```
370370
371371 ```java Java
api/beta/deployment_runs/list Changed · +3 / -1 lines
from line 59
5959
6060 - `string`
6161
62 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 30 more`
62 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 31 more`
6363
6464 - `"message-batches-2024-09-24"`
6565
from line 104
104104 - `"output-300k-2026-03-24"`
105105
106106 - `"user-profiles-2026-03-24"`
107
108 - `"user-profiles-2026-08-18"`
107109
108110 - `"advisor-tool-2026-03-01"`
109111
api/beta/deployment_runs/retrieve Changed · +3 / -1 lines
from line 21
2121
2222 - `string`
2323
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 30 more`
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 31 more`
2525
2626 - `"message-batches-2024-09-24"`
2727
from line 66
6666 - `"output-300k-2026-03-24"`
6767
6868 - `"user-profiles-2026-03-24"`
69
70 - `"user-profiles-2026-08-18"`
6971
7072 - `"advisor-tool-2026-03-01"`
7173
api/beta/deployments/archive Changed · +3 / -1 lines
from line 21
2121
2222 - `string`
2323
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 30 more`
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 31 more`
2525
2626 - `"message-batches-2024-09-24"`
2727
from line 66
6666 - `"output-300k-2026-03-24"`
6767
6868 - `"user-profiles-2026-03-24"`
69
70 - `"user-profiles-2026-08-18"`
6971
7072 - `"advisor-tool-2026-03-01"`
7173
api/beta/deployments/create Changed · +3 / -1 lines
from line 17
1717
1818 - `string`
1919
20 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 30 more`
20 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 31 more`
2121
2222 - `"message-batches-2024-09-24"`
2323
from line 62
6262 - `"output-300k-2026-03-24"`
6363
6464 - `"user-profiles-2026-03-24"`
65
66 - `"user-profiles-2026-08-18"`
6567
6668 - `"advisor-tool-2026-03-01"`
6769
api/beta/deployments/list Changed · +3 / -1 lines
from line 51
5151
5252 - `string`
5353
54 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 30 more`
54 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 31 more`
5555
5656 - `"message-batches-2024-09-24"`
5757
from line 96
9696 - `"output-300k-2026-03-24"`
9797
9898 - `"user-profiles-2026-03-24"`
99
100 - `"user-profiles-2026-08-18"`
99101
100102 - `"advisor-tool-2026-03-01"`
101103
api/beta/deployments/pause Changed · +3 / -1 lines
from line 21
2121
2222 - `string`
2323
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 30 more`
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 31 more`
2525
2626 - `"message-batches-2024-09-24"`
2727
from line 66
6666 - `"output-300k-2026-03-24"`
6767
6868 - `"user-profiles-2026-03-24"`
69
70 - `"user-profiles-2026-08-18"`
6971
7072 - `"advisor-tool-2026-03-01"`
7173
api/beta/deployments/retrieve Changed · +3 / -1 lines
from line 21
2121
2222 - `string`
2323
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 30 more`
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 31 more`
2525
2626 - `"message-batches-2024-09-24"`
2727
from line 66
6666 - `"output-300k-2026-03-24"`
6767
6868 - `"user-profiles-2026-03-24"`
69
70 - `"user-profiles-2026-08-18"`
6971
7072 - `"advisor-tool-2026-03-01"`
7173
api/beta/deployments/run Changed · +3 / -1 lines
from line 21
2121
2222 - `string`
2323
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 30 more`
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 31 more`
2525
2626 - `"message-batches-2024-09-24"`
2727
from line 66
6666 - `"output-300k-2026-03-24"`
6767
6868 - `"user-profiles-2026-03-24"`
69
70 - `"user-profiles-2026-08-18"`
6971
7072 - `"advisor-tool-2026-03-01"`
7173
api/beta/deployments/unpause Changed · +3 / -1 lines
from line 21
2121
2222 - `string`
2323
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 30 more`
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 31 more`
2525
2626 - `"message-batches-2024-09-24"`
2727
from line 66
6666 - `"output-300k-2026-03-24"`
6767
6868 - `"user-profiles-2026-03-24"`
69
70 - `"user-profiles-2026-08-18"`
6971
7072 - `"advisor-tool-2026-03-01"`
7173
api/beta/deployments/update Changed · +3 / -1 lines
from line 21
2121
2222 - `string`
2323
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 30 more`
24 - `"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 31 more`
2525
2626 - `"message-batches-2024-09-24"`
2727
from line 66
6666 - `"output-300k-2026-03-24"`
6767
6868 - `"user-profiles-2026-03-24"`
69
70 - `"user-profiles-2026-08-18"`
6971
7072 - `"advisor-tool-2026-03-01"`
7173