跳到主要内容

自定义提示词模板

goose 带有内置提示词模板,用于引导它在不同情境下的行为。你可以编辑这些模板,自定义 goose 如何回应、如何制定计划、在压缩时决定保留什么,等等。

工作方式​

goose 的默认提示词模板定义在代码库中并嵌入应用。你可以在本地配置目录中创建自定义版本来覆盖任何默认模板(直接编辑,或通过 goose 桌面版)。

自定义模板时:

  • 你的自定义会在 goose 更新后保留
  • 代码库中默认模板的变更不会影响你已自定义的模板
  • 你可以随时重置为默认模板
  • 变更在新会话中生效

改动可以很大,也可以只是细微调整,例如:

  • 编辑 system.md,加入“用荷兰语回复”的指令,让 goose 用荷兰语回应
  • 编辑 compaction.md,加入“保留每一个文件路径和已运行的命令”的指令,以便摘要时保留更多细节

修改模板变量的重要信息见模板变量语法。

相关配置

其他 goose 设置和功能也会影响行为或提供上下文,例如配置文件、.goosehints和技能。

管理提示词模板​

goose 桌面版用户可以从 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,删除你的全部本地模板文件。

可用的提示词模板​

以下默认模板可以自定义。

模板说明适用于
system.md定义 goose 角色、能力和回复格式的通用系统提示词桌面版和 CLI
apps_create.md用于生成新的独立应用的提示词(开发中)仅桌面版
apps_iterate.md用于更新现有独立应用的提示词(开发中)仅桌面版
compaction.md在达到上下文限制时用于摘要对话历史的提示词桌面版和 CLI
permission_judge.md用于分析工具操作以检测只读行为的提示词桌面版和 CLI
subagent_system.md为处理特定任务而生成的子代理的系统提示词桌面版和 CLI
tiny_model_system.md面向使用 shell 命令模拟的小型本地模型的系统提示词CLI
session_name.md用于根据对话历史生成简短会话名称的提示词桌面版和 CLI

可自定义模板列举在 prompt_template.rs 的 TEMPLATE_REGISTRY 数组中。

模板变量语法​

模板使用 Jinja2 语法表示动态内容:

  • {{ variable }} - 插入一个值(例如 {{ extensions }} 列出已启用的扩展)
  • {% if condition %}...{% endif %} - 条件段落
  • {% for item in list %}...{% endfor %} - 遍历条目

查看默认模板(链接见上方表格)以找到常见变量,例如 {{ extensions }} 和 {{ hints }}。

转义模板变量​

如果需要在模板中包含字面变量语法而不进行替换,用单引号包起来:

This will substitute: {{ variable }}
This will appear literally: {{'{{variable}}'}}
注意

修改模板变量时要小心,不正确的更改可能破坏功能。在新会话中测试你的更改,确保它们按预期工作。

更多资源​