代理工具¶
Agora 的模型可以自主使用工具——它们决定搜索什么、执行什么、读取什么或记住什么,无需你手动触发每个操作。工具在多轮循环中运作:模型可以调用一个工具、读取结果、然后决定调用另一个工具或回复。
工具调用机制¶
- 你发送消息
- 模型决定需要外部信息或操作
- 它发出工具调用——带有工具名称和参数的结构化请求
- Agora 在设备上或远程服务器上执行工具
- 结果反馈给模型
- 模型调用另一个工具或生成最终回复
此循环在单条消息回合中可以多次重复。
可用工具¶
网络搜索¶
搜索互联网并获取网页内容。模型可以查询最新信息、验证事实或获取文档。
- 提供商:Brave、Serper、Tavily、SearXNG
- 配置:设置 → 网络搜索
- 指南:网络搜索
代码执行¶
在沙盒环境中执行代码片段(取决于提供商)。适合计算、数据分析或内联测试逻辑。
- 提供商:Google Gemini(内置代码执行)
- 配置:无需设置——Gemini 模型自动启用
远程 Shell¶
通过 Conch 协议在远程机器上执行命令。模型可以检查服务器状态、管理文件或运行脚本。
- 协议:端到端加密(ECDH + AES-256-GCM)
- 配置:设置 → Shell
- 指南:远程 Shell
文件操作¶
通过 Conch 协议在远程设备上读取、写入、编辑、glob 搜索和 grep 搜索文件。模型可以直接操作远程文件系统。
Note
文件操作需要配置好的 Conch Shell 设备。详见 远程 Shell 的设置。
记忆¶
跨对话的持久知识存储:
- 活跃记忆 — 始终包含在每次 API 调用中。用于模型应始终记住的事实、偏好或上下文。
- 已保存记忆 — 一组命名记忆文件,模型可以通过工具调用搜索、读取、写入和编辑。
详见 记忆与缓存。
对话搜索¶
模型可以使用关键词或语义(RAG)方法搜索你的聊天记录。这让它可以引用之前的讨论而无需你手动查找和分享。
详见 对话搜索 的设置。
聊天中的工具 UI¶
当工具被调用时,你会看到内联显示:
- **:material-progress-wrench: 工具调用横幅**
---
显示工具名称和简要状态(如 :material-magnify: "正在搜索 '最新 AI 资讯'")。
- **:material-check-circle: 工具结果**
---
执行后,显示格式化结果或摘要(如 "找到 5 个关于 '最新 AI 资讯' 的结果")。
展开详情¶
点按工具调用展开查看:
- 参数 — 发送给工具的确切参数
- 结果 — 工具执行的原始输出
- 状态 — 成功、失败或部分结果
调用失败¶
如果工具调用失败,模型会收到错误通知,可以重试或调整。你会看到带有错误消息的红色横幅。
工具权限¶
你可以控制模型可以访问哪些工具:
| 设置 | 位置 | 默认值 |
|---|---|---|
| 网络搜索 | 设置 → 网络搜索 | 关闭 |
| Shell | 设置 → Shell | 关闭 |
| 记忆(已保存) | 设置 → 记忆 → 访问已保存记忆 | 关闭 |
| 记忆(活跃) | 设置 → 记忆 → 访问活跃记忆 | 关闭 |
| 历史对话 | 设置 → 记忆 → 访问历史对话 | 关闭 |
| 对话搜索 | 设置 → 对话搜索 | 开启* |
*模型搜索对话的能力取决于是否配置了嵌入模型。没有嵌入模型时,仅关键词搜索可用。
多轮工具循环¶
模型可以链式调用多个工具。例如:
- 用户:"最新的 Linux 内核版本是什么,我的服务器在运行它吗?"
- 模型调用
web_search("最新 Linux 内核版本") - 模型调用
shell_execute("uname -r", device="my-server") - 模型比较结果并回复
每个工具调用及其结果显示为对话中的独立内联项目,位于最终文本回复之前。