mcpField
O
ollama-sync

ollama-sync

github.com/mskaduAgent 工作流141 次安装21 周前更新
代码仓库

关于 ollama-sync

ollama-sync 是用于同步 Ollama 模型列表的 Agent 技能,会将本机 `ollama list` 的结果写入 `opencode.json`。它面向需要维护 Ollama 提供方配置的场景,并处理空列表和命令失败。

主要功能

  1. 01检查 `ollama` 命令是否可用
  2. 02通过 `ollama list` 获取模型
  3. 03提取模型名称
  4. 04更新 `opencode.json` 中的 Ollama 提供方
  5. 05处理空列表和命令错误

适用场景

  1. 01添加或移除本地模型后刷新配置
  2. 02没有可用模型时清空配置列表
  3. 03排查导致同步失败的环境问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mskadu/opencode-agent-skills --skill ollama-sync

安装后在 Claude Code 中输入/ollama-sync确认已加载。

附带文件README.md

详细介绍

Ollama 模型同步器

你的任务

当被要求同步本地 Ollama 配置时,你的首要目标是确保 opencode.json 文件中的模型列表准确反映主机系统上可用的模型。

此过程必须包括三个主要步骤:

  1. 获取实时列表: 通过 bash 工具执行 ollama list,以获取机器上当前所有可用的模型名称和标签。
  2. 解析并提取: 解析 ollama list 的输出,仅提取干净的模型名称列表(例如,llama2、mistral)。
  3. 更新配置: 使用 edit 工具,将 opencode.json 中现有的模型列表(具体来说是 ollama 提供商部分)替换为新获取的准确列表。

工作流详情

  1. 主要命令执行:
    • 使用 bash 工具运行 ollama list。
  2. 解析逻辑(内部):
    • 需要解析 ollama list 的输出,以分离出模型名称。假设输出格式足够可靠,可以通过 grep 查找模型名称。
  3. 文件操作:
    • 使用 read 工具读取 opencode.json,以了解当前结构。
    • 使用 edit 工具修改包含模型列表的特定部分。
分步逻辑
  1. 检查依赖项: 确认执行环境中是否提供 ollama 命令。
  2. 获取系统模型: 执行 ollama list 获取当前模型列表。
  3. 提取名称: 以编程方式解析输出,生成以逗号分隔的模型名称字符串。
  4. 写回: 使用 edit 工具,将 opencode.json 中旧的模型列表替换为新的逗号分隔列表。

示例和边缘情况

  • 空列表: 如果 ollama list 未返回任何模型,应清空 opencode.json 中的模型列表或将其设为空数组,并向用户发出警告。
  • 错误处理: 如果 ollama 命令失败或未找到,必须停止流程,并告知用户同步因环境问题而失败。

目标文件结构(概念示例)

目标文件为 opencode.json。相关部分如下所示(结构仅供参考):

"providers": {
    "ollama": {
        "models": ["model-a", "model-b", "model-c"], // <-- This list must be updated
        "base_url": "http://localhost:11434"
    },
    // ... other providers
}

始终优先使用 bash 工具进行操作系统交互(ollama list),并使用 edit 工具管理配置。

评论

支持 Markdown