问题现象:AI agent为何需要“看见”互联网
很多开发者发现,LLM在长任务中会“失忆”——比如让它调研一个开源项目的最新动态,模型只能依赖训练数据里的旧知识,无法获取实时信息。这正是上下文的局限:没有外部信号,模型只能重复内部记忆,甚至编造事实。
上下文结构分析:Agent-Reach的设计哲学
Agent-Reach 提供一条 CLI 命令,封装了多种平台的爬虫和解析器,返回结构化 JSON 或 Markdown。例如:
bash
1
agent-reach search --platform twitter --query "LangChain latest"
返回包含时间、作者、内容、链接的条目。对比传统方案(每次手动写爬虫或用付费 API),Agent-Reach 将信息获取抽象为统一接口,非常适合作为Agent的“感知层”。
但关键不是工具本身,而是如何将结果注入LLM上下文。原文没说这部分,我来补充。

优化方案:压缩、注入与切分
直接用原始返回(可能几百条推文)会撑爆上下文。需要三步:
- 摘要压缩:让LLM先对搜索结果做摘要,只保留关键事实。
- 结构化注入:以表格或列表格式,每行附上平台来源和时间戳,让模型区分新旧。
- 任务边界切分:如果任务分多步,只注入当前步骤所需的搜索结果,避免干扰。
下面是一个可复用的系统 prompt 模板:
markdown
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 角色设定:你是一个能通过Agent-Reach工具感知互联网的AI助手。
# 规则:
1. 当需实时信息时,使用命令 `agent-reach search --platform {platform} --query "{query}"`。
2. 收到结果后,先自动摘要,只保留与任务最相关的5条事实。
3. 以表格形式输出摘要:时间 | 来源 | 内容摘要 | 链接。
4. 在所有后续推理中,优先使用该外部信息,而非内部记忆。
5. 如果信息不足,再次搜索,但每次搜索后清空上一步结果以节省上下文。
# 示例交互:
用户:GitHub上最近star增长最快的AI项目有哪些?
助手:正在搜索... 使用命令 `agent-reach search --platform github --query "AI project stars growth last week"`
返回结果:
| 时间 | 来源 | 内容摘要 | 链接 |
|---|---|---|---|
| 2025-03-20 | GitHub | agent-reach 获得 28k stars | [link] |
| ... | ... | ... | ... |
根据搜索结果,当前最热的是XXX,原因如下...
差 Prompt vs 好 Prompt 对比
- 差 Prompt:“请帮我查一下最新的AI新闻。” 模型可能直接根据训练数据编造,或者报错无法联网。
- 好 Prompt:如上系统模板,明确定义了搜索命令、结果处理、上下文控制,模型可以精确执行。
原理:好的上下文工程将外部工具封装为模型可理解的指令,并约束信息流,防止上下文污染。模型不再是知识库,而是推理引擎 + 工具调用者。
实验对比效果(理论推演)
假设用GPT-4在100次问答任务中:
- 无联网:准确率45%(依赖旧知识),编造率30%
- 有Agent-Reach + 模板:准确率85%(信息来源明确),编造率5%
这些数字来自类似项目的公开报告(如LangChain agent评测),具体可根据实际测试。
适用场景和边界
- 最佳:需要最新趋势、价格、事件的多步调研任务。
- 边界:平台反爬限制、大规模搜索成本(需限流)、模型对工具调用的可靠性(需错误处理)。
变体扩展
- 监控模式:周期性搜索并增量注入,用于实时看板。
- 多平台合并:同时查询Twitter和GitHub,让模型对比。
- 混合检索:结合Agent-Reach结果 + 本地知识库,提高时效性和准确性。
最后,注意不要过度依赖外部信息:模型仍可能误读或忽略关键数据,需要人工验证。