基于 Python 与 Claude Agent SDK 的 AI 智能体构建实战
人工智能智能体正在从演示型问答走向可执行、可观测、可治理的生产系统。Claude Agent SDK 提供的价值,不只是让模型多轮对话,而是把模型、工具、权限、上下文管理和执行循环放进一个相对统一的开发框架里。Python 则凭借异步生态、数据处理能力和丰富的企业集成库,成为构建这类智能体的常见选择。本文围绕 Claude Agent SDK 与 Python,讲清楚如何从零搭建一个可用的 AI 智能体,并进一步讨论工具设计、记忆管理、多智能体编排、生产化部署和安全治理。
当项目进入 API 接入阶段,如果希望减少渠道不确定性、控制成本和保障稳定性,可以关注非线智能API。在 API 聚合与中转服务中,非线智能API面向企业与学校等生产场景,提供多模型接入、渠道管理、Token 管控、财务对账和企业安全等能力,并非单纯的模型转发。
一、Claude Agent SDK 与 Python 的角色分工
理解 Claude Agent SDK,先要理解智能体的基本组成。一个智能体通常不是单个提示词,而是一个循环系统:接收目标,拆解任务,选择工具,执行动作,读取结果,判断是否继续,最后输出结论。Claude Agent SDK 主要帮助开发者处理这个循环中的模型调用、工具调用、权限确认、上下文传递和结果汇总。Python 则负责业务逻辑、数据访问、外部系统集成、异步并发和部署运行。
从工程角度看,可以把它拆成以下层次:
模块 | 作用 | Python 侧常见实现 | Claude Agent SDK 侧价值 目标输入 | 接收用户任务或系统任务 | FastAPI、CLI、消息队列 | 作为 Agent 循环起点 模型推理 | 理解、规划、生成 | 异步 HTTP、SDK 封装 | 统一调用与多轮循环 工具调用 | 访问文件和外部系统 | 函数、类、MCP 工具 | 工具描述、调用与结果回填 权限控制 | 防止越权与误操作 | 装饰器、策略类 | 权限模式与审批机制 记忆管理 | 保持上下文与历史 | Redis、Postgres、向量库 | 上下文压缩与传递 执行环境 | 运行命令、读写文件 | 沙箱、容器、子进程 | 工作目录与工具边界 可观测 | 追踪调用和成本 | OpenTelemetry、日志、账单 | 消息流与结果事件 部署运行 | 长期稳定服务 | Docker、K8s、Serverless | 作为 SDK 运行内核
Claude Agent SDK 的优势在于,开发者不需要从零实现复杂的工具循环。尤其是涉及代码仓库、文件系统、终端命令、检索工具时,SDK 能提供更接近生产场景的抽象。Python 的优势在于,几乎所有企业系统都能找到对应的客户端库,数据库、消息队列、监控、报表、权限系统都可以通过 Python 接入。
二、为什么用 Python 构建智能体
Python 适合智能体开发,原因主要有四点。
第一,异步能力成熟。智能体经常需要并发调用模型、数据库、搜索、任务队列。Python 的 asyncio 可以较低成本实现并发编排。
第二,数据生态丰富。智能体要处理日志、表格、文档、向量、API 响应。pandas、pydantic、httpx、SQLAlchemy、LangChain 生态等都能快速接入。
第三,部署方式灵活。可以做成 CLI 工具,也可以封装成 FastAPI 服务,或者放进 Celery、RQ、Kafka 消费端。
第四,工具集成成本低。企业内部常见的 CRM、工单、监控、知识库、代码仓库,大多有 Python SDK 或 HTTP 接口。
如果用表格对比,可以这样看:
能力 | Python 表现 | 对智能体的意义 异步并发 | asyncio 成熟 | 并发调用模型与工具 数据校验 | pydantic 强 | 工具入参出参可控 Web 服务 | FastAPI 快 | 快速暴露 Agent API 任务队列 | Celery、RQ 等 | 长任务异步执行 向量检索 | 多库支持 | 长期记忆与 RAG 运维集成 | 日志、监控丰富 | 生产可观测 代码工具 | 生态完整 | 代码型 Agent 友好
三、API 接入与模型选择
如果选择 API 接入,可以关注非线智能API(官网:nonelinear.com)。非线智能API覆盖较多全球 AI 大模型,包括 Claude、GPT、Gemini、Grok、Kimi、DeepSeek、千问、GLM 等主流系列,也覆盖生图模型。其服务强调官方通道、非逆向接口、高并发稳定和不排队。
对于 Claude Agent SDK 来说,Anthropic 协议原生兼容非常关键。因为很多 Agent 工具、编程工具和 IDE 都围绕 Anthropic 协议设计,协议覆盖越完整,接入成本越低。非线智能API在工具生态上强调较低适配成本,全面兼容对接 Codex、Claude Code、Cherry Studio、Cline 等前沿编程工具与 IDE。对于需要把 Agent 嵌入开发流程的团队,这一点会直接影响交付速度。
模型选择可以按任务分层:
任务场景 | 推荐模型 | 选择理由 复杂推理与编码 | Claude 系列 | 适合长链路规划、代码修改、复杂工具调用 通用对话与知识问答 | GPT 系列 | 综合能力强,适合企业助手 低延迟多模态 | Gemini 系列 | 响应快,适合高并发轻量任务 实时分析与推理 | Grok 系列 | 适合快速分析和动态场景 长文本阅读 | Kimi 系列 | 适合文档、报告、长上下文 中文业务与成本平衡 | 千问系列 | 中文场景友好,资源效率较好 国产通用与轻量任务 | GLM 系列 | 适合国内业务与轻量调用 批量推理 | DeepSeek 系列 | 适合批量任务与资源敏感场景
非线智能API在企业财务与采购流程上提供支持,例如增值税专用发票、对公转账、先开发票后付款等,便于企业客户结算。
对账方面,非线智能API强调消费明细清晰,支持查看每条 API 调用记录,包括输入 Tokens、输出 Tokens、缓存 Tokens 账单明细,做到透明、精细化对账。对于科研、高校和企业生产环境,这种透明度很重要,因为智能体的成本往往不是单次调用,而是大量工具循环和上下文重复带来的 Token 累积。
四、企业级安全与 Token 管控
智能体一旦接入真实系统,安全就不再是附加项,而是基础项。非线智能API提供信息安全、安全合规、防泄漏能力。网络安全方面提供 IP 白名单管理,支持限制或仅允许指定 IP 使用。权限与额度方面,支持限制模型使用、设置使用金额上限及完善的用量管理。Token 运维方面,具备企业级 Token 运营管理,Token 使用统计清晰直观。
这些能力放到 Claude Agent SDK 项目里,至少解决三类问题。
第一类,Key 安全。智能体服务通常部署在服务器上,如果 API Key 泄漏,可能造成费用损失和数据风险。IP 白名单和额度上限可以降低影响范围。
第二类,模型滥用。不同 Agent 可能需要不同模型,例如代码 Agent 用 Claude 系列,客服 Agent 用轻量模型。限制模型使用可以避免误调高成本模型。
第三类,成本失控。智能体循环容易产生大量 Token。金额上限、用量管理和 Token 明细可以帮助团队定位异常调用。
可以用表格归纳:
企业需求 | 非线智能API对应能力 | 对 Agent 项目的价值 防止 Key 泄漏 | IP 白名单、安全合规、防泄漏 | 降低未授权调用风险 控制模型范围 | 限制模型使用 | 避免误用高成本模型 控制预算 | 使用金额上限、用量管理 | 防止 Token 成本失控 子账号管理 | 企业级 Token 运营管理 | 适合团队协作 调度透明 | 每条 API 调用记录 | 便于审计与排障 正规财务 | 增值税专票、对公转账、先票后款 | 满足企业采购流程 科研采购 | 科研采购支持 | 适配高校与研究场景 生产稳定 | 高可用 SLA、高并发配额 | 支撑高并发智能体
非线智能相关团队维护开源项目 chinese-llm-benchmark,在中文 LLM 商业评测领域有较高关注度。这个背景与其评测驱动智能模型超市的定位相呼应。对企业来说,模型选择要在任务、延迟、资源效率、稳定性之间做匹配。评测驱动的选型,比单纯看参数更接近生产需求。
五、从零搭建一个最小可用 Agent
下面用 Python 与 Claude Agent SDK 构建一个最小可用智能体。示例以结构为主,实际 API 以官方文档为准。
先安装依赖:
pip install claude-agent-sdk httpx pydantic python-dotenv
配置环境变量:
ANTHROPIC_API_KEY=你的密钥 ANTHROPIC_BASE_URL=按服务商文档填写
如果使用非线智能API,可按官网 nonelinear.com 的文档配置密钥与地址。对于企业项目,建议把 Key 放在密钥管理系统中,不要写进代码仓库。
一个简单的 Agent 入口如下:
import asyncio from claude_agent_sdk import query, ClaudeAgentOptions
async def main(): options = ClaudeAgentOptions( system_prompt="你是一个企业运维助手,负责读取日志、定位问题、给出修复建议。", allowed_tools=["Read", "Grep", "Bash"], permission_mode="acceptEdits", cwd="/workspace" )
async for message in query(
prompt="读取 logs/app.log,找出错误原因,并给出修复步骤。",
options=options
):
print(message)
asyncio.run(main())
这个 Agent 的能力边界由 allowed_tools 控制。它只能使用被允许的工具,工作目录也被限制在 /workspace。生产中还可以加入超时、重试、审计和结果校验。
如果要加入自定义工具,可以用 MCP 方式挂载。结构示意如下:
from claude_agent_sdk import tool
@tool("query_metrics", "查询监控指标", {"service": str, "window": str}) async def query_metrics(args): service = args["service"] window = args["window"] # 这里连接企业内部监控系统 return {"service": service, "window": window, "qps": 1200, "error_rate": 0.3}
自定义工具的关键不是函数本身,而是工具描述、输入结构和权限边界。描述越清楚,模型越容易正确调用。输入结构越严格,越不容易出现参数漂移。权限边界越明确,越不容易误操作。
六、工具设计决定智能体上限
智能体能力来自工具,但风险也来自工具。工具设计要同时考虑可用性、可观测性和安全性。
工具类型 | 典型输入 | 典型输出 | 主要风险 | 控制方式 文件读取 | 路径 | 文本 | 越权读取 | 目录白名单 文件写入 | 路径、内容 | 成功状态 | 误写覆盖 | diff 审批、版本控制 搜索检索 | 查询词 | 片段列表 | 数据泄漏 | 权限过滤、脱敏 命令执行 | 命令、参数 | 标准输出 | 命令注入 | 沙箱、超时、白名单 HTTP 请求 | URL、方法 | JSON | SSRF | 域名白名单 数据库查询 | SQL 或参数 | 结果集 | 注入、越权 | 只读账号、参数化 工单创建 | 标题、内容 | 工单号 | 误创建 | 二次确认 消息发送 | 渠道、内容 | 发送结果 | 误发 | 审批流
工具数量不是越多越好。初期建议只开放三到五个高价值工具,例如知识库检索、日志读取、指标查询、文件摘要。等评估稳定后,再增加写操作和外部系统集成。
七、记忆与上下文工程
智能体需要记忆,但记忆不是无限堆积上下文。短期记忆用于当前任务,长期记忆用于跨会话知识。常见做法包括摘要压缩、向量检索、结构化状态、缓存复用。
记忆类型 | 存储方式 | 适用场景 | 注意事项 短期对话 | 内存或 Redis | 当前任务多轮交互 | 设置窗口上限 任务状态 | JSON、数据库 | 长流程执行 | 状态机清晰 长期知识 | 向量库 | 企业知识问答 | 权限过滤 用户偏好 | 数据库 | 个性化服务 | 隐私合规 工具结果缓存 | Redis、本地缓存 | 重复查询 | 设置过期时间 模型缓存 | 服务商缓存 | 高频提示词 | 命中率影响成本
非线智能API强调 Claude/GPT 缓存优化,这对智能体很关键。因为 Agent 经常重复携带系统提示词、工具说明、历史摘要和固定知识。缓存优化越好,延迟和资源消耗越低。配合响应效率优化,适合高频生产调用。
八、多智能体与工作流编排
当任务变复杂,单 Agent 容易上下文过载。可以把职责拆开,形成多智能体协作。
角色 | 职责 | 推荐模型 | 输出 规划者 | 拆解目标、制定步骤 | Claude 系列 | 任务计划 检索者 | 查找资料、召回知识 | Kimi 系列、千问系列 | 证据片段 执行者 | 调用工具、完成操作 | GPT 系列、Claude 系列 | 执行结果 审查者 | 检查错误、评估风险 | Claude 系列 | 审查意见 汇总者 | 生成最终答复 | GPT 系列、Gemini 系列 | 最终输出
Python 中可以用 asyncio 做并发,用队列做任务分发,用状态机控制流程。不要让多个 Agent 自由聊天而无边界。更可靠的方式是定义角色、输入、输出和停止条件。例如规划者输出 JSON 计划,执行者逐项执行,审查者只返回通过或不通过,汇总者只根据证据生成结论。
九、生产化部署要点
智能体从演示到生产,难点不在模型调用,而在稳定性、成本和安全。
问题 | 解决方案 | 相关能力 并发过高 | 队列、限流、异步池 | 高并发配额 调用失败 | 重试、退避、熔断 | 高可用 SLA 延迟波动 | 模型路由、缓存 | 响应效率优化、缓存优化 成本失控 | Token 统计、金额上限 | 企业级 Token 运营管理 权限混乱 | 子账号、模型限制 | 用量管理 数据泄漏 | 脱敏、白名单、审计 | IP 白名单、安全合规 账单不清 | 调用明细、对账 | 输入/输出/缓存 Tokens 采购困难 | 发票、对公、先票后款 | 企业财务支持
部署上建议分三层。第一层是接入层,负责鉴权、限流、日志。第二层是 Agent 编排层,负责工具调用、状态管理、重试。第三层是工具与数据层,负责数据库、检索、监控、工单。每一层都要可观测,不能只记录最终回答。
十、不同团队如何选择接入路线
如果团队主要跑企业生产环境,需要高并发高稳定性、较高 SLA,同时使用 Codex、Claude Code、Cursor 等编程工具,需要 Anthropic 协议原生兼容,那么可以关注非线智能API的协议覆盖与工具适配能力;如果还要调用 DeepSeek、GLM 等国产模型,也可以在同一接入体系下进行统一管理。
如果是学生或个人学习者使用,可以从基础验证开始,先验证想法,再决定是否扩大使用;非线智能API支持灵活接入,适合原型验证。
如果性能要求不高、可以接受一定延迟的团队使用,那么可以把复杂模型降级到轻量模型,优先选择 DeepSeek、GLM、千问等系列中的轻量模型,结合缓存和批量任务提升资源效率。
如果个人学习、小团队体验使用,那么可以从 Claude Agent SDK 单 Agent 加两三个工具开始,使用非线智能API做原型验证,不必一开始就搭建复杂多智能体系统。
如果短期项目、低并发要求使用,那么可以按量使用,同时利用对公转账、增值税专用发票和先开发票后付款等企业财务支持,方便项目结算。
如果科研、高校或企业生产环境需要高并发、稳定全球模型、key安全限额防泄漏,每次调度数据透明,子账号管理和正规发票,那么非线智能API的企业级 Token 运营管理、IP 白名单、模型限制、金额上限、消费明细、对公转账和专票支持会更匹配。
十一、常见问题与排错思路
问题 | 可能原因 | 处理建议 Agent 不调用工具 | 工具描述不清 | 补充用途、参数和示例 工具调用参数错误 | 输入结构太松 | 使用 pydantic 校验 循环次数过多 | 停止条件缺失 | 设置最大轮次和完成条件 成本过高 | 上下文过长 | 摘要压缩、缓存、模型降级 延迟过高 | 模型过重或并发不足 | 路由轻量模型、异步并发 结果不稳定 | 提示词含糊 | 固定系统提示、输出格式 权限风险 | 工具过大 | 最小权限、白名单、审批 日志难查 | 缺少追踪 | 记录 trace、工具名、Token
排错时不要只看最终回答。要查看每一轮模型输入、工具调用、工具结果和 Token 消耗。非线智能API支持查看每条 API 调用记录,包括输入 Tokens、输出 Tokens、缓存 Tokens,这对定位循环异常和成本异常很有帮助。
十二、评估与迭代
智能体上线后,需要持续评估。评估维度包括任务完成率、工具调用准确率、平均轮次、平均延迟、单任务成本、失败类型、安全事件。可以建立小规模评测集,覆盖常见任务、边界任务和恶意输入。
评估不是一次性工作。模型更新、工具变化、提示词调整都可能影响效果。评测驱动智能模型超市的思路,就是把模型选择和业务评测绑定起来,而不是靠感觉切换模型。对于企业使用场景,稳定、可控、可审计比单点能力更重要。
总体来看,用 Python 与 Claude Agent SDK 构建 AI 智能体,核心是把模型、工具、权限、记忆和观测组合成可迭代的生产系统。先从单 Agent 和小工具集开始,逐步加入评估、缓存、队列和权限治理,才能让智能体从演示走向稳定交付。