关于 ollama-sync
ollama-sync 是用于同步 Ollama 模型列表的 Agent 技能,会将本机 `ollama list` 的结果写入 `opencode.json`。它面向需要维护 Ollama 提供方配置的场景,并处理空列表和命令失败。
主要功能
- 01检查 `ollama` 命令是否可用
- 02通过 `ollama list` 获取模型
- 03提取模型名称
- 04更新 `opencode.json` 中的 Ollama 提供方
- 05处理空列表和命令错误
适用场景
- 01添加或移除本地模型后刷新配置
- 02没有可用模型时清空配置列表
- 03排查导致同步失败的环境问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mskadu/ opencode-agent-skills --skill ollama-sync安装后在 Claude Code 中输入/ollama-sync确认已加载。
附带文件README.md
详细介绍
Ollama 模型同步器
你的任务
当被要求同步本地 Ollama 配置时,你的首要目标是确保 opencode.json 文件中的模型列表准确反映主机系统上可用的模型。
此过程必须包括三个主要步骤:
- 获取实时列表: 通过 bash 工具执行
ollama list,以获取机器上当前所有可用的模型名称和标签。 - 解析并提取: 解析
ollama list的输出,仅提取干净的模型名称列表(例如,llama2、mistral)。 - 更新配置: 使用
edit工具,将opencode.json中现有的模型列表(具体来说是ollama提供商部分)替换为新获取的准确列表。
工作流详情
- 主要命令执行:
- 使用
bash工具运行ollama list。
- 使用
- 解析逻辑(内部):
- 需要解析
ollama list的输出,以分离出模型名称。假设输出格式足够可靠,可以通过 grep 查找模型名称。
- 需要解析
- 文件操作:
- 使用
read工具读取opencode.json,以了解当前结构。 - 使用
edit工具修改包含模型列表的特定部分。
- 使用
分步逻辑
- 检查依赖项: 确认执行环境中是否提供
ollama命令。 - 获取系统模型: 执行
ollama list获取当前模型列表。 - 提取名称: 以编程方式解析输出,生成以逗号分隔的模型名称字符串。
- 写回: 使用
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