Footgun Prompting:覆盖系统提示
Footgun Prompting(系统提示覆盖)允许你为特定的itBuilder模式替换默认的系统提示。这提供了细粒度的控制,但会绕过内置的安全机制。请谨慎使用。

警告指示器: 当前模式启用系统提示覆盖时,itBuilder会在聊天输入区显示警告图标,提醒你默认行为已被修改。
footgun (名词)
- (编程俚语,幽默,带贬义) 任何可能导致程序员“自食其果”的特性。
系统提示覆盖被认为是footgun,因为在没有深入理解的情况下修改核心指令,可能导致意外或异常行为,尤其是在工具使用和响应一致性方面。
工作原理
-
覆盖文件: 在工作区根目录下创建名为
.roo/system-prompt-{mode-slug}
的文件(如.roo/system-prompt-code
用于Code模式)。 -
内容: 该文件内容将成为该模式的新系统提示。
-
激活: itBuilder会自动检测此文件。存在时,将替换大部分标准系统提示部分。
-
保留部分: 仅保留核心
roleDefinition
和你为该模式设置的customInstructions
。标准部分如工具描述、规则和能力将被绕过。 -
构建方式: 发送给模型的最终提示如下:
${roleDefinition}
${content_of_your_override_file}
${customInstructions}
如何访问该功能
在itBuilder UI中找到该选项和说明:
- 点击itBuilder顶部菜单栏的图标。
- 展开**“高级:覆盖系统提示”**部分。
- 点击说明中的文件路径链接,将在VS Code中打开或创建当前所选模式的正确覆盖文件。

使用上下文变量
创建自定义系统提示文件时,可以使用特殊变量(占位符),itBuilder会自动用当前环境的相关信息替换它们。这让你的提示更具动态性和上下文感知能力。
可用变量如下:
{{mode}}
:当前itBuilder模式的slug(短名)(如code
、chat-mode
)。{{language}}
:VS Code中配置的显示语言(如en
、es
)。{{shell}}
:VS Code中配置的默认终端shell(如/bin/bash
、powershell.exe
)。{{operatingSystem}}
:你的计算机运行的操作系统类型(如Linux
、Darwin
代表macOS、Windows_NT
)。{{workspace}}
:当前项目工作区的根路径。
示例用法:
你可以直接在提示文件内容中这样写:
你正在“{{mode}}”模式下协助用户。
他们的操作系统是{{operatingSystem}},默认shell为{{shell}}。
项目位于:{{workspace}}。
请用{{language}}回复。
itBuilder会在发送提示前替换这些占位符。
关键注意事项与警告
- 适用对象: 仅适合对itBuilder提示系统及修改核心指令影响有深入了解的用户。
- 对功能的影响: 自定义提示会覆盖标准指令,包括工具使用和响应一致性的说明。如果管理不当,可能导致意外行为或错误。
- 模式专属: 每个覆盖文件仅适用于其文件名指定的模式(
{mode-slug}
)。 - 无文件则无覆盖: 若
.roo/system-prompt-{mode-slug}
文件不存在,itBuilder会为该模式使用标准系统提示生成流程。 - 空文件被忽略: 若覆盖文件存在但为空(空白),将被忽略,使用默认系统提示。
- 目录自动创建: itBuilder会确保
.roo
目录存在后再读取或创建覆盖文件。
请谨慎使用此功能。不正确的实现会严重降低itBuilder在受影响模式下的性能和可靠性。