文档 · 指南

让 omp 用任意模型

omp(oh-my-pi,omp 命令)是 Pi 的一个分支,终端编程 Agent。它给不同的活分配不同的模型角色:会话用 default,子 Agent 用 task,小活用 smol,评审用 slow,还有 plan、commit 等。magpie 在 models.yml 里加一个名为 magpie 的供应商,再把你选的角色指向它,omp 的每个角色都能用 DeepSeek、GLM、Kimi、Qwen、Claude 或 ChatGPT 订阅等 magpie 里的任意模型。

接入 omp

  1. 在 magpie 里添加供应商在 供应商 页添加 API Key,或登录一个订阅。
  2. 在 Agent 页给 omp 选模型先选 default 角色的模型,需要的话再给其他角色各选一个,以及思考强度。命令行里 magpie oh-my-pi 也是同一个 Agent。
  3. 开一个新会话omp 的新会话就从 default 角色的模型开始。
终端
magpie omp deepseek/deepseek-v4-pro

config.yml 和 models.yml

omp 的设置在 ~/.omp/agent/config.yml;PI_CONFIG_DIR 会改掉 ~/.omp 这个名字,PI_CODING_AGENT_DIR 会移动 agent 文件夹。角色的模型写在 modelRoles 下,格式是“供应商/模型”,magpie 的模型就是 magpie/<供应商>/<模型>,末尾可以带 :级别。

终端
# ~/.omp/agent/config.yml
modelRoles:
  default: magpie/deepseek/deepseek-v4-pro
  slow: magpie/…:high
enabledModels:
  - …
  - magpie/**

旁边的 models.yml 里,magpie 的供应商在本机不要 Key(auth: none),models 里是 magpie 的模型,带上上下文窗口、单次回复上限、能不能读图片、各模型能用的思考强度和每百万 token 的价格。写上价格后,omp 才能算出每次调用花了多少;不写的话,magpie 的模型匹配不到 omp 自带的模型,花费都记成 0。models.yml 里你自己的供应商和 modelOverrides 等内容,magpie 不动。

终端
# ~/.omp/agent/models.yml
providers:
  magpie:
    baseUrl: http://127.0.0.1:3425/v1
    auth: none
    models:
      - id: deepseek/deepseek-v4-pro
        …

每个角色的模型

default 是会话开始用的模型。task 是子 Agent 的;scout 和 sonic 跑在 smol 上,reviewer 跑在 slow 上;不设时,task 用父会话的模型,smol 和 slow 用 default 的。plan 是计划模式的,vision 处理图片,advisor 给第二意见(不设时先用 slow),commit 写提交信息,tiny 给会话起名,memory 默认跟 tiny。除 default 外,每个角色都可以有自己的思考强度,比如会话用 medium、slow 用 high。思考强度有 minimal、low、medium、high、xhigh、max,omp 16.4.0 以前不认 max,magpie 就给 xhigh。在 magpie 的 设置 › 模型 › 图片里设的图片模型,omp 18.7.0 起也会出现在 omp 自己 Roles 视图的图片角色里。

enabledModels

enabledModels 列了模型时,新会话只能用列表里的:default 角色的模型不在列表里,omp 就从列表里另挑一个。所以你有这个列表时,magpie 会在里面加一条 magpie/**,让 magpie 的所有模型都能在 omp 的选择器和 Ctrl+P 里出现。列表本身是你的:magpie 保留原有条目、顺序和注释,没有列表时不新建,限定在某些文件夹的条目也不动。其他角色不受这个列表限制。

每个模型走自己的接口

和 Pi 一样,每个模型都走它供应商原生的接口,网关原样转发,不做翻译:OpenAI 的 Responses、Anthropic 的 Messages、Gemini 的 /v1beta。走 Chat 的话,Claude 在工具调用之间会丢掉思考的签名,Chat 里没有放它们的地方。magpie 还让 omp 在请求头里带上会话 id 和 omp 自己的名字,用量页按 omp 统计,“记录网关对话”也能记下 omp 的对话。

profiles 和 WSL

~/.omp/profiles/<名字>/agent 里的每个 profile 都是一个单独的 omp,在 Agent 页显示为 omp#<名字>,有自己的 config.yml 和 models.yml;OMP_PROFILE 选中的那个就是默认那一行。WSL 发行版里的 omp 用那边的 ~/.omp/agent;它在 NAT 后面要访问 Windows 的地址时,供应商改带网关在局域网共享用的 Key。

切回

magpie 接管一个角色前,会记下它原来的值;把角色设回去时就原样放回,原来是 YAML 列表的也按原来的写法写回。只要还有角色、回退链或子 Agent 用着 magpie 的模型,magpie 的供应商就留在 models.yml 里;都不用了才删掉,enabledModels 里 magpie 加的那条也一起删掉。

终端
magpie omp default

常见问题

omp 能用 DeepSeek、GLM 或 ChatGPT 订阅吗?

能。在 magpie 的 Agent 页给 omp 的 default 角色选一个 via magpie 的模型,然后开一个新会话。

能给 smol、slow、commit 这些角色分别选模型吗?

能。每个角色都可以单独选 magpie 的模型,除 default 外还能各有自己的思考强度。

为什么设了 default,omp 还是用了别的模型?

enabledModels 列了模型时,default 角色的模型要在列表里。magpie 会加一条 magpie/**,切回时再删掉。

切回后原来的设置会恢复吗?

会。每个角色原来的值都原样放回;没有地方用 magpie 后,它的供应商和加进 enabledModels 的那条也会删掉。

更多 Agent 用同样的模型:让 Pi 用任意模型、让 StepCode 用任意模型、让 MothX 用任意模型、让 Ante 用任意模型。遇到报错?见 常见错误排查,或到 Discord 提问。