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: true 或 continue_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 应监听 TaskCreate、TaskUpdate 和 TaskList 结果,不要只解析 assistant 文本。

#File checkpointing

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

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

限制:

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

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

#Hosting 限制

限制对策
没有顶层 wall-clock timeout用 maxTurns、外部进程 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主要影响本地状态,但回退说明会进会话

#官方参考

支持

需要帮助?

接入、计费与模型异常可邮件联系;服务可用性以状态页为准。

也可使用右下角微信 / QQ 客服。