#
工具调用
OMate 提供了强大的工具调用功能,支持 11 种内置工具和 MCP (Model Context Protocol) 工具扩展。这些工具让 AI 助手能够执行实际操作,而不仅仅是文本对话。
#
功能概述
工具调用功能为 AI 助手提供了与外部系统交互的能力,包括:
- 内置工具:计算器、网页抓取、日历管理、聊天记录搜索等
- MCP 工具支持:通过 Model Context Protocol 集成第三方工具
- 流式支持:实时显示工具执行过程和结果
- Agent 模式集成:在对话中自动调用合适的工具
- 错误处理:完善的错误提示和异常处理机制
#
使用方法
#
启用工具调用
- 在聊天界面中,确保已启用 Agent 模式
- AI 助手会根据对话内容自动判断是否需要使用工具
- AI 助手会根据工具返回的数据进行对话
#
工具测试页面
您可以通过工具测试页面来测试和验证工具功能:
- 在聊天界面点击工具测试按钮
- 选择要测试的工具类型(内置工具或 MCP 工具)
- 输入测试提示词,观察工具调用过程
- 查看详细的执行日志和结果
#
内置工具 (11种)
OMate 内置了以下 11 种实用工具:
#
计算器工具 (calculator)
执行基础数学运算。
支持的操作:
- 加法 (add):两个数相加
- 减法 (subtract):两个数相减
- 乘法 (multiply):两个数相乘
- 除法 (divide):两个数相除
- 幂运算 (power):计算 a 的 b 次方
- 开方 (sqrt):计算平方根
使用示例:
用户:帮我计算 25 的平方根
AI:我来帮您计算 25 的平方根。
[调用计算器工具: operation=sqrt, a=25]
结果:√25 = 5.0
#
网页抓取工具 (scrape_webpage)
获取网页内容并提取主要信息。
功能特点:
- 支持 HTTP/HTTPS 网页抓取
- 自动提取主要内容
- 可配置超时时间(5-60秒)
- 智能内容清理和格式化
使用示例:
用户:帮我获取这个网页的内容:https://example.com
AI:我来帮您抓取网页内容。
[调用网页抓取工具: url=https://example.com]
已成功获取网页内容...
#
日历管理工具
#
日历读取工具 (read_calendar_events)
查询设备日历中的事件。
功能特点:
- 按日期范围查询事件
- 支持多个日历源
- 返回详细的事件信息(标题、时间、地点、参与者等)
- 可限制返回结果数量
使用示例:
用户:查看我明天的日程安排
AI:让我查看您明天的日历安排。
[调用日历读取工具: days_ahead=1]
明天您有以下安排:
1. 上午9:00 - 团队会议
2. 下午2:00 - 客户拜访
#
日历写入工具 (add_calendar_event)
向设备日历添加新事件。
功能特点:
- 创建新的日历事件
- 设置标题、描述、时间、地点
- 支持提醒设置
- 自动验证时间逻辑
使用示例:
用户:帮我在明天下午3点添加一个会议提醒
AI:我来帮您添加日历事件。
[调用日历写入工具: title="会议", start_time="2024-01-15T15:00:00"]
已成功添加到您的日历中。
#
聊天记录搜索工具
#
关键词搜索工具 (query_chat_messages)
在当前对话中搜索包含特定关键词的消息。
功能特点:
- 快速关键词匹配
- 支持结果数量限制
- 可选择排序方式(最新/最旧)
- 返回匹配的消息内容和时间戳
使用示例:
用户:我们之前聊过关于项目的内容吗?
AI:让我搜索一下我们之前关于"项目"的对话。
[调用关键词搜索工具: keyword="项目"]
找到了3条相关记录...
#
全文检索工具 (search_chat_history)
使用高级搜索算法在对话历史中进行语义搜索。
功能特点:
- 基于语义的智能搜索
- 支持角色筛选(用户/助手/系统/全部)
- 相关性评分排序
- 需要启用永久记忆功能
使用示例:
用户:帮我找找我们讨论过的技术方案
AI:我来搜索相关的技术方案讨论。
[调用全文检索工具: query="技术方案"]
找到了以下相关讨论...
#
记事本工具
记事本工具已拆分为四个独立的工具,每个工具专门管理特定类型的数据,提供更精确的分类管理。
#
角色记事本 (character_notebook)
专门用于管理角色相关信息。
使用示例:
用户:帮我记录一下,主角叫李明,是一个程序员
AI:我来帮你记录这个角色信息。
[调用角色记事本工具: action="set", key="李明", value="程序员,主角"]
已成功记录角色信息:李明 - 程序员,主角
#
场景记事本 (scene_notebook)
专门用于管理场景相关信息。
使用示例:
用户:记录一下咖啡厅的场景描述
AI:我来帮你记录场景信息。
[调用场景记事本工具: action="set", key="咖啡厅", value="温馨的小咖啡厅,有柔和的灯光和舒缓的音乐"]
已成功记录场景信息。
#
物品记事本 (item_notebook)
专门用于管理物品相关信息。
使用示例:
用户:记录一下神秘钥匙的信息
AI:我来帮你记录物品信息。
[调用物品记事本工具: action="set", key="神秘钥匙", value="古老的黄铜钥匙,上面刻着神秘符文"]
已成功记录物品信息。
#
自定义记事本 (custom_notebook)
支持自定义分类的记事本,提供最大的灵活性。
使用示例:
用户:帮我在"学习笔记"分类下记录Python的基础语法
AI:我来帮你记录学习笔记。
[调用自定义记事本工具: action="set", category="学习笔记", key="Python基础语法", value="变量定义、数据类型、控制结构等"]
已成功记录学习笔记。
所有记事本工具支持的操作:
- set:设置键值对数据
- get:获取指定键的数据
- update:更新现有数据
- delete:删除指定键的数据
- list:列出所有键(不包含值)
- list_with_value:列出所有键值对
自定义记事本额外支持:
- list_categories:列出所有分类
#
图片搜索工具 (search_unsplash_images)
通过 Unsplash API 搜索高质量图片。
功能特点:
- 支持中文搜索查询
- 可指定返回图片数量(1-10张)
- 提供多种尺寸的图片链接
- 包含作者信息和版权链接
使用条件:
- 需要在朋友圈设置中配置 Unsplash Access Key
使用示例:
用户:帮我找几张关于日落的图片
AI:我来为您搜索日落相关的图片。
[调用图片搜索工具: query="日落", count=3]
找到了3张精美的日落图片...
#
MCP 工具支持
#
什么是 MCP
Model Context Protocol (MCP) 是一个开放标准,允许 AI 应用与外部工具和数据源进行安全、标准化的集成。
#
配置 MCP 服务器
- 在设置页面找到 MCP 服务器 选项
- 点击 添加服务器 按钮
- 填写服务器信息:
- 名称:服务器的显示名称
- URL:MCP 服务器的连接地址
- 请求头:可选的 HTTP 请求头
- 启用服务器并保存配置
#
使用 MCP 工具
配置完成后,MCP 工具会自动集成到 AI 助手中:
- AI 助手会自动发现可用的 MCP 工具
- 根据对话需要自动调用相应工具
- 在工具测试页面可以专门测试 MCP 工具
#
最佳实践
#
工具选择策略
- 计算任务:优先使用计算器工具
- 信息查询:根据数据源选择合适的搜索工具
- 时间管理:使用日历工具进行日程管理
- 数据存储:使用记事本工具保存重要信息
- 内容获取:使用网页抓取工具获取在线内容
#
性能优化
- 合理设置超时时间:避免长时间等待
- 限制结果数量:避免返回过多数据
- 使用缓存:对于重复查询,系统会自动优化
#
错误处理
- 权限问题:确保应用有必要的系统权限
- 网络问题:检查网络连接和服务器状态
- 参数错误:仔细检查工具调用参数
#
故障排除
#
常见问题
工具调用失败
- 检查 Agent 模式是否已启用
- 确认 API 配置正确
- 查看错误日志获取详细信息
日历工具无法使用
- 检查应用是否有日历访问权限
- 确认设备上有可用的日历应用
搜索工具返回空结果
- 确认搜索关键词正确
- 检查是否有相关的历史数据
- 对于全文检索,确认永久记忆功能已启用
MCP 工具连接失败
- 检查服务器 URL 是否正确
- 确认网络连接正常
- 验证服务器是否在线
#
调试技巧
- 使用工具测试页面:独立测试每个工具的功能
- 查看执行日志:了解工具调用的详细过程
- 检查权限设置:确保应用有必要的系统权限
- 验证配置信息:确认 API 密钥和服务器配置正确
通过工具调用功能,OMate 为用户提供了强大而灵活的 AI 助手体验,让 AI 不仅能够对话,还能够执行实际的操作任务。