ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Anthropic 工具链的 Agent SDK,Base URL 改到 TaoToken 再跑研究智能体

2026/9/21 16:23:19 拓冰建站 浏览量
Anthropic 工具链的 Agent SDK,Base URL 改到 TaoToken 再跑研究智能体 1. 研究智能体为什么总在烧 Token如果你正在用 Anthropic 的 Agent SDK 搭研究型智能体大概率会遇到一个很具体的现象主智能体规划、子智能体并行执行、SkillTool 加载技能、TaskTool 调度任务、最后合成报告这一整条链路里模型调用次数远超普通对话。每一次规划、每一次工具返回后的再推理、每一次子智能体汇报都是一次独立的模型请求。Token 消耗最集中的地方恰恰就是这套「Agent / Harness」编排逻辑本身。我试过把 Claude Code 的原理、VS Code 扩展和 Agent SDK 串成一条工作流来理解Claude Code 的核心是一个「收集上下文 → 采取行动 → 验证结果」的迭代循环模型是推理引擎工具是行动接口Skills 按需加载Subagents 在隔离上下文里跑并行任务。到了 SDK 这一层这套机制被完全暴露成可编程接口你可以自己写主智能体、自己定义子智能体、自己挂 MCP 连接器。问题也随之而来——模型访问和认证这一步如果没配好后面所有编排都跑不起来。这篇就按原文第七到九节的思路把 SDK 实战里的目录结构、依赖安装、allowed_tools 和 MCP 配置保留只把「模型访问与认证」那一步改写成用 TaoToken 提供 Key 和兼容 Base URL。研究智能体、子智能体、MCP/Notion 连接器仍然用 Python 代码实现你从 TaoToken 拿到 Key 后可以按下面的步骤搭出 agent.py、agents、.claude/skills跑通主智能体调度子智能体并生成 README.md 的完整链路。2. 前置准备TaoToken 提供 Key 与兼容 Base URL在动手写 agent.py 之前先把模型访问这一层解决掉。Agent SDK 需要一个可用的 API Key 和一个兼容的 Base URLTaoToken 在这里的角色就是给 Agent SDK 供 Key 和兼容 Base URL不改变你原有的智能体逻辑。第一步打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册账号。注册完成后进入控制台创建一个 API Key。这个 Key 就是后面写进.env文件里的凭证。第二步记住接口地址。SDK 的 Base URL 填https://taotoken.net/api注意不要把/v1带进去也不要把 UTM 参数带进接口地址。这一点很容易踩坑有些示例代码里 Base URL 习惯写成带/v1的形式但这里要按https://taotoken.net/api来填SDK 会自己拼接后续路径。注意Key 只放在本地.env文件里不要硬编码进 agent.py也不要提交到 Git 仓库。.env记得加进.gitignore。如果你后面要长期跑编码类或 Agent 类任务可以顺带了解一下 Coding Plan它更适合长会话、多工具、任务编排这种高频调用场景。相关入口在 TaoToken 控制台里能找到这里不展开。3. 可复制配置目录结构与依赖安装原文 SDK 实战里的目录结构保持不变这是跑通研究智能体的基础。先建目录mkdir research-agent cd research-agent mkdir -p agents .claude/skills touch agent.py .env .gitignore目录结构大致是这样research-agent/ ├── agent.py # 主程序主智能体入口 ├── .env # 存放 API Key 和 Base URL ├── .gitignore ├── agents/ # 子智能体定义 │ ├── doc_researcher.py │ └── code_analyst.py └── .claude/ └── skills/ # 技能目录 └── learning-a-tool/ └── SKILL.md依赖安装用 pippip install claude-agent-sdk python-dotenv如果要用 MCP 连接 Notion再补一个 MCP 相关的依赖具体包名以你使用的 MCP 服务器为准。安装完成后先配置.env# .env TAOTOKEN_API_KEY你的Key TAOTOKEN_BASE_URLhttps://taotoken.net/api.gitignore里加上.env __pycache__/ *.pyc这一步做完模型访问的凭证和地址就齐了。接下来在 agent.py 里读取这两个环境变量把 Base URL 传给 SDK。4. 主智能体与子智能体allowed_tools 与 MCP 配置现在写 agent.py 的核心部分。SDK 默认是安全模式工具需要显式授权所以allowed_tools必须手动加上 Write、Bash、WebSearch 这些。下面是一个可运行的主智能体骨架import os from dotenv import load_dotenv from claude_agent_sdk import Agent, SkillTool, TaskTool load_dotenv() API_KEY os.getenv(TAOTOKEN_API_KEY) BASE_URL os.getenv(TAOTOKEN_BASE_URL) # 主智能体负责规划、调度子智能体、合成报告 main_agent Agent( namecommander, modelclaude-sonnet-4-20250514, api_keyAPI_KEY, base_urlBASE_URL, allowed_tools[ Write, Bash, WebSearch, SkillTool, TaskTool, mcp_notion_*, # 通配符授权 Notion MCP 工具 ], skills_dir.claude/skills, agents_diragents, ) # MCP 配置连接 Notion 作为外部交付通道 mcp_config { notion: { command: npx, args: [-y, notionhq/notion-mcp-server], env: {NOTION_TOKEN: os.getenv(NOTION_TOKEN, )}, } } if __name__ __main__: result main_agent.run( 调研 Agent SDK 的工具编排机制生成一份 README.md 报告, mcp_serversmcp_config, ) print(result)几个关键点说明一下。base_url这里填的就是https://taotoken.net/api不要加/v1。allowed_tools里mcp_notion_*用通配符一次性授权 Notion 相关工具避免逐个列举。SkillTool负责加载技能TaskTool负责调度子智能体这两个是研究智能体并行执行的核心。子智能体放在agents/目录下比如doc_researcher.pyfrom claude_agent_sdk import SubAgent doc_researcher SubAgent( namedoc_researcher, description查阅官方文档并提炼要点, modelclaude-sonnet-4-20250514, allowed_tools[WebSearch, Write], system_prompt你负责查阅文档输出结构化要点不要写代码。, )子智能体在隔离上下文里运行适合并行任务或上下文隔离任务。主智能体通过 TaskTool 同时启动多个子智能体各自跑各自的最后汇总。技能目录.claude/skills/learning-a-tool/SKILL.md采用渐进式披露先加载技能名称再按需读 SKILL.md最后才读详细引用。这样能有效节省上下文窗口空间。SKILL.md 内容示例# learning-a-tool ## 目标 指导主智能体如何规划一次工具学习任务。 ## 步骤 1. 明确要学习的工具名称与用途 2. 拆解为文档查阅、示例运行、要点归纳三步 3. 调度 doc_researcher 子智能体并行执行 4. 汇总结果写入 README.md5. 验证请求跑通主智能体调度链路配置写完后先做一次最小验证确认 Base URL 和 Key 是通的。可以写一个临时脚本import os from dotenv import load_dotenv from claude_agent_sdk import Agent load_dotenv() agent Agent( namesmoke-test, modelclaude-sonnet-4-20250514, api_keyos.getenv(TAOTOKEN_API_KEY), base_urlos.getenv(TAOTOKEN_BASE_URL), allowed_tools[], ) resp agent.run(用一句话说明你已就绪) print(resp)运行python smoke_test.py如果返回一句正常的中文回复说明模型访问这一层通了。如果报 401检查 Key 是否复制完整如果报 404检查 Base URL 是不是多带了/v1。验证通过后跑主程序python agent.py预期结果是主智能体先加载learning-a-tool技能制定分步计划然后通过 TaskTool 同时启动doc_researcher和code_analyst两个子智能体并行执行子智能体各自返回结果后主智能体汇总并调用 Write 工具生成本地README.md如果 Notion MCP 配置正确还会把内容写入外部平台。跑完后检查当前目录应该能看到新生成的README.md。打开看一下内容应该是结构化的调研报告而不是零散片段。这一步跑通说明主智能体调度子智能体并生成 README.md 的链路完整可用。提示如果子智能体没有并行起来检查 TaskTool 是否在allowed_tools里以及agents_dir路径是否正确指向agents/。6. 本篇常见错排查报错一401 Unauthorized。最常见的原因是 Key 没读到。检查.env文件是否在项目根目录load_dotenv()是否在读取环境变量之前调用。另外确认 Key 没有多余空格或换行。报错二404 Not Found。基本是 Base URL 写错了。正确写法是https://taotoken.net/api不要写成https://taotoken.net/api/v1也不要把 UTM 参数拼进接口地址。SDK 内部会自己拼接路径。报错三工具未授权。SDK 默认安全allowed_tools里没列出的工具调用会被拒绝。Write、Bash、WebSearch、SkillTool、TaskTool 都要显式加上。MCP 工具用通配符如mcp_notion_*授权。报错四子智能体不执行。检查agents/目录下是否有对应的子智能体定义文件以及agents_dir参数是否指向正确路径。子智能体的name要和主智能体调度时用的名称一致。报错五MCP 连接失败。确认 MCP 服务器的 command 和 args 正确环境变量如NOTION_TOKEN已配置。如果不需要 Notion 交付可以先把mcp_servers去掉只跑本地 README.md 生成链路。报错六上下文窗口被撑爆。长会话、多工具场景下上下文增长很快。把持久规则写进 CLAUDE.md 或 SKILL.md利用渐进式披露分级加载避免一次性把所有技能细节塞进上下文。排障时如果涉及 Key 和接入地址的核对可以直接去 API Keys 页面重新生成一个 Key 对比测试接入细节可以对照接入文档确认参数格式。验证模型是否正常响应用模型对话页面发一条消息最快。长期跑编码或 Agent 任务Coding Plan 在调用频率和成本上更合适。7. 把这条链路用起来整套流程跑通后你会发现研究智能体的核心不在模型本身而在编排主智能体负责规划和合成子智能体负责并行执行SkillTool 和 TaskTool 负责加载与调度MCP 负责外部交付。TaoToken 在这里只做一件事——给 Agent SDK 供 Key 和兼容 Base URL其余逻辑全部由你的 Python 代码控制。实际用的时候建议先把allowed_tools收窄到当前任务真正需要的工具跑通后再逐步放开。对 Bash、Write 这类高风险工具可以加一层拦截确认防止误操作。子智能体的 system_prompt 写得越具体并行执行的结果越稳定。README.md 生成后如果还要写入 Notion再打开 MCP 配置不要一开始就把所有连接器都挂上。这套结构的好处是可扩展今天跑研究智能体明天换成代码分析智能体只需要改agents/下的定义和主智能体的调度提示模型访问层不用动。Base URL 和 Key 配一次后面所有 Agent 应用都能复用。