从一个真实的工作场景说起。
假设你是一家科技公司的分析师,某天老板突然要求你撰写一份竞品分析报告。你打开浏览器,搜索“AI 编程助手市场 2025”,点开十几篇链接,浏览了三份研报、五篇新闻报道、两个产品文档。两个小时过去了,你依然在纠结:这家公司到底是B轮融资还是C轮?那篇报道引用的是2024年的数据还是2025年的预测?
这并非个别现象。PwC 2025年的调查显示,知识工作者平均每周花费8.2小时用于信息搜集与核实。市场分析师需要追踪竞品动态,法务团队需要监控法规更新,工程师排查Bug时往往要跨越多个文档、系统和时间线。这些任务的共同特征在于:输入问题本身并不包含答案,你必须不断“看一眼再决定下一步搜什么”。
这正是 AI Agent 能够大显身手的领域。
传统自动化遵循固定流程:第一步做什么、第二步做什么,全部预先设定。但研究任务截然不同——你无法事先知道该搜索财报还是监管文件,只有看完企业介绍才能判断;你无法确定该追踪哪种技术栈,只有分析完产品架构才能明确。最优路径往往是在探索中逐渐显现,而非预先规划能得出的。
Claude Agent SDK 正是为这类场景量身定制。它让模型能够自主调用工具、根据发现的结果动态调整策略、判断何时信息足够充分。只需寥寥几行代码,一个能够搜索网络、阅读文档、综合结论的研究 Agent 就能立即运行起来。
研究 Agent:Agent 模式的最佳应用场景
两个关键特征使研究成为 Agent 模式下的理想用例:
信息非自包含:输入的问题本身不包含答案,Agent 必须与外部系统(搜索引擎、数据库、API)进行交互。
路径动态涌现:你无法预先设置工作流。Agent 该搜索财报还是监管文件,取决于它对商业模式的分析发现。最佳策略是在调研过程中逐步揭示。
最简实现
Claude Agent SDK 的核心是 query() 函数。只需几行代码即可创建一个能够自主搜索网络并综合结果的研究 Agent:
from claude_agent_sdk import ClaudeAgentOptions, query
messages = []
async for msg in query(
prompt="研究 AI Agent 的最新趋势,给我一个简要总结和相关引用链接。",
options=ClaudeAgentOptions(
model="claude-opus-4-6",
allowed_tools=["WebSearch"]
),
):
messages.append(msg)
执行过程大致如下:
? Using: WebSearch("AI agents trends 2025 latest...")
? Using: WebSearch("autonomous AI agents enterprise...")
? Using: WebSearch("multi-agent AI systems trends...")
? Thinking...
Agent 自主决定何时搜索、查询什么内容、如何综合结果。你只需提出问题,它自己规划执行路径。
工具权限机制
allowed_tools 参数用于控制 Agent 自主运行的边界:
| 类别 | 行为 |
| 允许的工具 | Claude 可自由使用,无需额外批准 |
| 其他工具 | 可用但需人工批准 |
| 只读工具(Read 等) | 默认允许 |
| 禁止的工具 | 从上下文中彻底移除 |
无状态 vs 有状态
无状态 query() 适用于:
- 独立研究问题
- 并行处理多个任务
- 每次查询需要全新的上下文
有状态 ClaudeSDKClient 适用于:
- 多轮迭代调查式研究
- 基于先前发现进行深入分析
- 需要持续的上下文记忆
进阶:三步打造生产级 Agent
基础 Agent 能够工作,但单次查询没有记忆,无法处理“找到 X,然后分析 Y”这类迭代研究需求。以下是三个改进方向。
1. 添加对话记忆
from claude_agent_sdk import ClaudeSDKClient
async with ClaudeSDKClient(
options=ClaudeAgentOptions(
model="claude-opus-4-6",
allowed_tools=["WebSearch", "Read"],
)
) as research_agent:
# 第一轮查询:分析图表
await research_agent.query("分析这张图表")
async for msg in research_agent.receive_response():
messages.append(msg)
# 第二轮查询:利用第一轮的分析结果,进一步搜索验证数据
await research_agent.query("基于刚才的分析,搜索验证数据")
async for msg in research_agent.receive_response():
messages.append(msg)
ClaudeSDKClient 作为上下文管理器,自动维护对话状态,后续查询能够记住之前发现的内容。
2. 系统提示词专业化
不同研究领域对严谨性的要求不同。金融分析与技术新闻摘要的标准截然不同。通过系统提示词来编码研究规范:
RESEARCH_SYSTEM_PROMPT = """你是一个专注于 AI 领域的研究 Agent。
提供研究发现时:
- 始终包含来源 URL 作为引用
- 将引用格式化为 markdown 链接:[来源标题](URL)
- 在回复末尾汇总"来源"部分"""
async with ClaudeSDKClient(
options=ClaudeAgentOptions(
model="claude-opus-4-6",
system_prompt=RESEARCH_SYSTEM_PROMPT,
allowed_tools=["WebSearch", "Read"],
)
) as research_agent:
...
3. 多模态研究能力
真实的研究场景不只有纯文本:市场报告包含图表,技术文档带有示意图,竞品分析需要截图对比。启用 Read 工具后,Claude 能够分析图像、PDF 及其他视觉内容:
async with ClaudeSDKClient(
options=ClaudeAgentOptions(
model="claude-opus-4-6",
allowed_tools=["WebSearch", "Read"],
max_buffer_size=10 * 1024 * 1024, # 图像处理需要更大的缓冲区
)
) as research_agent:
await research_agent.query("分析 research_agent/projects_claude.png")
...
图像在消息中会被 base64 编码,体积会显著增大。Claude Agent SDK 默认缓冲区为 1MB,处理图像时建议设置为 10MB。
实战案例:图表分析 → 网络验证
一个完整的全流程演示——先分析图表,再搜索验证发现:
RESEARCH_SYSTEM_PROMPT = """你是研究 Agent。提供发现时:
- 始终包含来源 URL 作为引用
- 将引用格式化为 markdown 链接
- 在回复末尾汇总来源"""
async with ClaudeSDKClient(
options=ClaudeAgentOptions(
model="claude-opus-4-6",
cwd="research_agent",
system_prompt=RESEARCH_SYSTEM_PROMPT,
allowed_tools=["WebSearch", "Read"],
max_buffer_size=10 * 1024 * 1024,
)
) as research_agent:
# 第一步:分析图表
await research_agent.query("分析 research_agent/projects_claude.png")
async for msg in research_agent.receive_response():
print_activity(msg)
# 第二步:利用图表分析结果,搜索最新数据进行验证
await research_agent.query("基于图表分析,搜索最新数据验证")
async for msg in research_agent.receive_response():
print_activity(msg)
Agent 的执行流程:
- 读取图像并分析图表内容
- 识别图表类型、数据模式和关键发现
- 搜索相关数据源进行交叉验证
- 对比内部发现与外部数据,生成带引用的研究报告
打包为可复用模块
生产系统需要可复用的模块。封装为独立函数:
# research_agent/agent.py
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions
RESEARCH_SYSTEM_PROMPT = """你是研究 Agent。
提供发现时始终包含来源 URL,格式化为 markdown 链接。"""
async def send_query(prompt: str, continue_conversation: bool = False) -> str:
"""发送研究查询,返回结果文本。"""
async with ClaudeSDKClient(
options=ClaudeAgentOptions(
model="claude-opus-4-6",
system_prompt=RESEARCH_SYSTEM_PROMPT,
allowed_tools=["WebSearch", "Read"],
max_buffer_size=10 * 1024 * 1024,
)
) as agent:
await agent.query(prompt)
result = ""
async for msg in agent.receive_response():
if hasattr(msg, 'content'):
result += msg.content
return result
使用方式非常直观:
from research_agent.agent import send_query
# 单次独立查询
result = await send_query("Claude Code SDK 是什么?")
# 多轮对话式查询
result1 = await send_query("Anthropic 是什么公司?")
result2 = await send_query(
"他们有哪些产品?",
continue_conversation=True
)
架构对比
| 特性 | query() | ClaudeSDKClient |
| 对话记忆 | 无 | 有 |
| 适用场景 | 独立问题 | 迭代研究 |
| 上下文 | 每次全新 | 跨查询保持一致 |
| 复杂度 | 低 | 中 |
| 并行处理 | 天然支持 | 需手动管理实例 |
运行效果示例
研究“AI Agent 最新趋势”时的实际输出:
市场增长
- AI Agent 市场从 2023 年的 37 亿美元增长至 2025 年的 73.8 亿美元
- 预计到 2032 年将达到 1036 亿美元
- 79% 的组织已采用 AI Agent(PwC 2025 调查数据)
关键趋势
- 多 Agent 系统兴起 — CrewAI、AutoGen、LangGraph 等框架成为主流
- 从助手到自主决策者 — 预计到 2029 年,80% 的客服问题将由自主 Agent 解决
- Model Context Protocol (MCP) — Anthropic 推出的 AI 连接标准协议
- 企业分化加剧 — 高度自动化企业正加速领跑行业
来源
- McKinsey: The State of AI in 2025 (https://www.mckinsey.com/capabilities/quantumblack/our-insights/the-state-of-ai)
- IBM: AI Agents Expectations vs Reality (https://www.ibm.com/think/insights/ai-agents-2025-expectations-vs-reality)
- PwC AI Agent Survey (https://www.pwc.com/us/en/tech-effect/ai-analytics/ai-agent-survey.html)
- Gartner Hype Cycle 2025 (https://www.gartner.com/en/newsroom/press-releases/2025-08-05-gartner-hype-cycle-identifies-top-ai-innovations-in-2025)
核心要点
研究 Agent 本质: 信息非自包含 + 路径动态涌现 = Agent 模式的理想场景
三个关键组件:
| 组件 | 作用 |
allowed_tools | 控制 Agent 的能力边界 |
ClaudeSDKClient | 保持研究过程中的上下文 |
| 系统提示词 | 编码研究的规范与标准 |
生产环境检查清单:
- [ ] 设置
max_buffer_size以支持多模态内容处理 - [ ] 通过系统提示词强制引用格式
- [ ] 封装为可复用的模块
- [ ] 添加错误处理和重试逻辑
下一步
这个基础研究 Agent 为构建企业级多 Agent 系统奠定了基石。Claude Cookbooks 仓库后续的 notebook 展示了更高级的模式:
- 幕僚长 Agent(
01_The_chief_of_staff_agent.ipynb)— 协调多个专门化 Agent - 可观测性 Agent(
02_The_observability_agent.ipynb)— 监控系统运行状态 - 站点可靠性 Agent(
03_The_site_reliability_agent.ipynb)— 自动化运维响应
研究 Agent 的核心能力——自主探索、动态规划、综合输出——是所有高级 Agent 系统的基石。
---
代码来自 Anthropic Claude Cookbooks(https://github.com/anthropics/claude-cookbooks)的 claude_agent_sdk/00_The_one_liner_research_agent.ipynb。
