Skip to main content

自定义 Prompt Templates

goose 内置了一组 prompt templates,用来定义它在不同场景中的行为。你可以编辑这些模板,自定义 goose 的回复风格、规划方式、压缩上下文时保存什么,以及其它细节。

工作原理​

goose 的默认 prompt template 定义在代码库里,并在构建时内嵌到应用中。你可以在本地配置目录里创建同名自定义模板来覆盖默认值,无论是手工创建还是通过 goose Desktop 编辑都可以。

当你自定义模板后:

  • 你的改动会跨 goose 升级持续保留
  • 代码库中默认模板的变更不会覆盖你的本地版本
  • 你可以随时重置回默认模板
  • 改动会在新会话中生效

你的修改可以很大,也可以只是小范围微调,例如:

  • 编辑 system.md,加入 “Reply in Dutch”,让 goose 用荷兰语回复
  • 编辑 plan.md,加入 “Include an estimated time for each step”,让每个步骤都带上时间预估

关于模板变量的修改方式,请先看 Template Variable Syntax。

Related Configuration

除了 prompt templates,其他设置也会影响 goose 的行为或为它提供上下文,例如 config files、.goosehints 以及 skills。

管理 Prompt Templates​

goose Desktop 用户可以在 Settings 页面管理模板。

要自定义模板:

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Settings
  3. 打开 Prompts 标签
  4. 在目标模板旁点击 Edit
  5. 在编辑器里修改内容。你也可以随时点击 Restore Default,从默认模板重新开始。
  6. 点击 Save 保存改动

自定义过的模板会显示 Customized 徽标。

要把某个模板恢复到默认值:

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Settings
  3. 打开 Prompts 标签
  4. 在目标模板旁点击 Edit
  5. 点击 Reset to Default,删除本地模板文件

你也可以点击页面顶部的 Reset All,一次删除所有本地模板文件。

可自定义的 Prompt Templates​

Template说明适用范围
system.md定义 goose 角色、能力和回复格式的总 system promptDesktop 和 CLI
apps_create.md用于生成新的独立 App(开发中)仅 Desktop
apps_iterate.md用于更新已有独立 App(开发中)仅 Desktop
compaction.md在上下文达到限制时总结会话历史Desktop 和 CLI
permission_judge.md用于分析工具操作是否可视为只读Desktop 和 CLI
plan.md生成详细、可执行计划并提出澄清问题仅 CLI
recipe.md从对话中生成 recipe 文件Desktop 和 CLI
subagent_system.md分配给 subagent 时使用的 system promptDesktop 和 CLI

可自定义模板由 prompt_template.rs 中的 TEMPLATE_REGISTRY 数组统一登记。

Template Variable Syntax​

模板使用 Jinja2 语法来插入动态内容:

  • {{ variable }}:插入变量值,例如 {{ extensions }}
  • {% if condition %}...{% endif %}:条件判断
  • {% for item in list %}...{% endfor %}:循环

你可以查看默认模板文件,了解常见变量,例如 {{ extensions }}、{{ hints }} 等。

转义模板变量​

如果你想在模板里原样写出变量语法,而不是让它被替换,可以这样写:

This will substitute: {{ variable }}
This will appear literally: {{'{{variable}}'}}
warning

修改模板变量时要小心。错误的变量写法可能会直接破坏功能。建议在新会话中测试改动是否正常。