自定义 Prompt
gcop-rs 允许你自定义发送给 LLM 的指令,用于生成提交信息和代码审查。
工作方式
gcop-rs 使用“拆分 prompt”的方式:
- System prompt:给模型的指令
- User message:实际要处理的内容(diff / 上下文)
custom_prompt 会覆盖 system prompt;diff/上下文始终会放在 user message 中。
重要:
custom_prompt只是纯文本指令,不支持{diff}之类的占位符替换。写在里面会原样发送。
Commit Prompt([commit].custom_prompt)
- 你的
custom_prompt会作为提交信息生成的 system prompt。 - User message 总是包含:
- 已暂存的 diff(等价于
git diff --cached) - 上下文(修改文件列表、插入/删除行数)
- 当前分支名(如果能获取到)
- “带反馈重试”累积的反馈(如果使用过)
- 已暂存的 diff(等价于
示例:
toml
[commit]
custom_prompt = """
请用中文生成简洁的 conventional commit 提交信息。
要求:
- 第一行:type(scope): 概要(<= 50 字符)
- 只输出提交信息,不要解释
"""Review Prompt([review].custom_prompt)
- 你的
custom_prompt会作为代码审查的 system prompt 基础。 - gcop-rs 会始终追加 JSON 输出约束(用于解析结果)。
- User message 总是包含 diff(或在
review file时包含文件内容)。
示例:
toml
[review]
custom_prompt = """
你是资深代码审查者。
重点关注:
1. 正确性(bug、边界情况)
2. 安全问题
3. 性能退化
4. 可维护性
"""调试
gcop-rs -v commit会在调用 provider 前打印 system prompt 和 user message。gcop-rs -v review ...仅开启 debug 日志,不会打印完整 prompt 内容。
备注
- review 需要模型返回合法 JSON。gcop-rs 会尝试去掉常见的 Markdown code fence(如 ```json),但仍必须是可解析的 JSON。
参考
- 配置参考 - 所有配置选项
- Provider 设置 - 配置 LLM providers
- 故障排除 - 常见问题