Claude Code

Agent SDK

Claude Agent SDK 的定位、安装、TypeScript/Python query 用法、权限、Hooks、MCP、会话与部署边界。

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。

#认证

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

export ANTHROPIC_BASE_URL="https://passion8.cc"
export ANTHROPIC_AUTH_TOKEN="sk-你的 Passion8 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 与插件

#官方参考

#相关页面

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