乐于分享
好东西不私藏

OpenClaw科普系列3_执行层

OpenClaw科普系列3_执行层
第3篇:当小龙虾伸出手臂——智能体是怎么干活的?
想象一下
你有没有见过小龙虾捕食?
当小龙虾发现食物时,它的动作是这样的:
1. 发现信号:复眼看到食物,触角闻到气味
2. 大脑决策:神经节判断"可以抓"
3. 信号传递:指令从脑传到胸部的肌肉
4. 肌肉收缩:胸部的大块肌肉开始发力
5. 螯肢闭合:两只螯肢迅速合拢,抓住食物
这个过程最精彩的地方在于:从"想要"到"抓住",只需要不到1秒钟。
而且,如果你仔细观察会发现:
- 小龙虾不会每次都抓到——有时候食物跑了
- 抓到了之后,它会先用触角碰一碰,确认"是不是能吃的"
- 如果发现不对,会立刻松开,重新尝试
这种"执行 → 反馈 → 调整"的能力,是小龙虾捕食成功的关键。
智能体的执行层,做的就是类似的工作。
智能体的"螯肢"和"肌肉"
执行层 = 工具 + 执行引擎 + 反馈机制
想象一下:
- 你对智能体说:"帮我查一下北京今天的天气"
- 智能体理解了你的意思(网关层的工作)
- 现在,它需要真正去查天气
这个"真正去做"的过程,就是执行层的工作。
执行层有三个关键部件:
我们一个个讲。
---
1. 工具库:智能体的"十八般武艺"
智能体有哪些"工具"?
小龙虾的螯肢主要用来抓取,但它偶尔也会用小腿拨弄、用腹部的游泳足划水。智能体也是一样的——它有各种不同的"工具"来完成不同任务:
最常见的工具类型:
📱 通讯工具
- 发邮件
- 发钉钉/微信消息
- 发短信
- 打电话
🔍 查询工具
- 搜网页
- 查数据库
- 调 API
- 读文件
✍️ 创作工具
- 写文章
- 生成图片
- 写代码
- 翻译
📊 分析工具
- 分析数据
- 生成图表
- 统计数据
🔧 运维工具
- 部署服务
- 重启服务
- 查日志
- 监控报警
工具是怎么"注册"的?
你可能好奇:智能体怎么知道有哪些工具可用?
答案是:提前注册。
就像小龙虾天生就知道"螯肢是用来抓的"——这是写进基因里的。智能体的工具也是"天生"的,不过是由开发者"写进"系统的。
举几个例子:
**天气查询工具**
- 名称:get_weather
- 功能:查询指定城市的天气
- 参数:城市名(string)
- 返回:天气情况、温度、湿度等
**发送邮件工具**
- 名称:send_email
- 功能:发送电子邮件
- 参数:收件人、主题、正文
- 返回:发送成功/失败
**生成图片工具**
- 名称:generate_image
- 功能:根据文字描述生成图片
- 参数:提示词(prompt)
- 返回:图片的 URL
这些工具"注册"到智能体之后,智能体就像有了一个工具箱。遇到不同的任务,就去工具箱里找合适的工具。
---
2. 执行引擎:智能体的"肌肉"
工具选好了,怎么执行?
这就像小龙虾的肌肉系统:
- 大脑发出"抓取"的指令
- 指令变成电信号,通过神经传给肌肉
- 肌肉收到信号,开始收缩
- 螯肢跟着动
智能体的"执行引擎"也是类似的流程:
Step 1:意图识别 + 工具匹配
当用户说"帮我查天气"时,智能体会:
1. 理解用户想查天气 → 这是"查询"意图
2. 从工具箱里找到"天气查询"工具
这就像小龙虾的脑识别出"前方有食物"。
Step 2:参数提取
找到工具还不够,还要知道具体参数:
- 查哪个城市的天气?→ "北京"
- 查今天还是明天的?→ "今天"
参数可能来自:
- 用户的话里直接提到("北京")
- 用户的偏好(上次查的是北京,就继续查北京)
- 系统的默认值(如果不指定,默认查当前定位)
Step 3:执行调用
参数准备好了,就可以"调用"工具了。
这个过程就像:
智能体 → 工具:"Hey,帮我查一下北京的天气"
工具 → 智能体:"北京今天晴,22-28度"
技术上的说法是:Function Calling(函数调用)。但你可以理解为"智能体去叫了一个帮手来做事"。
Step 4:结果处理
工具返回结果后,执行引擎还要"消化"一下:
- 原始结果可能是 JSON、XML、或者纯文本
- 需要转换成人类能看懂的形式
- 可能还需要做一些"二次加工"(比如把温度单位从摄氏度转成摄氏度)
---
3. 反馈机制:智能体的"触觉"
执行了就一定会成功吗?
当然不是。
想象小龙虾抓食物:
- 第一次抓,没抓住 → 肌肉再收缩,尝试第二次
- 抓住了,但是是石头 → 触角感知到"不对",松开螯肢
- 抓住了而且是食物 → 开始吃
智能体也是一样的。它需要知道:
- 事情做成了吗?
- 如果没做成,原因是什么?
- 接下来该怎么办?
反馈的三种类型
类型一:成功反馈
"邮件已发送成功"
"图片已生成,点这里查看"
类型二:失败反馈
"发送失败:收件人邮箱不存在"
"数据库连接超时,请稍后重试"
类型三:需要用户确认
"查到了3个相似的结果,您想看哪一个?"
"这个操作需要您确认:删除后无法恢复,确定继续吗?"
智能重试(Self-Correction)
智能体一个强大的能力是:自动重试。
场景:网络不稳定,API 调用失败了
智能体:
- 第一次调用:网络超时
- 等待1秒,第二次调用:还是超时
- 等待2秒,第三次调用:成功了!
- 返回结果给用户
这就像小龙虾抓食物:
- 第一次没抓住
- 调整一下位置
- 第二次再试
- 抓住了!
---
进阶能力:工具编排
复杂任务怎么办?
有时候,一个任务需要多个工具配合。
场景:用户说"帮我查天气,然后发邮件告诉我老婆"
这个任务需要:
1. 查天气(工具A)
2. 发送邮件(工具B)
这种"多个工具按顺序执行"的过程,叫工具编排(Tool Choreography)。
编排的三种模式
模式一:串行执行
用户 → 工具A → 工具B → 工具C → 用户
例子:
1. 先查天气
2. 把天气信息填入邮件模板
3. 发送邮件
模式二:并行执行
用户 → ┬→ 工具A ──┐
├→ 工具B ──┤ → 结果汇总 → 用户
└→ 工具C ──┘
例子:
- 同时搜索"北京天气"、"上海天气"、"广州天气"
- 三个结果一起返回,智能体整理成表格
模式三:条件执行
用户 → 判断条件 ──→ 满足?工具A : 工具B
例子:
- 如果用户问的是天气 → 调用天气工具
- 如果用户问的是时间 → 调用时间工具
执行层的日常
我们再来"跟踪"一个完整的执行过程:
**用户说:"帮我查北京天气,然后生成一张阳光明媚的图片"**
1. 网关层:判断这是一个"查询 + 生成"任务
→ 路由给执行层
2. 意图识别:
- 任务1:查天气
- 任务2:生成图片
3. 工具匹配:
- 任务1 → 天气查询工具
- 任务2 → 图片生成工具
4. 参数提取:
- 天气工具:城市="北京"
- 图片生成工具:prompt="阳光明媚的城市风光"
5. 并行执行:
- 调用天气API
- 调用图片生成服务
6. 等待结果:
- 天气API返回:"北京今天晴,22-28度"
- 图片生成返回:"https://example.com/sunny.jpg"
7. 结果整合:
- "北京今天晴,22-28度。这是为您生成的图片:https://example.com/sunny.jpg"
8. 返回给用户
全部过程:3-5秒。
---
这一篇我们学到了什么?
执行层是智能体的"手"。它把"想法"变成"行动"——把"用户想要什么"变成"用户得到了什么"。
---
预告
现在我们已经知道了:
- 感知层 = 智能体的"眼睛和耳朵"
- 网关层 = 智能体的"大脑"
- 执行层 = 智能体的"手"
接下来要讲的,是智能体的记忆系统——也就是小龙虾的消化系统。
想象一下:
- 小龙虾吃掉食物后,不是直接"用掉",而是消化、吸收、储存
- 消化后的"养分"会被送到全身,供需要的时候使用
智能体也是一样的:它不仅要做任务,还要记住东西。上次用户问过什么问题?用户的偏好是什么?之前学到的知识怎么保留?
敬请期待第4篇:《当小龙虾有了"记忆"——智能体是怎么"记住"一切的?》
---
🐉 未完待续