内置工具
Riverse 包含可插拔的工具系统。LLM 会根据对话上下文自动判断何时调用工具。
可用工具
| 工具 | 说明 |
|---|---|
| 网页搜索 | 搜索网页获取最新信息(使用 cloud LLM 中 search: true 的模型) |
| 图像理解 | 通过 GPT-4 Vision / Ollama LLaVA 分析图片 |
| 语音识别 | 通过 OpenAI Whisper-1 语音转文字 |
| 文件读取 | 读取本地文本文件(.txt, .py, .yaml, .json, .md) |
| Shell 命令 | 执行安全的 Shell 命令(白名单机制,默认关闭) |
| 财务追踪 | 追踪和分析财务数据 |
| 健康同步 | 从 Withings 设备同步健康数据 |
此外,文字转语音 (TTS) 功能通过 Edge TTS 在 Telegram 和 Discord Bot 中可用。TTS 不是注册工具,而是直接集成在 Bot 回复流程中。在 settings.yaml 中启用:
配置
在 Web 面板中管理工具
打开 System 页面 → 工具 区域,可以直接:
- 开关(ON/OFF):点击工具卡片上的 ON/OFF 标签,立即生效(需重启服务)
- 删除:点击 ✕ 按钮将工具从
tools.yaml注册表中移除
无需修改任何 Python 代码。
工作原理
- 启动时,
ToolRegistry读取agent/tools/tools.yaml中的工具列表 - 按列表顺序导入对应模块,对每个
BaseTool子类调用is_available() - 可用的工具按
manifest().name注册 - 用户发送消息时,LLM 会看到所有工具的 manifest,决定调用哪个
- 工具的
execute()结果会注入 LLM 上下文,用于生成最终回复
自定义工具
你可以通过在 agent/tools/ 目录下添加 .py 文件来创建自己的工具。参见自定义工具开发指南。