# 工具调用

OMate 提供了强大的工具调用功能,支持 11 种内置工具和 MCP (Model Context Protocol) 工具扩展。这些工具让 AI 助手能够执行实际操作,而不仅仅是文本对话。

# 功能概述

工具调用功能为 AI 助手提供了与外部系统交互的能力,包括:

  • 内置工具:计算器、网页抓取、日历管理、聊天记录搜索等
  • MCP 工具支持:通过 Model Context Protocol 集成第三方工具
  • 流式支持:实时显示工具执行过程和结果
  • Agent 模式集成:在对话中自动调用合适的工具
  • 错误处理:完善的错误提示和异常处理机制

# 使用方法

# 启用工具调用

  1. 在聊天界面中,确保已启用 Agent 模式
  2. AI 助手会根据对话内容自动判断是否需要使用工具
  3. AI 助手会根据工具返回的数据进行对话

# 工具测试页面

您可以通过工具测试页面来测试和验证工具功能:

  1. 在聊天界面点击工具测试按钮
  2. 选择要测试的工具类型(内置工具或 MCP 工具)
  3. 输入测试提示词,观察工具调用过程
  4. 查看详细的执行日志和结果

# 内置工具 (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 服务器

  1. 在设置页面找到 MCP 服务器 选项
  2. 点击 添加服务器 按钮
  3. 填写服务器信息:
    • 名称:服务器的显示名称
    • URL:MCP 服务器的连接地址
    • 请求头:可选的 HTTP 请求头
  4. 启用服务器并保存配置

# 使用 MCP 工具

配置完成后,MCP 工具会自动集成到 AI 助手中:

  1. AI 助手会自动发现可用的 MCP 工具
  2. 根据对话需要自动调用相应工具
  3. 在工具测试页面可以专门测试 MCP 工具

# 最佳实践

# 工具选择策略

  • 计算任务:优先使用计算器工具
  • 信息查询:根据数据源选择合适的搜索工具
  • 时间管理:使用日历工具进行日程管理
  • 数据存储:使用记事本工具保存重要信息
  • 内容获取:使用网页抓取工具获取在线内容

# 性能优化

  • 合理设置超时时间:避免长时间等待
  • 限制结果数量:避免返回过多数据
  • 使用缓存:对于重复查询,系统会自动优化

# 错误处理

  • 权限问题:确保应用有必要的系统权限
  • 网络问题:检查网络连接和服务器状态
  • 参数错误:仔细检查工具调用参数

# 故障排除

# 常见问题

工具调用失败

  • 检查 Agent 模式是否已启用
  • 确认 API 配置正确
  • 查看错误日志获取详细信息

日历工具无法使用

  • 检查应用是否有日历访问权限
  • 确认设备上有可用的日历应用

搜索工具返回空结果

  • 确认搜索关键词正确
  • 检查是否有相关的历史数据
  • 对于全文检索,确认永久记忆功能已启用

MCP 工具连接失败

  • 检查服务器 URL 是否正确
  • 确认网络连接正常
  • 验证服务器是否在线

# 调试技巧

  1. 使用工具测试页面:独立测试每个工具的功能
  2. 查看执行日志:了解工具调用的详细过程
  3. 检查权限设置:确保应用有必要的系统权限
  4. 验证配置信息:确认 API 密钥和服务器配置正确

通过工具调用功能,OMate 为用户提供了强大而灵活的 AI 助手体验,让 AI 不仅能够对话,还能够执行实际的操作任务。