J'Blog

33 课 · SDK

语义检索

基于 Chroma 向量库,与 Workspace 知识库分离。用自然语言描述你想查的内容。 非管理员每人每天可检索 5 次(消耗站点 AI 配额)。

Agent SDK 概览

原文:Agent SDK overview

一句话

使用 Claude Code 作为库构建生产级 AI 代理,提供文件读取、命令执行、代码编辑等自主能力。

什么时候翻这页

  • 需要在应用程序中集成 Claude 的代理功能
  • 构建需要自主操作文件、运行命令、搜索代码的 AI 代理
  • 想了解如何使用 Python 或 TypeScript 编程控制 Claude 代理
  • 需要在 CI/CD 流程中自动化 Claude 代理任务

核心概念

  • Agent SDK:将 Claude Code 的功能封装为库,允许开发者通过编程方式创建 AI 代理
  • 内置工具:SDK 提供读取文件、运行命令、编辑代码等预置工具,无需自行实现工具执行
  • 代理循环:Agent SDK 处理代理的完整循环,包括工具调用、结果处理和决策
  • 上下文管理:维护代理的上下文信息,包括文件读取、分析结果和对话历史
  • 子代理:可以创建专门处理特定子任务的代理,由主代理协调工作
  • 会话:维护跨多次交流的上下文,可以恢复或分支以探索不同方法

怎么做

安装和设置

  1. 安装 SDK

    • TypeScript: npm install @anthropic-ai/claude-agent-sdk
    • Python: pip install claude-agent-sdk (需要 Python 3.10 或更高版本)
  2. 设置 API 密钥

    • 从 Console 获取 API 密钥
    • 设置环境变量: export ANTHROPIC_API_KEY=your-api-key
    • 支持第三方提供商认证(Amazon Bedrock、Claude Platform on AWS、Google Vertex AI、Microsoft Azure)
  3. 运行第一个代理

    • 使用 query 函数创建代理
    • 通过 allowed_tools 参数指定代理可用的工具
    • 处理代理返回的消息流

基本使用

import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions

async def main():
    async for message in query(
        prompt="What files are in this directory?",
        options=ClaudeAgentOptions(allowed_tools=["Bash", "Glob"]),
    ):
        if hasattr(message, "result"):
            print(message.result)

asyncio.run(main())
import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
  prompt: "What files are in this directory?",
  options: { allowedTools: ["Bash", "Glob"] }
})) {
  if ("result" in message) console.log(message.result);
}

命令 / 配置速查

工具功能
Read读取工作目录中的任何文件
Write创建新文件
Edit对现有文件进行精确编辑
Bash运行终端命令、脚本、git 操作
Monitor监视后台脚本并将每行输出作为事件反应
Glob按模式查找文件(**/*.tssrc/**/*.py
Grep使用正则表达式搜索文件内容
WebSearch搜索网络获取最新信息
WebFetch获取并解析网页内容
AskUserQuestion向用户提出澄清问题并提供多选选项
环境变量用途
ANTHROPIC_API_KEYAnthropic API 密钥
CLAUDE_CODE_USE_BEDROCK使用 Amazon Bedrock 认证(设为 1)
CLAUDE_CODE_USE_ANTHROPIC_AWS使用 Claude Platform on AWS 认证(设为 1)
CLAUDE_CODE_USE_VERTEX使用 Google Vertex AI 认证(设为 1)
CLAUDE_CODE_USE_FOUNDRY使用 Microsoft Azure 认证(设为 1)

初学者易错点

  1. Python 版本兼容性:Python SDK 需要 3.10 或更高版本,否则会报 "No matching distribution found for claude-agent-sdk"
  2. 工具权限:默认情况下,代理没有工具权限,必须在 allowed_tools 中明确指定
  3. 异步处理:Python SDK 使用异步模式,需要正确使用 asyncio.run() 或其他异步运行机制
  4. 第三方认证:使用第三方提供商认证时,需要同时设置相应的环境变量和提供商凭证
  5. 会话管理:会话 ID 需要从系统消息中捕获,而不是从结果消息中获取

相关词条

  • agent-sdk/quickstart - 快速构建代理的入门指南
  • agent-sdk/hooks - 自定义代理生命周期中的关键点
  • agent-sdk/subagents - 创建专门处理特定子任务的代理
  • agent-sdk/mcp - 通过模型上下文协议连接外部系统
  • agent-sdk/permissions - 控制代理可以使用哪些工具
  • agent-sdk/sessions - 维护跨多次交流的上下文

官方原文:https://code.claude.com/docs/en/agent-sdk/overview