如何用pi-purge做提示词A/B测试:系统提示词单变量隔离实验的完整方法论
发布时间:2026/11/4 6:27:22 锦皓数字建站

【免费下载链接】pi-purgepi extension: /purge swaps pis built-in assistant persona for your own prompt file项目地址https://gitcode.com/gh_mirrors/pi/pi-purge点击查看免费下载为什么你的提示词对比实验总是说不清原因改一句系统提示词模型的输出变了——但你无法确定变化来自你自己的指令还是来自 pi 宿主提示词harness prompt的措辞、工具列表、项目上下文。这就是提示词 A/B 测试最大的陷阱变量没有隔离。pi-purge正是为解决这个问题而生的 pi 扩展一条/purge命令就能让同一个会话在三种系统提示词条件下运行——pi 原版、精简版、或只发你的一份人设提示词。关闭时它不读盘、不改写任何内容行为与没安装完全一致天然就是一个干净的对照组开关。安装 pi-purge一条命令进入实验环境在 pi 会话外执行安装命令即可pi install npm:pi-purge包内自带一段简短示例人设装完就能跑无需准备任何文件。想用自己的提示词只需要一个本地 Markdown 文件例如~/prompts/persona.md。安装包元数据名称、版本、依赖约束、关键词见 package.json完整中文说明见 README.zh-CN.md。三种实验条件append / replace / strict 各扮演什么角色pi-purge 的核心设计是把宿主提示词保留多少做成三档实验条件对应 A/B/C 三个组模式实际发给模型的系统提示词实验角色append你的人设 pi 原版提示词一字不改对照组基线行为上叠加你的指令信号最弱但最接近真实场景replace你的人设 删掉助手身份句和内置文档段的 pi 提示词工具列表、Guidelines、项目上下文保留半隔离组测量宿主框架措辞的影响同时不丢工具上下文strict你的人设 仅Current working directory: …单变量组把指令当成唯一变量彻底隔离出来默认模式三种模式的实现逻辑在 extensions/pi-purge.ts 的before_agent_start钩子中模式对照表可对照 README.zh-CN.md。两个关键工程细节直接决定实验可靠性工具不依赖系统提示词。工具 schema 走 API 的tools参数所以即使在strict下工具也全部可用——排除工具丢了导致行为变化这个干扰项。replace依赖固定文案定位切除段落。pi 升级改措辞时它会原样保留提示词退化成append而不是切错位置此时/purge status会显示身份段 未匹配。strict不做任何匹配跨 pi 版本行为一致详见 stripHostPersona 实现。跑通一组 A/B 测试最小完整步骤 以同一句请求在三种条件下各跑一遍为例第 1 步准备人设文件或用内置示例快速验证流程/purge source C:/prompts/persona.md切换失败如文件不存在会自动回滚并报错不会静默降级逻辑见 source 子命令。第 2 步设定条件并开启/purge mode strict /purge on第 3 步发送同一请求观察输出。第 4 步换条件。新开会话new或退出重启把模式改成replace、append各跑一遍。这里有个容易忽略的福利每次session_start启动 / 新建 / resume / 重载都强制从关闭状态开始状态只活在内存里、退出即失、不写任何文件。也就是说 pi-purge 帮你保证了每次实验的起点是干净的不可能上一轮忘了关污染下一组。这条会话级隔离由 session_start 钩子 保证并有专门的测试断言 test/pi-purge.test.mjs。第 5 步记录环境变量。每组实验结束前执行/purge status它会输出当前模式、提示词来源、已加载字符数以及上一轮实际切除/保留了什么身份段 已切除 / pi 文档段 已切除。官方文档也明确建议留结果时把status输出一起记录README.zh-CN.md。这份输出就是你实验记录里的环境指纹。控制变量五条实操准则让结论站得住输入完全一致同一请求文本、同一模型、同一工作目录。注意strict会一并丢弃AGENTS.md/ 项目上下文、skills 列表和其他扩展注入的提示词——这正是它能做单变量隔离的原因但也意味着strict下的结果不能直接和普通会话对比。每组独立会话利用会话级默认关闭设计组间物理隔离避免状态残留。每组多采样LLM 输出本身有随机性同一条件至少跑 3~5 次观察的是分布差异而非单次差异。盯住status的字符数每轮注入的提示词长度会被记录如每轮注入 N 字符。若两次对比中你的指令长度差异很大长度本身就成了未受控变量。改人设文件后用/purge reload重读不要指望它自动热更新外部文件。⚠️ 一个反直觉的提醒append侵入最小、信号也最弱宿主提示词后段权重仍然很大replace仍残留宿主文本且其他扩展可能在之后追加内容——实践中只有strict能让人设不与别的框架措辞竞争。做人设到底起没起作用这类归因实验优先选strict。进阶用 PI_PURGE_SOURCE 做批量条件化测试如果想每个 pi 进程自动指向指定人设文件例如开三个终端分别跑三组条件可以设置环境变量PI_PURGE_SOURCE/home/me/persona.md pi它只提供source的初始值仍然需要手动/purge on会话内/purge source 路径优先级更高文件不存在时开启会直接报错而非静默回退到内置示例——批量脚本里这一点能防止悄悄用了错误的提示词。机制见 ENV_SOURCE 定义 与 环境变量测试套件。实验记录模板一张表说清整组实验组别模式source注入字符数请求文本相同第 k 次输出摘要结论对照append内置见 status……基线 指令半隔离replacepersona.md见 status……宿主框架影响单变量strictpersona.md见 status……纯指令效应表中的注入字符数与身份段/文档段切除状态直接抄自/purge status输出保证每条记录可追溯。常见问题 FAQ关闭 pi-purge 会影响 pi 吗不会。关闭时不读盘、不改写提示词pi 行为与未安装该扩展完全一致退出 pi 一定回到原始提示词。为什么内置人设这么短发布到包仓库的内容会被扫描滥用性提示词完整人设文本过不了扫描。所以内置文本只是占位示例真正做实验时把自己的提示词放在本地、用/purge source引用。0.1.x 升级到 0.2 要注意什么0.2 不再读写pi-purge.json也不自动探测提示词文件——旧的状态文件可直接删除它已不被读取。如何验证扩展行为符合预期运行测试套件即可两个套件均跑在临时 agent 目录并断言全程不写任何文件npm test小结pi-purge 把提示词 A/B 测试里最难的条件切换与变量隔离收敛成了一条/purge命令三种模式对应对照、半隔离、单变量三组实验条件会话级无盘设计保证了组间干净/purge status提供了可留档的环境指纹。配合本文的五条控制变量准则和记录模板你不需要任何额外框架就能在本地 pi 里跑出一套结论可信的系统提示词对比实验。完整命令与模式说明README.zh-CN.md核心实现钩子、命令、切除逻辑extensions/pi-purge.ts行为测试含会话归零、回滚、无盘断言test/pi-purge.test.mjs赞分享【免费下载链接】pi-purgepi extension: /purge swaps pis built-in assistant persona for your own prompt file项目地址https://gitcode.com/gh_mirrors/pi/pi-purge点击查看免费下载相关推荐终极提示词优化实验指南用A/B测试提升AI效率300%的完整方案终极提示词优化实验指南用A/B测试提升AI效率300%的完整方案 在AI驱动的内容创作时代提示词Prompt质量直接决定AI输出效果。无论是知识图谱构建人工智能AI 应用提示工程MCP 服务前端后端AI提示词测试方法论基于v0-system-prompts-models-and-tools的完整验证指南AI提示词测试方法论基于v0 system prompts models and tools的完整验证指南 在人工智能快速发展的今天 AI提示词测试 已成为提示工程Python量化回测终极指南backtesting.py框架的完整实战解析Python量化回测终极指南backtesting.py框架的完整实战解析 想要在Python中进行高效、准确的交易策略回测吗backtesting.py提金融科技数据分析上一篇RubyMotion调试技巧解决iOS与Android应用问题的快速方法下一篇Taskcafe多团队项目管理终极指南大型组织高效协作的10个最佳实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。