前面几篇已经把一个能实际运行的 Agent 搭起来了:
- 有 Tool Calling
- 有 Agent Loop
- 有上下文管理和裁剪
- 能联网搜索和抓取网页
- 能记录 sources
- 能生成 Markdown 报告并落盘
- 有本地 Web UI
- 可以接本地 Ollama,也可以接 OpenAI 兼容的云端模型
作为一个个人调研 Agent,这套东西已经能完成基本任务。
但如果拿它和成熟的商用 Agent 放在一起比较,差距还是比较明显的。
1. 数据能力
现在的 Agent 主要依赖:
- 普通 Web 搜索
- HN / RSS
- 网页抓取
- 简单的 HTML 内容提取
商用 Agent 往往还需要处理:
- 表格
- JavaScript 渲染页面
- 私有知识库
- 企业内部数据
- 专业领域数据源
- 付费搜索和数据 API
所以第一层差距不是模型,而是数据获取和数据处理能力。
2. 任务规划
现在的 _agent_loop 更接近:
思考
→ 调 Tool
→ 看结果
→ 继续思考
→ 调 Tool
→ ...
对于“搜索几个资料,然后生成报告”这种任务已经够用。
但任务变长以后,就会需要更明确的:
Plan
→ Execute
→ Observe
→ Re-plan
→ Verify
→ Deliver
例如一个复杂调研任务,可能需要拆成多个子任务,并记录哪些已经完成、哪些失败、哪些需要重新执行。
当前版本没有专门的 Planner,也没有持久化的任务状态。
3. 结果可靠性和评估
现在虽然已经记录了 sources,但还没有真正建立完整的结果验证机制。
例如:
搜索成功
≠
找到正确资料
找到资料
≠
引用正确
生成报告
≠
任务完成
当前版本最多可以知道 Agent 调用了哪些 Tool、拿到了哪些来源。
如果要进一步提高可靠性,还需要:
- 引用 URL 校验
- 来源去重
- 来源质量判断
- 事实与来源对应关系检查
- 自动评测
- 回归测试
也就是说,需要从“能跑”进一步走向“可验证”。
4. 模型能力
当前版本可以接本地 7B 模型,也可以切换到 OpenAI 兼容的云端模型。
模型能力会直接影响:
- Tool 选择
- 参数生成
- 多步任务执行
- 上下文理解
- 最终报告质量
特别是任务变复杂以后,小模型更容易出现:
该调用 Tool 的时候不调用
或者:
已经拿到结果,但不知道下一步应该做什么
所以 Agent 能力并不完全由 Loop 决定,模型本身也是整个系统的一部分。
5. 工程和安全
当前版本是本地个人项目,因此很多生产环境必须考虑的问题都没有做。
例如:
- 用户认证
- 权限控制
- Rate Limit
- API Key 管理
- 成本控制
- 完整日志和审计
- 多用户隔离
- Tool 权限控制
- SSRF 防护
- 沙箱执行
尤其是加入 fetch_url、Shell、代码执行这类 Tool 后,安全边界会迅速变复杂。
本地 Demo 可以直接访问 URL。
真正的线上 Agent 则不能简单地相信模型给出的 URL。
6. 长任务和状态持久化
现在的 Agent 基本属于:
一次请求
→ 一次执行
→ 一次结果
如果任务运行几十分钟甚至几个小时,就需要考虑:
- 中途失败怎么办
- 服务重启怎么办
- Tool 超时怎么办
- 某一步执行失败要不要重试
- 已经完成的步骤能不能恢复
- 如何保存中间状态
这时候 Agent 就不再只是一个函数调用,而更接近一个有状态的任务系统。
对照下来
把目前这个 Agent 和商用 Agent 放在一起,差距大致可以归纳成:
| 能力 | 当前版本 | 商用 Agent |
|---|---|---|
| Tool Calling | 有 | 有 |
| Agent Loop | 有 | 有 |
| 上下文管理 | 基础 | 完整 |
| Web 搜索 | 有 | 更丰富 |
| 数据源 | Web / HN / RSS | Web / API / PDF / 私有数据等 |
| 引用 | 有 sources | 可验证、可评估 |
| 报告生成 | 有 | 有 |
| 任务规划 | 基础 | 多阶段规划 |
| 长任务 | 弱 | 完整状态管理 |
| 失败恢复 | 基础 | 重试 / Checkpoint / Recovery |
| 模型 | 本地 / 云端 | 通常使用更强模型 |
| 评估 | 无 | Eval / Regression |
| 安全 | 基础 | 权限 / 沙箱 / SSRF 等 |
| 多用户 | 无 | 有 |
| 成本控制 | 无 | 有 |
| 审计 | 基础日志 | 完整 Trace / Audit |
从这个表看,差距其实比较清楚。
Agent Loop 本身并没有那么复杂。
真正拉开差距的,是 Loop 外面的这些东西:数据、状态、规划、验证、评估、安全,以及生产环境的工程能力。
这也是目前这个项目最明确的边界:
它已经是一个能工作的个人调研 Agent,但距离一个稳定、可验证、可运营的商用 Agent,还有一整层工程能力。
到这里,这个系列的代码部分基本就完整了。













