omp packages

pi-prompt-toggle0.2.0

Toggle stackable prompt instructions inside a single pi session

GitHub Actions Published 1 month ago Apache-2.0 ~302 downloads/mo

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.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

English | 简体中文

pi-prompt-toggle

在一个 pi 会话内,随时开关可叠加的提示词指令。

Agent 回复经常很啰嗦!如果提醒 Agent「在不丢失信息的前提下回复尽可能简洁,永远不要超过 5 句话」,问题会有所改善。

我们可以把通用规则写进全局 AGENTS.md,但「永远不要超过 5 句话」一旦加进去,遇到需要深入详细讨论的场景,限制太严反而会讲不清楚。

所以 prompt-toggle 把 prompt 做成了开关,类似快捷键:不需要反复跟 Agent 说这些,需要的时候打开,它就会自动传给 Agent。

可以同时开多个 prompt,从下一条消息开始生效。

────────────────────────────────────────────────────────────────────────
Prompt Toggles  1 of 2 active

→ ◉ concise        Be as brief as possible without losing informati…
  ○ no-change      Do not modify any file. Read files and run comma…

↑↓ move      space toggle      enter close
────────────────────────────────────────────────────────────────────────

安装

pi install npm:pi-prompt-toggle

不想装,只想试试:

pi -e npm:pi-prompt-toggle

使用

命令 作用
/prompt-toggle 打开勾选面板
/prompt-toggle concise 直接开关某一条
/prompt-toggle off 全部关闭

已开启的会显示在状态栏:prompt-toggle: concise · no-change。

配置

在下面任意一个文件里定义你自己的条目,两个都是可选的:

~/.pi/agent/extension-settings/pi-prompt-toggle.json   # 你的私人配置,不进任何仓库
<项目>/.pi/extension-settings/pi-prompt-toggle.json    # 跟着仓库走,可以和同事共享

格式是一层的 id -> 指令 映射,id 就是你在命令后面敲的东西:

{
  "简洁": "在不丢失信息的前提下回复尽可能简洁,不要讲我已经知道的东西。永远不要超过 5 句话。",
  "不改": "不要修改任何文件。可以随意读文件、执行命令,但把改动作为建议提出来,不要直接动手。"
}

上面就是内置两条的中文版。所有来源按 id 合并:换个 id 就是新增一条;同一个 id 出现在多处时只保留一份,优先级是项目 > 全局 > 内置。id 支持中文,所以 /prompt-toggle 简洁 是可以的。

原理

每个开启的条目,都会在每一轮把自己的指令追加到 system prompt 上,走的是 pi 的 before_agent_start 事件。

你自己的消息永远不会被改写。 这个插件只往 system prompt 追加内容,模型看到的用户消息,和你敲进去的一字不差。

设计说明

一条命令只处理一个 id。 /prompt-toggle a b 是有意不支持的。一次传多个,就必须规定那些没被提到的条目该怎么办——是保持原样,还是关掉?两种理解都说得通,与其武断选一个,不如让面板来做批量操作:你看到勾上的,就是开着的。

这不是模式切换器。 「模式」通常是互斥的,一次只能有一个。这里的条目是叠加的,这正是它存在的意义。

这不是用来取代 AGENTS.md 的。 任何应该始终生效的规则都该写在那里——零成本,而且不会忘记打开。这个插件只负责那些「价值取决于你此刻在做什么」的要求。

许可

Apache-2.0