Agent 架构解析
OpenClaw Agent 的工作方式
OpenClaw 的 Agent 基于 ReAct 模式(Reasoning + Acting):
用户输入
→ 思考(Reasoning):分析任务,规划步骤
→ 行动(Acting):调用工具执行
→ 观察(Observation):处理工具返回结果
→ 循环直到任务完成
→ 输出最终结果这个循环称为 Agent Loop,每次循环称为一个 Turn。
工具系统
Agent 通过调用工具与外部世界交互,OpenClaw 内置工具包括:
| 工具类型 | 示例 |
|---|---|
| 文件操作 | 读文件、写文件、列目录 |
| 代码执行 | 运行 Shell 命令、执行脚本 |
| 网络请求 | HTTP GET/POST、网页抓取 |
| 系统集成 | 截图、摄像头(macOS) |
| 搜索 | 本地搜索、网络搜索 |
工具权限控制
默认情况下,敏感工具(如执行命令、网络请求)需要用户确认:
json
{
"tools": {
"permissions": {
"shell": "ask",
"filesystem": "allow",
"network": "ask"
}
}
}权限级别:
allow:自动允许ask:每次询问用户deny:禁止使用
上下文窗口管理
当对话历史过长时,OpenClaw 会自动进行 Compaction(压缩):
- 识别历史对话中的关键信息
- 生成摘要替换详细历史
- 保留重要上下文,减少 Token 消耗
可手动触发:
bash
# 在对话中发送
/compact子代理(Sub-Agent)
对于复杂任务,主 Agent 可以启动子代理并行执行:
主 Agent
├─ 子代理 A:搜索资料
├─ 子代理 B:分析代码
└─ 子代理 C:生成报告
↓
主 Agent 汇总结果详见 多代理架构 章节。