跳到主要内容

观察空间与动作空间

为什么说观察与动作空间是能力边界?​

  • 边界: 观察通道与动作接口共同构成 Agent 与外部环境之间的边界;
  • Harness 职责: 把环境返回的观察转成模型能处理的上下文,再把模型选择的行动转成对环境的工具调用;
  • 两条否决规则: 没通过观察通道进入上下文的信息,对模型等于不存在;没被动作接口允许的操作,模型只能停留在文字建议;
  • 工程含义: 底层模型固定时,提升任务表现最主要的系统工程手段往往就是重新定义或扩展这两个空间(即扩展上下文和工具);
  • 常见误判: 许多看似需要“更聪明模型”的问题,其实只是接口问题;

通用 Agent 的演进如何体现空间扩展?​

  • Manus: 把原本分离的 Deep Research、Coding、Computer Use 三条路线放进同一生产级 Agent——虚拟浏览器扩大观察空间,文件系统、代码执行与命令行扩大动作空间;取三类空间之并集而非只换更强模型;
  • OpenClaw: 再向外推一层——通过 WhatsApp、Telegram、Slack、Discord、iMessage 等既有消息渠道收发任务,采用本地 Gateway 连接 Google Drive、Notion 与本地文件系统;
  • 差异: Manus 以隔离云端沙盒为中心,常需上传文件或配置连接器;OpenClaw 本地优先,跨越更大的数据边界;
  • 佐证: Manus 后来也加入 Google Drive 连接器与桌面端本地访问,说明产品能力演进往往就是观察空间与动作空间的演进;

不同 Agent 产品在这两个维度上如何对照?​

Agent 产品眼睛(感知)手脚(行动)策略
Cursor 等 Coding Agent需求、代码片段、目录列表、终端输出开放式:代码搜索、文件读写、执行命令增量开发:理解→搜索→编辑→测试→修复
Deep Research 等搜索 Agent搜索结果、网页内容、论文摘要与引用开放式:搜索、读网页、生成报告迭代深化:据已有信息调整方向
Browser Use 等电脑操控 Agent屏幕截图、DOM 或无障碍树、操作结果开放式:点击、输入、滚动、截图视觉感知+操作:观察→识别→执行→验证
豆包等手机助手 Agent手机截图、App 界面状态、系统反馈开放式:点击、滑动、输入、打开 App意图理解+App 操控
Pine AI 等个人办事 Agent授权读取的账户记录、账单、服务商资料开放式:打电话、发邮件、填表单、与用户确认多步骤任务:收集→制定策略→谈判→汇报
  • 共同特征: 开放式动作空间(可生成任意自然语言与代码)、能内部思考、能持续交互;

工具按交互方向分为哪五类?​

  • 感知工具: 承载环境到 Agent 的观察——搜索引擎、文件系统读取、API 与数据库查询;
  • 执行工具: 承载 Agent 到环境的行动——代码执行、文件操作、系统命令、外部 API 调用;
  • 协作工具: 与其他 Agent 分工——委托子 Agent、关键点请求人类确认、多 Agent 协调;
  • 事件触发工具: 调用方式相反——不是 Agent 主动调用,而是外部输入(新邮件、定时点、Webhook)驱动 Agent 开始执行;事件适配器也是 Environment 向 Agent 提供观察的通道;
  • 用户沟通工具: Agent 主动与用户建立连接并传递信息——文字消息、语音通话、邮件;与执行工具改变世界不同,它专注信息传递;
  • 展开位置: 完整分类与设计原则见第四章;事件触发、用户沟通与异步运行时见第六章;

工具调用(Tool Calling)的四步流程是什么?​

  • 术语: Tool Calling 也称 Function Calling,本书统一使用“工具调用”;
  • 第一步: 在上下文里声明可用工具(名称、用途、参数);
  • 第二步: 模型自主判断要不要调用、调用哪个、传什么参数;
  • 第三步: 工具执行完毕后,结果追加到上下文中;
  • 第四步: 模型据此决定下一步行动;
  • 本质: 开发者只定义与执行工具,决策交给模型;这个循环就是 ReAct 的基础;
  • 展开位置: API 消息结构见第二章;
第一步:声明工具 第二步:模型决定调用
tools: [{ assistant: {
name: "get_weather", tool_calls: [{
parameters: { function: "get_weather",
city: "string" arguments: {city: "北京"}
} }]
}] }

第三步:结果追加到上下文 第四步:模型基于结果回复
tool: { assistant: {
tool_call_id: "call_1", content: "北京今天 28°C,晴。"
content: '{"temp":28,"sky":"晴"}' }
}

工具的通用性与专用性如何取舍?​

  • 起步原则: 先从任务所需的最窄能力起步,随复杂度提升逐步扩展;
  • 通用优势: 任务从四则运算升级到读表、清洗、统计并绘图时,受限的 Python 代码解释器比不断叠加专用工具更易组合与探索;
  • 通用代价: 扩大出错与攻击面——代码必须在隔离沙盒中运行,默认不能访问网络,不能读取授权工作目录以外的文件,并限制执行时间、CPU、内存与输出大小;
  • 长程任务: 单一日志工具适合一段执行;数小时至数天的任务用受控虚拟工作目录保存计划、中间结果、日志与产物,并限定路径、容量、文件类型、防止路径越界,而不是暴露宿主文件系统;
  • 核心原则: 通用基础能力用于组合与探索;专用工具用于约束高风险和强业务规则操作(支付、删除数据、发送邮件、生产部署需参数明确、权限受限、全程可审计,必要时预览与人工确认);