Ollama
将本地 AI 模型作为工具添加到容器智能体中。将摘要、翻译和查询任务分流给 Ollama。
功能特性
- 在容器内将本地 Ollama 模型暴露为 MCP 工具
- Claude 保持编排者角色,将特定任务委派给本地模型
- 添加两个工具:ollama_list_models 和 ollama_generate
- 无需 API 密钥,直接使用本地 Ollama 实例
- 可选的 macOS 通知监控,追踪 Ollama 使用情况
前置条件
- 已安装并运行 NanoClaw
- 已在宿主机上安装并运行 Ollama
- 至少已拉取一个 Ollama 模型
安装
/add-ollama-tool 工作原理
/add-ollama-tool 技能添加一个基于 stdio 的 MCP 服务器,将容器智能体连接到你本地的 Ollama 实例。Claude 仍然担任编排者——它决定何时使用本地模型以及发送什么内容。这对于将摘要、翻译或通用知识查询等较简单或更快的任务分流给本地模型非常有用,同时保留 Claude 来处理复杂推理。
该技能为智能体添加两个工具:
- ollama_list_models — 列出你的 Ollama 实例中所有已安装的模型。
- ollama_generate — 向指定模型发送提示并返回响应。
当用户发送类似”用 Ollama 总结这篇文章”的消息时,Claude 会调用 ollama_list_models 查看可用的模型,选择合适的一个,然后调用 ollama_generate 发送提示。本地模型的响应会被整合到 Claude 的回复中。
设置
技能会检查 Ollama 是否已安装并运行,然后通过技能引擎应用代码变更。它添加 MCP 服务器源文件,在容器配置中注册,并将更新后的源码复制到所有现有的群组会话目录中。
如果你还没有任何 Ollama 模型,技能建议从以下模型开始:
ollama pull gemma3:1b— 小巧快速(1 GB)ollama pull llama3.2— 通用性好(2 GB)ollama pull qwen3-coder:30b— 擅长代码任务(18 GB)
网络路由
容器内的 MCP 服务器连接到宿主机上的 Ollama。使用 Docker 时,通过 host.docker.internal:11434 访问宿主机。使用 Apple Container 时,通过 localhost:11434 访问。如果你的 Ollama 运行在不同的机器或端口上,请在 .env 文件中设置 OLLAMA_HOST。
监控
技能包含一个可选的监控脚本(scripts/ollama-watch.sh),在 Ollama 被使用时发送 macOS 通知。在终端中运行它,即可在智能体使用本地模型生成时实时看到通知。
你也可以通过日志进行监控:
tail -f logs/nanoclaw.log | grep -i ollama
查看 [OLLAMA] >>> Generating 和 [OLLAMA] <<< Done 条目。
故障排查
智能体提示”Ollama is not installed.” 智能体试图在容器内运行 ollama CLI 而非使用 MCP 工具。这意味着 MCP 服务器未正确注册。重新运行技能,或检查 container/agent-runner/src/index.ts 的 mcpServers 配置中是否有 ollama 条目。
“Failed to connect to Ollama.” 确认 Ollama 在宿主机上正在运行(ollama list)。如果使用 Docker,确认容器可以访问宿主机网络。如果使用自定义地址,请检查 .env 中的 OLLAMA_HOST 值。
智能体不使用 Ollama 工具。 智能体可能不知道这些工具的存在。在消息中明确指示:“使用 ollama_generate 工具配合 gemma3:1b 来回答这个问题。“智能体使用过一次工具后,通常会在之后的消息中记住它们。
使用建议
- Claude 会根据任务判断何时使用 Ollama。你可以在消息中提及 Ollama 来引导它,也可以让 Claude 自行判断何时使用本地模型就够了。
- 较小的模型响应更快但输出质量较低。对于翻译或事实查询等简单任务,1-2 GB 的模型就足够了。对于需要推理的任务,让 Claude 直接处理。
- Ollama MCP 服务器作为 stdio 进程在容器内运行——它随每个智能体会话启动,会话结束时停止。没有持久的后台进程。