☰
让手机上的LLM真正动手:Off Grid AI工具调用与MCP服务器接入实战
2026/9/30 1:05:28 网站建设 项目流程

让手机上的LLM真正动手:Off Grid AI工具调用与MCP服务器接入实战

【免费下载链接】OGAMThe Swiss Army Knife of Offline AI. Chat, see, speak, and generate images on your phone or Mac — GGUF LLMs, vision, Whisper speech-to-text, Stable Diffusion, tool calling, and local-network servers. Runs on your CPU, GPU, or NPU. No account, no API key, zero data leaves your device.项目地址: https://gitcode.com/gh_mirrors/of/OGAM

Off Grid AI是一款完全运行在本地设备上的离线 AI 助手——手机或 Mac 上的 LLM 不仅能聊天,还能工具调用(联网搜索、计算器、知识库检索),甚至接入MCP 服务器把 Linear、Notion、GitHub 等外部工具挂到模型上。无需账号、无需 API Key,所有数据都留在你的设备上。本文将带你从零上手这套"让 LLM 真正动手干活"的本地 AI 工具调用体系。

什么是工具调用:从"只会说"到"能动手"

普通聊天机器人只会"说"——它无法查实时新闻,也无法真的执行一个计算。而工具调用(Tool Calling)的工作方式是:

  1. 你把一批工具(函数)的"说明书"随提示词发给 LLM;
  2. 模型在回答时输出一个结构化的工具调用,比如"调用 web_search,参数是 query=今日金价";
  3. 应用替它执行,把结果塞回对话;
  4. 模型基于真实结果给你最终答案。

Off Grid AI 把这个过程做成了一个全自动工具循环,并且内置了"防失控"机制:每一轮最多执行多少次工具调用(maxToolCalls设置)、每次工具结果的最大长度,都会兜底,避免小模型在小屏手机上"绕圈死循环"。核心循环实现在 generationToolLoop.ts。

开箱即用:6 个内置工具清单 🧰

打开工具页面,你会看到这些免费内置工具,全部由 registry.ts 定义:

工具能干什么需要联网
🔍Web Search实时联网搜索,返回标题、摘要和链接是
🧮Calculator精确计算数学表达式否
🕐Date & Time获取当前日期时间(支持指定时区)否
📱Device Info查询本机电量、存储、内存等硬件信息否
📚Knowledge Base检索你上传到项目知识库的 PDF/文本文档否
🔗URL Reader抓取任意网页的完整正文是

小知识:search_knowledge_base会自动出现在项目对话里——你上传的文档会被分块、用设备端嵌入模型向量化,存在本地 SQLite 中,检索全程离线。

三步开启工具:最快配置方法

  1. 进入 Tools 页面:在聊天界面打开工具入口,进入 ToolsScreen;
  2. 拨动开关:每个工具行右侧有一个 Switch,按需打开(需要联网的工具旁边有 wifi 小图标提示);
  3. 直接提问:回到对话,直接问"现在纽约几点?"或"搜一下 XX 的最新价格",模型会自动挑对工具、执行、再总结。

回答气泡下方会出现一个"Tools sent in request (N)"折叠行(ToolsSentCollapsible),点开后能看到这一轮模型实际拿到了哪些工具——调试时非常直观。

💡官方提示:开启超过 3 个工具时,界面会弹出黄色提醒——工具太多会"迷惑"模型、拖慢首字响应。2-3 个工具是最佳实践。

接入 MCP 服务器:把外部世界装进离线 LLM 🔌

MCP(Model Context Protocol)是一个开放标准,让 AI 助手能统一连接外部工具和数据源。Off Grid AI 把它做进了Pro Tools:工具页最顶部有一行带皇冠图标的入口——"Email, calendar and MCP servers"(ToolsScreen 源码)。

接入流程大致是:

  • 添加服务器:在 Pro Tools 里填入 MCP 服务器地址(如 Linear、Notion、GitHub 对应的 MCP 服务);
  • OAuth 登录:需要授权的服务器会拉起系统内嵌浏览器完成登录,令牌安全存入设备钥匙串(Keychain/Keystore),回跳地址是应用私有的offgrid://oauth/callback(mcpOAuthNativeAdapters.ts);
  • 起草—批准:Pro 工具遵循"先起草、后批准"哲学——模型帮你起草回复或工单,你不点确认,什么都不会真正发出去。

MCP 编排层的完整行为测试可以在 mcpService.test.ts 中阅读,同目录下还有 OAuth、客户端、schema 裁剪等一系列测试。

为什么手机上跑工具循环依然流畅 ⚡

接了多个 MCP 服务器后,几十个工具说明书如果全部塞进提示词,模型要先"预填充"完才能开口回答,首字延迟会很难看。Off Grid AI 用三个工程手段解决:

  • 嵌入路由选工具:复用 RAG 那个约 25MB 的 MiniLM 嵌入模型,对"你的问题 + 每个工具的描述"做向量匹配,只把最相关的一批工具(Top-K,默认 12 个)交给主模型,嵌入结果还有磁盘缓存(toolEmbeddingRouter.ts);
  • 错误永远有类型:工具抛错不会让整轮崩溃,而是被归类为 timeout / network / validation / not-found / internal 五类之一,模型能分辨"重试可能有用"还是"调用本身错了"(toolResult.ts);
  • 结果永不"假成功":空结果会被显式标记为empty,失败时回传给模型的字符串永远非空且明确说明失败——这正是小模型最容易把"没连上服务器"当成"查无数据"的坑。

常见坑与实用建议

  • 别贪多:同时开启 5 个以上工具,小模型的选择准确率明显下降,首字变慢;
  • 分清联网工具:Web Search 与 URL Reader 需要网络,其余全部离线可用——断网时关掉这两个最省心;
  • MCP 授权失败:确认设备有可用的系统浏览器;令牌保存在钥匙串里,卸载重装应用会清除,需要重新登录;
  • 想排查"它为什么没用工具":点开回答下方的 "Tools sent in request",确认目标工具确实被路由进了这一轮。

延伸阅读:源码地图 🗺️

  • 内置工具定义与 OpenAI 格式转换:src/services/tools/registry.ts
  • 工具执行分发(搜索、计算、知识库):src/services/tools/handlers.ts
  • 自动工具循环与防失控预算:src/services/generationToolLoop.ts
  • MCP OAuth 原生适配器:src/services/mcpOAuthNativeAdapters.ts
  • MCP 测试套件:tests/pro/mcp/
  • Pro 授权与工具策略说明:docs/pro-licensing-plan.md
  • 项目总览与工具调用特性介绍:README.md

一句话总结:Off Grid AI 的工具调用 + MCP 接入,让"离线 AI"不再只是安静的聊天框,而是一个能查、能算、能读你的文档、还能连接外部工作流,并且每一步都经你确认的本地 AI 助理。

【免费下载链接】OGAMThe Swiss Army Knife of Offline AI. Chat, see, speak, and generate images on your phone or Mac — GGUF LLMs, vision, Whisper speech-to-text, Stable Diffusion, tool calling, and local-network servers. Runs on your CPU, GPU, or NPU. No account, no API key, zero data leaves your device.项目地址: https://gitcode.com/gh_mirrors/of/OGAM

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询