pi-model-system-prompt0.2.1
Per-model system prompt for pi: appends the prompt file whose name is the longest case-insensitive prefix of the active model id
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
pi-model-system-prompt
让不同大模型能够使用不同的系统提示词。 切换大模型时,按当前激活的 model id,把该模型专属的 system prompt 追加到上下文。
为什么需要这个插件
不同的大模型,除了能力不同,其实还需要不同的harness方式。
Harness的水平,极大程度的影响大模型的发挥,这已经是业界公认的事实。
表现在agent中, 如claude code, codex, pi agent,那就是启动时针对特定模型加载的系统提示词。
在我们使用Pi agent的过程中,可能使用多个不同来源的大模型进行混用,这种用法也是Pi Agent这种高自由度coding agent的魅力。
那么在Pi agent中切换不同模型时,最好能让不同模型能使用各自独立的系统提示词,可是pi agent本身并没有这种能力。
本插件提供此能力。
安装
pi install npm:pi-model-system-prompt
装完重启 Pi。
快速开始
安装完毕后自动生效。插件会选取 ~/.pi/agent/model-system-prompt/ 下文件名是当前 model id 最长前缀的那个 md 文件,把它的内容追加进 pi agent 的系统提示词。例如 model 为 glm-5.3-flash 时依次看 glm-5.3-flash.md、glm-5.3.md、glm.md,取存在且最长的那一个。不区分大小写;没有任何文件匹配的模型完全不受影响。
需要自己写特定模型的系统提示词时,只需要在 ~/.pi/agent/model-system-prompt/ 目录下添加与该 model 同名的 md 文件——或者用它所归属的同族名,此后以该名字开头的所有 model id 都会用它——并在文件中编写即可。打开 pi 时会自动加载。
插件提供优质的预置提示词。注意,由于开源模型存在不同精度和微调,所以预置提示词的调校均基于各自的官方模型,不对非官方模型效果做保证。鼓励用户根据自己使用的模型自己调控系统提示词。
预置系统提示词的模型列表
- MiniMax-M3
- MiniMax-M3.1-Flash-Preview
- claude-sonnet-5、claude-haiku-5(Claude Code 的完整版系统提示词)
- claude-opus-5、claude-fable-5(Claude Code 的较短版系统提示词)
- deepseek-flash
- glm-5.3-flash
- glm-5.3
- gpt-5.6(gpt-5.6-luna、gpt-5.6-sol、gpt-5.6-terra——codex 给这三个档同一份提示词,因此一个族文件)
- gpt-6-luna、gpt-6-sol、gpt-6-astra、gpt-6.1-sol(codex 每一档各写一份,因此一档一个文件)
- kimi(kimi-k3 及同族其它 id)
匹配与覆盖规则
谁生效,由文件名决定
- 最长前缀胜出**。多个文件都能匹配同一个 model id 时,名字最长的那一个生效。比如 id 是
glm-5.3-flash,而glm-5.3-flash.md、glm-5.3.md、glm.md都在,那只有glm-5.3-flash.md生效。 - 与 id 完全同名的文件必定胜出。
- 不区分大小写。
- 没有通配符,只有字面前缀**。
glm.md也会命中glmish-2这种跟 glm 无关的 id。所以别起太短的名字:g.md会吃掉所有以 g 开头的 id。前缀从 id 的开头算起,所以叫claude-opus-5.md的文件命中不了带 provider 前缀的 id,比如anthropic.claude-opus-5。
让某个模型不生效
- 推荐:把生效的那个文件清空。文件在、内容为空 = 这个模型拿不到任何专属提示词,而且不会再回退去吃更短的同族文件。
- 删除文件不等于关闭。只有在没有更短的同名文件仍能匹配它时才算关掉:删掉
glm-5.3.md,glm-5.3仍然会吃glm.md。 - 想关掉一整个大类:清空大类文件只能关掉没有更具体文件的 id——清空
glm.md后glm-4不再有提示词,但只要glm-5.3.md还在,glm-5.3-flash照样走glm-5.3.md。真要整类关掉,清空所有相关的glm*.md。
预置提示词来源
均来自于各官方模型自己的专用coding agent工具
minimax来自于minimax code
glm来自于zcode
deepseek来自于deepseek harness
kimi来自于kimi code(整个模型族共用一份 harness,因此是一个族文件)
claude来自于claude code(2.1.285,stable 通道;它自带完整版与较短版两套系统提示词,按模型选用,两套都照搬,每族一个文件)
gpt来自于codex(openai/codex,tag rust-v0.161.0;某个 model id 用哪份文本,看 codex-rs/models-manager/models.json 里该 slug 的 instructions_template 字段,发布的 @openai/codex@0.161.0 二进制里是同一批字节。codex 给 gpt-5.6 全族一份提示词、给 gpt-6 每一档各写一份,所以 5.6 是单个族文件,gpt-6 各档各自一个文件;更晚的世代自带新文本,需要新文件)
欢迎提交新的模型预置提示词
为了核实通用性,但是必须标注清楚来源,必须是官模调校
首次运行会发生什么
| 你已经有… | 会发生什么 |
|---|---|
| 什么都没有 | 预置模型系统提示词被复制进 ~/.pi/agent/model-system-prompt/。 |
自己写的 ~/.pi/agent/model-system-prompt/<modelId>.md |
一律不动。 |
☕ 支持这个项目
如果你觉得这个项目有用,可以请作者喝杯咖啡