68、【Agent】【OpenCode】用户对话提示词(任务执行流程)
【声明】本博客所有内容均为个人业余时间创作所述技术案例均来自公开开源项目如GithubApache基金会不涉及任何企业机密或未公开技术如有侵权请联系删除背景上篇 blog【Agent】【OpenCode】用户对话提示词代码修改规范分析了 OpenCode 的代码修改规范其核心思想在于让 AI 不要自作主张像团队老成员一样写代码遵循现有的代码风格依赖和安全规则关键点在于先理解代码约定再动手修改新增代码前必须先观察项目已有的写法不能假设第三方库存在就直接用新建组件或模块时先模仿现有代码照着最相似的写修改代码前先看上下文严格遵守安全规范禁止把 API 密钥数据库密码登敏感信息写死在代码里等这些规则让 AI 意识到它写的代码不能是一座孤岛必须要融入现有项目的语言风格工具和安全文化需要详细分析现有项目的上下文不能凭直觉写那些看起来对但和项目格格不入的代码下面继续分析OpenCode下面继续来看给 OpenCode 设定的代码风格以及执行任务时的具体行为准则首先是代码风格严禁注释除非用户明确要求否则不能写任何代码注释很多开发者认为代码应该本身就是文档过多的注释反而显得冗余而 AI 生成的注释可能会污染代码库所以这里要求只写代码逻辑注释属于画蛇添足接下来是执行任务的流程用户会主要请求处理一些软件工程的任务比如修复 BUG写功能或重构代码在做这些事情时应该遵循接下来的步骤深度搜索与理解利用搜索工具比如grepglobfind等彻底理解代码库结构和用户的具体需求这些命令可以用并行搜索同时查多个地方也可以串行搜索总之要确保信息全面实施解决方案使用所有可用的工具来写代码验证测试不能假设测试框架比如不能默认测试是 Jtest 或 Pytest或 GTest应该先检查 README 或搜索代码库确认项目实际所用的测试工具然后再用正确的方式来验证代码代码检查LintTypecheck任务完成后必须运行项目的代码检查命令举了例子比如npm run lintnpm run typecheck等如果找不到命令就问用户该运行什么命令如果用户提供了命令就将其写进 AGENTS.md 文件中建立长期记忆这样下次再执行任务的话就知道该运行啥了提交规范必须不能擅自 commit即使修复好了 BUG也不能自动执行git commit命令必须等用户明确说【提交代码】或【commit it】这样明确的提示词之后才能提交防止用户觉得 AI too proactive太自作主张给用户留出审查代码的机会避免烂代码直接入库最后总结下 AI 的行为画像只写代码不写注释动手前先搜索写完后跑测试和 Lint确保不破坏现有规范只做用户让做的事情不能擅自帮用户 commit 提交下面来看下一个比较关键的功能system-reminder这里的提示词在提醒 AIsystem-reminder这个标签不是用户输入的内容或者工具结果只是系统提供的额外指引通常包含有用信息而这个额外指引会跟随消息一起传递需要注意首先是system-reminder的定义这是个只有 AI 模型才能看到的标签这个标签是系统OpenCode 客户端特意标记出来的里面会包含着一些提示上下文信息或者系统状态的更新这个标签里既不是用户发送的消息也不是调用工具比如读取文件或运行命令后返回的真实结果举个例子假设用户问【现在的项目状态怎么样】OpenCode 客户端可能会在输入流里插入这样一段内容system-reminder用户刚才问了关于项目状态的问题记得检查一下 git status。/system-reminder此时 AI 要理解这是 OpenCode 客户端在提醒检查 git 状态然后应该回复执行git status的命令而不应该回复用户说看到了一个什么system-reminder标签里面有 xxx 的内容把标签里的东西当成用户说的话去回应OK本篇先到这里如有疑问欢迎评论区留言讨论祝各位功力大涨技术更上一层楼更多内容见下篇 blog【Agent】【OpenCode】用户对话提示词system-reminder