Skip to content

Agent SDK

Agent SDK 把 Claude Code 的 agent loop 做成 Python 和 TypeScript 可编程库。你可以在自己的服务、CLI、CI 或后台任务里调用同一套读文件、跑命令、改代码、管理上下文的能力。

CLI 适合人直接操作项目。Agent SDK 适合把这些能力嵌入产品、自动化任务或后台 agent 服务。

SDK 基础用法看本页。TypeScript/Python API、session API、settings 解析和迁移差异见 Agent SDK API 参考速查。Agent loop、settingSources、skills、subagents、todo tracking 和 checkpointing 见 Agent SDK Agent 能力。权限评估、Hooks、MCP、SessionStore、成本、OTEL、安全部署和 5m/1h 缓存策略集中在 Agent SDK 能力矩阵。Custom tools、system prompt、streaming、structured output、tool search、用户审批和 SDK slash commands 见 Agent SDK 运行时模式。生产部署拓扑继续看 Agent SDK 生产部署

什么时候用 SDK

需求选什么
本地手工开发、让 Claude 直接改仓库Claude Code CLI
在 Web 服务或内部平台里启动 agentAgent SDK
在 CI 中做自动修复、审查、迁移Agent SDK 或 claude -p
想写自定义工具、审批、会话存储Agent SDK
只调用纯模型 APIClaude Messages API

安装

npm install @anthropic-ai/claude-agent-sdk

TypeScript SDK 会通过 optional dependency 带上平台对应的 Claude Code binary,通常不需要单独安装 CLI。

pip install claude-agent-sdk

Python 需要 3.10 或更新版本。

认证

官方 SDK 面向 API key 和云 provider 鉴权。接 Gushen888 时,本质上还是把 Anthropic 兼容入口指向网关:

export ANTHROPIC_BASE_URL="https://api.gushen888.cloud"
export ANTHROPIC_AUTH_TOKEN="sk-你的 Gushen888 API Key"

如果你直接使用 Anthropic Console API Key,使用:

export ANTHROPIC_API_KEY="sk-ant-..."

不要把 Claude 订阅登录和第三方产品混在一起。官方说明里,第三方开发者通常应使用 API key/provider 鉴权,不要把 claude.ai 登录额度转售或嵌入自己的 agent 产品。

最小示例

TypeScript

agent.ts

import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
  prompt: "阅读当前目录,总结这个项目的用途。",
  options: {
    allowedTools: ["Read", "Glob", "Grep"],
    permissionMode: "dontAsk"
  }
})) {
  if ("result" in message) console.log(message.result);
}

运行:

npx tsx agent.ts

Python

agent.py

import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions

async def main():
    async for message in query(
        prompt="阅读当前目录,总结这个项目的用途。",
        options=ClaudeAgentOptions(
            allowed_tools=["Read", "Glob", "Grep"],
            permission_mode="dontAsk",
        ),
    ):
        if hasattr(message, "result"):
            print(message.result)

asyncio.run(main())

运行:

python agent.py

query() 返回 async iterator。每次迭代可能是系统消息、assistant 消息、工具调用、工具结果或最终结果。你可以流式展示,也可以收集后处理。

常用 options

选项TypeScriptPython说明
允许工具allowedToolsallowed_tools预批准工具
权限模式permissionModepermission_modeacceptEditsplan
系统提示systemPromptsystem_prompt自定义 agent 角色
MCPmcpServersmcp_servers接外部工具
Hookshookshooks工具前后拦截
工作目录cwdcwdagent 运行目录

权限模式

模式SDK 中的用途
default需要你提供审批回调
acceptEdits自动接受文件编辑
plan只读探索,不改源文件
dontAsk未在 allowed tools 里的动作直接拒绝
autoTypeScript 支持,由安全分类器判断
bypassPermissions仅用于 sandbox CI 或隔离环境

生产 agent 推荐从 dontAskplan 开始,按任务逐步放开工具。

内置工具

Agent SDK 可以直接使用 Claude Code 的核心工具:

工具作用
Read读文件
Write新建文件
Edit精确修改文件
Bash跑命令
Glob找文件
Grep搜索内容
WebSearch搜索网页
WebFetch抓取页面
Monitor监听后台脚本输出
AskUserQuestion向用户要澄清或审批

Hooks 与 MCP

SDK 也能使用 Claude Code 的扩展能力:

  • Hooks:在 PreToolUsePostToolUseStop 等节点记录、阻止、验证
  • MCP:接数据库、浏览器、内部 API、项目管理系统
  • Subagents:把子任务隔离到专门 agent
  • Sessions:保存和恢复多轮上下文
  • Prompt caching:可观察 cache 读写 token,控制 TTL

生产化建议

风险建议
agent 无限跑设置超时、最大轮数、预算
工具过多用 MCP tool search 或只开放任务需要的工具
权限过宽默认 dontAsk,逐项 allow
多租户泄露每个用户隔离工作目录、环境变量和会话存储
成本不可控记录 cache_creation_input_tokenscache_read_input_tokens
输出难解析用 structured outputs 或 JSON schema

更完整的生产部署 checklist 看 Agent SDK 生产部署。如果要做持续对话、消息队列、图片输入或插件能力,继续看 Agent SDK Streaming 与插件

官方参考

相关页面

面向编码工具与 Agent 工作流的稳定模型网关。