开源推荐
evening
GitHub 热门项目: claude-agent-sdk-python
2026-07-26
1 阅读
约7分钟阅读
GitHub Trending
字号:
GitHub 项目:claude-agent-sdk-python
仓库地址:https://github.com/anthropics/claude-agent-sdk-python
星级:7728 | 作者:人类学
项目描述:暂无描述
===================================================
自述文件内容:
# 适用于 Python 的 Claude Agent SDK
Claude Agent 的 Python SDK。有关更多信息,请参阅 [Claude Agent SDK 文档](https://platform.claude.com/docs/en/agent-sdk/python)。
## 安装
````bash
pip 安装 claude-agent-sdk
````
**先决条件:**
-Python 3.10+
**注意:** Claude Code CLI 自动与软件包捆绑在一起 - 无需单独安装!默认情况下,SDK 将使用捆绑的 CLI。如果您更喜欢使用系统范围的安装或特定版本,您可以:
- 单独安装 Claude Code:`curl -fsSL https://claude.ai/install.sh | bash`
- 指定自定义路径:`ClaudeAgentOptions(cli_path="/path/to/claude")`
## 快速入门
````蟒蛇
导入任何
从 claude_agent_sdk 导入查询
异步 def main():
查询中的消息异步(提示=“2 + 2 是什么?”):
打印(消息)
anyio.run(主要)
````
## 基本用法:query()
`query()` 是一个用于查询 Claude Code 的异步函数。它返回响应消息的“AsyncIterator”。请参阅[src/claude_agent_sdk/query.py](src/claude_agent_sdk/query.py)。
````蟒蛇
从 claude_agent_sdk 导入查询、ClaudeAgentOptions、AssistantMessage、TextBlock
# 简单查询
查询中的消息异步(提示=“Hello Claude”):
if isinstance(消息, AssistantMessage):
对于 message.content 中的块:
if isinstance(块, TextBlock):
打印(块.文本)
# 有选项
选项 = ClaudeAgentOptions(
system_prompt="你是一个有用的助手",
最大匝数=1
)
查询中的消息异步(提示=“告诉我一个笑话”,选项=选项):
打印(消息)
````
### 使用工具
默认情况下,Claude 可以访问完整的 [Claude Code 工具集](https://code.claude.com/docs/en/settings#tools-available-to-claude)(读取、写入、编辑、Bash 等)。 “allowed_tools”是一个权限白名单:列出的工具会自动批准,未列出的工具则由“permission_mode”和“can_use_tool”决定。它不会从 Claude 的工具集中删除工具。要阻止特定工具,请使用“disallowed_tools”。有关完整的评估顺序,请参阅[权限指南](https://platform.claude.com/docs/en/agent-sdk/permissions)。
````蟒蛇
选项 = ClaudeAgentOptions(
allowed_tools=["Read", "Write", "Bash"], # 自动批准这些工具
permission_mode='acceptEdits' # 自动接受文件编辑
)
查询中的消息异步(
提示=“创建hello.py文件”,
选项=选项
):
# 处理工具的使用和结果
通过
````
### 工作目录
````蟒蛇
从 pathlib 导入路径
选项 = ClaudeAgentOptions(
cwd="/path/to/project" # 或 Path("/path/to/project")
)
````
## ClaudeSDK客户端
`ClaudeSDKClient` 支持与 Claude 的双向交互式对话
代码。请参阅[src/claude_agent_sdk/client.py](src/claude_agent_sdk/client.py)。
与“query()”不同,“ClaudeSDKClient”还启用了**自定义工具**和**钩子**,两者都可以定义为Python函数。
### 自定义工具(作为进程内 SDK MCP 服务器)
一个*
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱