跳到主要内容

核心提示词

📋 概述

OpenCode 使用分层提示词系统,根据不同阶段和模型类型组合多个提示词片段,为 AI 代理提供精确的行为指导。

提示词架构:

最终系统提示词 = 基础提示词 + 环境提示词 + 指令提示词 + 工具描述
+ 状态提醒 + 模型特定提示词

🔑 提示词组成

1. 基础提示词

核心原则:

  • 简洁明了(CLI 环境)
  • 优先使用专用工具而非 Bash
  • 频繁使用 TodoWrite 进行任务管理
  • 专业客观,不迎合用户

关键指令:

  • 短暂简洁的回复
  • 优先编辑现有文件而非创建新文件
  • 专注于技术准确性和事实性
  • 使用 TodoWrite 工具跟踪任务进度

2. 环境提示词

提供的关键信息:

  • 模型 ID 和提供商
  • 工作目录路径
  • Git 仓库状态
  • 平台信息
  • 当前日期
  • 项目目录树结构

这些信息帮助 AI 理解当前上下文,做出更准确的决策。

3. 指令提示词

加载优先级:

  1. 项目级 .opencode/AGENTS.md
  2. 全局级 ~/.claude/CLAUDE.md
  3. 全局级 ~/.opencode/AGENTS.md
  4. 配置文件中的 URL

用途:

  • 自定义项目特定的编码规范
  • 添加团队约定和最佳实践
  • 覆盖默认行为

4. 模型特定提示词

Claude (Anthropic)

核心特点:

  • 极端简洁(少于 4 行,除非复杂任务)
  • 强调安全:仅协助防御性安全任务
  • 最小化输出 token
  • 避免不必要的序言和后记

使用场景:

  • 需要快速响应的任务
  • 对 token 成本敏感的场景
  • 需要严格安全约束的任务

GPT (OpenAI)

核心特点:

  • 严格遵守项目约定
  • 验证库/框架可用性
  • 模拟现有代码风格
  • 使用绝对路径
  • 执行测试和标准检查

使用场景:

  • 需要深度代码理解的任务
  • 复杂的项目集成
  • 需要严格遵守约定的场景

Gemini

核心特点:

  • 持续迭代直到问题解决
  • 必须进行广泛的互联网研究
  • 使用 WebFetch 搜索 Google
  • 10 步骤工作流
  • 验证所有检查项

使用场景:

  • 需要自主研究的任务
  • 新技术栈的探索
  • 需要外部信息验证的场景

5. 工具描述

动态加载可用工具:

  • bash - 执行 shell 命令
  • edit - 编辑文件
  • read - 读取文件
  • write - 写入/创建文件
  • glob - 文件模式匹配
  • grep - 内容搜索
  • webfetch - HTTP 请求
  • task - 委托子代理
  • question - 向用户提问
  • todoWrite - 任务管理
  • snapshot - 快照管理

6. 状态提醒

计划模式(Plan Mode)

关键约束:

  • 严格只读模式
  • 禁止任何文件编辑
  • 只能使用观察工具(read, glob, grep)
  • 允许向用户提问或征求意见

使用场景:

  • 需要先规划再执行的任务
  • 复杂任务的拆分
  • 用户想要预先审查计划

构建模式(Build Mode)

切换通知:

  • 退出只读模式
  • 允许文件编辑
  • 启用所有工具

最大步骤限制

严格要求:

  • 禁用所有工具调用
  • 必须提供文本摘要
  • 列出未完成的任务
  • 提供下一步建议

使用场景:

  • 控制 token 使用
  • 防止无限循环
  • 强制用户反馈

📊 提示词优先级

当提示词冲突时,优先级从高到低:

优先级提示词类型说明
1状态提醒<system-reminder> 标签
2用户指令AGENTS.md 或 URL
3模型特定Claude/GPT/Gemini 专用提示词
4基础提示词通用指令
5工具描述可用工具列表

冲突示例:

如果用户指令说"可以自由编辑任何文件",但状态提醒说"严格禁止任何文件编辑",状态提醒获胜(优先级 1)。


💡 最佳实践

提示词文件组织

~/.opencode/AGENTS.md          # 全局指令
~/.claude/CLAUDE.md # Claude 特定指令
~/.opencode/AGENTS.md # 项目级指令
project/.opencode/AGENTS.md # 项目覆盖全局

自定义项目指令

创建 .opencode/AGENTS.md

# 项目特定约定

- 使用 TypeScript 严格模式
- 所有组件必须有 PropTypes
- 遵循 Material Design 风格
- 运行 `npm run test` 验证更改

配置 URL 指令

在配置文件中添加:

{
"instructions": ["https://company.com/style-guide.md", "~/my-custom-rules.md"]
}

🎯 选择合适的提示词策略

根据任务类型选择

快速问答:

  • 使用 Claude 模型
  • 简洁提示词
  • 最小化输出

代码开发:

  • 使用 GPT 或 Claude
  • 完整的上下文
  • 包含项目约定

复杂研究:

  • 使用 Gemini 模型
  • 启用互联网研究
  • 多步骤工作流

根据团队需求选择

标准化团队:

  • 使用项目级 AGENTS.md
  • 统一编码规范
  • 共享最佳实践

灵活团队:

  • 使用全局级指令
  • 允许项目覆盖
  • 个性化配置

📝 总结

OpenCode 的提示词系统具有以下特点:

特性说明
分层组合基础 + 环境 + 指令 + 工具 + 模型特定
动态加载支持用户自定义指令和 URL
模型适配不同模型使用不同的提示词策略
状态管理通过 <system-reminder> 动态调整行为
优先级系统状态 > 用户 > 模型 > 基础
安全第一Claude 强调防御性安全、GPT 强调验证

📖 相关文章