跳转至

# 代理工具

Agora 的模型可以自主使用工具——它们决定搜索什么、执行什么、读取什么或记住什么，无需你手动触发每个操作。工具在多轮循环中运作：模型可以调用一个工具、读取结果、然后决定调用另一个工具或回复。

## 工具调用机制

1. 你发送消息
2. 模型决定需要外部信息或操作
3. 它发出工具调用——带有工具名称和参数的结构化请求
4. Agora 在设备上或远程服务器上执行工具
5. 结果反馈给模型
6. 模型调用另一个工具或生成最终回复

此循环在单条消息回合中可以多次重复。

## 可用工具

### 网络搜索

搜索互联网并获取网页内容。模型可以查询最新信息、验证事实或获取文档。

- 提供商：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 | 关闭
记忆（已保存） | 设置 → 记忆 → 访问已保存记忆 | 关闭
记忆（活跃） | 设置 → 记忆 → 访问活跃记忆 | 关闭
历史对话 | 设置 → 记忆 → 访问历史对话 | 关闭
对话搜索 | 设置 → 对话搜索 | 开启*

*模型搜索对话的能力取决于是否配置了嵌入模型。没有嵌入模型时，仅关键词搜索可用。

## 多轮工具循环

模型可以链式调用多个工具。例如：

1. 用户："最新的 Linux 内核版本是什么，我的服务器在运行它吗？"
2. 模型调用 `web_search("最新 Linux 内核版本")`
3. 模型调用 `shell_execute("uname -r", device="my-server")`
4. 模型比较结果并回复

每个工具调用及其结果显示为对话中的独立内联项目，位于最终文本回复之前。