Claude Code

Agent SDK Agent 能力

Agent SDK 的 agent loop、settingSources、Claude Code features、sessions、skills、subagents、todo tracking、file checkpointing 和 hosting 限制。

Agent SDK 可以复用 Claude Code 的项目规则、skills、hooks、MCP、subagents、todo/task tracking 和 checkpointing。问题不在于“能不能用”,而在于哪些上下文会自动加载、哪些状态落在本地磁盘、哪些能力会增加缓存前缀和成本。

运行时 API 看 Agent SDK 运行时模式。部署拓扑和隔离看 Agent SDK 生产部署

#覆盖的官方页面

官方页面本页覆盖重点
Agent loop消息、工具、context、result 和 hooks 生命周期
Claude Code features in SDKsettingSources、CLAUDE.md、skills、hooks 和 MCP 加载
Sessionscontinue、resume、fork、跨主机恢复
SkillsSDK 中如何发现和加载 skills
Subagentsprogrammatic agents、继承边界、工具限制
Todo trackingTask tools 和实时进度 UI
File checkpointingSDK 内文件回退能力和限制
Hostingsubprocess、本地状态、资源和已知限制

#Agent loop

一次 SDK 任务大致是这个循环:

user prompt
  -> system/init
  -> assistant thinks and emits tool calls
  -> SDK/CLI checks hooks and permissions
  -> tools execute
  -> tool results enter conversation
  -> repeat until success, max turns, max budget, or error
消息/阶段你要处理什么
system/initsession id、模型、可用 slash commands、工具和权限模式
assistant textUI 流式显示
tool use展示正在读文件、编辑、跑命令或调用 MCP
tool result记录摘要,敏感内容默认折叠
result success保存结果、usage、成本
result error显示失败原因,保留可恢复信息

常见 result subtype:

Subtype含义
success正常完成
error_max_turns到达 maxTurns
error_max_budget_usd到达预算上限
error_during_executionAPI、工具、取消或运行时错误
error_max_structured_output_retries结构化输出多次校验失败

#Context 来源

来源何时加载缓存影响
System prompt每次请求稳定时容易被 prompt cache 复用
CLAUDE.md / rulessession 启动和按需读取内容越大,首次写入越贵
Tool definitions每次请求或 tool search 延迟加载MCP upfront schema 会显著增大前缀
Conversation history每轮增长长会话需要 compact 或分支
Skill descriptionssession 启动通常小,完整 skill 内容只在调用时加载
Hooks加载配置后影响工具执行hook 结果可能追加上下文

#settingSources

Source加载内容
project项目 CLAUDE.md、.claude/rules、skills、hooks、settings
user~/.claude/CLAUDE.md、用户 rules、skills、settings
localCLAUDE.local.md.claude/settings.local.json

settingSources 不控制这些:

输入行为禁用方式
Endpoint-managed policy由主机策略加载移除设备策略
Server-managed settings符合条件时由组织管理只能由管理员控制
~/.claude.json仍可能读取CLAUDE_CONFIG_DIR 隔离
Auto memorysession 启动进入 system promptCLAUDE_CODE_DISABLE_AUTO_MEMORY=1
claude.ai MCP connectorssubscription 登录时可能加载strictMcpConfig 或禁用 connector

多租户和 CI 默认不要加载用户环境:

options: {
  settingSources: [],
  env: {
    ...process.env,
    CLAUDE_CONFIG_DIR: "/srv/claude-config/job-123",
    CLAUDE_CODE_DISABLE_AUTO_MEMORY: "1"
  }
}

#Sessions

场景用法
一次性任务不传 session,让 query() 新建
同目录继续最近一次continue: truecontinue_conversation=True
恢复特定 session保存 ID,传 resume
尝试替代方案fork session
不落盘TypeScript 可用 persistSession: false

跨主机恢复只靠 session ID 不够。transcript 之外的工作目录、CLAUDE.md、checkpoint blob、工具缓存和文件产物都要单独规划。

#Skills

SDK 可以加载项目或用户 skills,也可以通过 plugins 传入。

设计点建议
description写清什么时候用,否则 Claude 不会自动触发
allowed-tools给 skill 限制工具范围
项目 skills跟 repo 一起版本化
用户 skills适合个人工作流
插件 skills适合团队分发
SDK 隔离不想自动加载时清空 settingSources

Skill 内容通常不会全部进首轮上下文,但 description 会。大型 skill 多了仍会影响 cache 前缀。

#Subagents

Programmatic agent definition 比文件定义更适合 SDK 产品。

字段作用
descriptionClaude 判断何时使用这个 subagent
promptsubagent 的系统角色和任务边界
tools限制可用工具
disallowedTools从继承工具集中移除工具
model指定 subagent 模型
skills预加载指定 skills
mcpServers给 subagent 单独配置 MCP
maxTurns限制子任务轮数
background后台运行,不阻塞主线程

继承边界:

Subagent 获得Subagent 不获得
自己的 system prompt父会话完整历史
项目 CLAUDE.md父工具结果
指定或继承的工具定义父 system prompt
指定 skills未预加载的 skill 内容

工具组合建议:

用例工具
只读分析Read, Grep, Glob
跑测试Bash, Read, Grep
改代码Read, Edit, Write, Grep, Glob
完整自治谨慎继承全部工具,并放进 sandbox

#Todo 和 Task tools

新版本更推荐 Task tools,而不是旧的 TodoWrite

TodoWrite新 Task tools
一次重写整个 todos arrayTaskCreate 新增一项
status 跟踪状态TaskUpdate 局部更新
UI 直接渲染数组UI 需要累积 task 事件或读取 snapshot
适合简单列表适合 owner、blocked by、metadata 和并行任务

实时进度 UI 应监听 TaskCreateTaskUpdateTaskList 结果,不要只解析 assistant 文本。

#File checkpointing

SDK checkpointing 适合在 agent 写文件前后创建恢复点。

能跟踪说明
Write新文件或覆盖写入
Edit现有文件的局部修改
NotebookEditJupyter notebook cell 修改
同一 session 内恢复回到该 session 内的恢复点

限制:

限制说明
Bash 改动通过 shell 生成或删除的文件不在 checkpoint 内
目录操作创建、移动、删除目录不完整回退
远端文件网络文件和远端资源不追踪
跨 sessioncheckpoint 绑定创建它的 session

高风险批量编辑前,让 agent 先创建 checkpoint,再执行迁移。

#Hosting 限制

限制对策
没有顶层 wall-clock timeoutmaxTurns、外部进程 watchdog 和队列超时
长会话内存增长定期 compact、分段任务、回收子进程
大量并行 subagent 会限流分批,控制 fanout
per-subagent 无总时限subagent 设置 maxTurns,后台任务设置 stall watchdog
本地状态多CLAUDE_CONFIG_DIR、工作目录和 SessionStore 都要规划

#缓存影响

能力5m/1h cache 影响
settingSources 加载 CLAUDE.md内容稳定时适合 1 小时 TTL
大量 skillsdescription 增大前缀
MCP upfront tools工具 schema 变化会频繁 miss
Subagents每个 subagent 有独立上下文和缓存前缀
Task tools任务状态进入历史,长任务需要 compact
Checkpointing主要影响本地状态,但回退说明会进会话

#官方参考

Support / 支持

Need help? / 需要帮助?

接入、计费与模型异常可邮件联系;服务可用性以状态页为准。For setup, billing, or model issues, email us. Check the status page for uptime.

也可使用右下角微信 / QQ 客服 · WeChat / QQ support is available at the bottom right