一句话驱动真实操作:VisionClaw execute工具调用与Agent技能路由原理详解
【免费下载链接】VisionClawReal-time AI assistant for Meta Ray-Ban smart glasses -- voice + vision + agentic actions via Gemini Live and OpenClaw项目地址: https://gitcode.com/gh_mirrors/vi/VisionClaw
VisionClaw 是一款面向 Meta Ray-Ban 智能眼镜的实时 AI 助手,它让 AI 能"看见你所见、听懂你所言",并通过execute 工具调用与Agent 技能路由机制,把你的日常口语指令(如"给 John 发消息说我晚点到")转化为真实的账号操作。本文面向新手,用最少的代码、最多的直觉,讲清楚这句话背后完整的技术链路:从语音识别到工具调用,再到技能路由与云端执行。🔧
一句话如何变成真实操作:7步全链路
很多人以为"AI 助手"只会聊天。VisionClaw 的不同之处在于:它把"说一句话"变成了"办成一件事"。以"把牛奶加到购物清单"为例,完整链路如下:
- 🎤 你对着眼镜说一句话,音频(16kHz PCM)+ 摄像头画面(约 1 帧/秒 JPEG)实时推给Gemini Live;
- Gemini 先口头确认一句"好的,马上加"(避免静默调用工具);
- Gemini 发出一个
execute(task: "把牛奶加到购物清单")的toolCall; - 工具路由层把这个调用转发给后端的Gateway(本地 OpenClaw 或云端托管网关);
- 网关驱动 Agent 技能库(56+ 技能:网页搜索、消息、智能家居、备忘录、提醒等)真正执行任务;
- 执行结果以
toolResponse原路返回给模型; - 🗣️ Gemini 用自然语音把结果念给你听。
官方架构总览图(音频与画面上行、工具调用与语音应答下行的双向流):
这套链路在仓库中最直观的说明位于 README.md 的 "Tool Calling" 一节。
execute 工具详解:你的"个人账号 Agent"
在 Voice Agent 工作进程中,execute是一个标准的函数式工具(function tool),它的"说明书"(docstring)就是告诉大模型什么任务该用我:
- ✅ 适合:发送消息与邮件、管理清单和提醒、Google 日历、Notion 页面与数据库、Slack、通用网络调研、智能家居控制——一切发生在用户自己已连接账号里的操作;
- ❌ 不适合:打开购物网站、在网站上下单/加购物车——这类任务属于
browse; - 📷 特殊参数
attach_view=true:当任务与你正对着镜头拍的东西有关时(读标签、读收据、读传单),系统会自动把当前摄像头帧随任务一起发出去,让 Agent 直接"看图干活"。
核心实现入口:agent/main.py。可以看到执行分两步:先按attach_view决定是否编码最新画面,再调用_gateway_execute把任务(可附带 base64 图片)投递给网关,结果通过共享的"慢速任务委托循环"异步等待——即使任务耗时数分钟,语音层也不会被卡死。
Agent 技能路由原理:三把"刀"各司其职
VisionClaw 的精华在于技能路由(skill routing):模型不是"一把锤子敲所有钉子",而是被明确告知三把工具各管一摊。这段路由规则写在 Agent 的系统指令中,见 agent/main.py:
| 工具 | 职责 | 典型场景 | 速度 |
|---|---|---|---|
quick_search | 快速事实查询 | 天气、股价、新闻、营业时间 | 秒级 |
browse | 真实浏览器操作(computer-use) | 电商加购、预订、填表单、比价 | 较慢 |
execute | 个人已连接账号内操作 | 发消息、日历、Notion、智能家居 | 视任务而定 |
路由的边界规则非常讲究,例如指令里专门写了一条容易误判的场景:用户说"帮我加进 Amazon 购物车",听起来像"行动",但因为是网站上的行为,必须走browse而不是execute;反过来,"存到我的 Notion"则是典型的execute。browse的完整定义见 agent/main.py,它还内置了防抖逻辑——上一个浏览任务没跑完时拒绝重复启动,避免重复扣费。
对新手来说,理解这套路由的价值在于:你不需要记任何命令语法,说人话即可,模型负责把意图分到正确的执行通道。
云端 Gateway:execute 任务在哪里落地
execute的终点是 Gateway。仓库中的 gateway/ 是一个托管版"行动 Agent":它向上说与 iOS/Android App 完全一致的协议(OpenAI 兼容接口 + WebSocket 事件通道),向下驱动 Agent 执行框架,为每个用户维护独立的会话、长期记忆库和凭据保险库(OAuth 令牌集中保管、自动刷新)。
三个对体验至关重要的设计:
- 双速回合(Two-speed turns):
execute类任务最多等 30 秒;超时立即先回一句"还在处理",最终结果稍后经 WebSocket 推回,由语音层补说给你——长任务绝不阻塞对话; - 应用连接即技能扩展:每个可连接的 App(Notion、Slack、Google 日历等)都是一次性声明的 MCP 服务器,注册入口在 gateway/src/apps.ts,连接后该用户的所有工具调用都以其本人身份、其本人权限执行;
- 全链路可追溯:每次工具调用都会记录为 trace 事件(只记"附了图",从不记录图片本身),方便复盘与调试,见 gateway/src/trace.ts。
服务端入口逻辑可参考 gateway/src/server.ts,部署说明见 gateway/README.md。
上手体验:没有眼镜也能玩
想亲手验证这条链路?用 iPhone/Android 手机模式即可,无需眼镜:
- 克隆仓库:
git clone https://gitcode.com/gh_mirrors/vi/VisionClaw - 打开
samples/CameraAccess/(iOS)或samples/CameraAccessAndroid/(Android),复制Secrets示例文件填入 Gemini API Key; - 点"Start on iPhone / Phone",再点 AI 按钮开始对话——AI 就能通过手机后置摄像头"看"你,并把指令路由到 execute/browse/quick_search 执行。
完整快速上手与故障排查请看 README.md。
总结
VisionClaw 用一个execute工具 + 一套清晰的技能路由,解决了语音助手"只会说不会做"的老问题:
- 🎯意图即路由:自然语言指令被模型分派到 execute(个人账号)、browse(网站操作)、quick_search(事实查询)三条通道;
- ⚡不阻塞的长任务:双速回合机制让"办大事"和"聊天"互不干扰;
- 🔐身份隔离:每个用户独立会话、记忆与凭据,Agent 替你操作时用的是你自己的账号和权限。
下一篇文章,我们可以深入browse工具如何驱动真实浏览器完成购物下单——欢迎继续关注。
【免费下载链接】VisionClawReal-time AI assistant for Meta Ray-Ban smart glasses -- voice + vision + agentic actions via Gemini Live and OpenClaw项目地址: https://gitcode.com/gh_mirrors/vi/VisionClaw
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考