70、【Agent】【OpenCode】用户对话提示词(提示语生成机制)
2026/5/6 13:51:44 网站建设 项目流程

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Agent】【OpenCode】用户对话提示词(任务执行流程)
分析了<system-reminder>是 OpenCode 客户端在把消息发送给 AI 前,自动夹带进去的私有指令或上下文信息,当一条消息从客户端发送到 AI 时,实际上是一个三明治结构:用户输入,工具结果,系统提醒,通过这种方式,Agent 系统可以在不干扰用户,不污染代码的前提下,给 AI 提供额外的指引,然后举了例子,从举例中可以看到,<system-reminder>标签内容来源于 OpenCode 客户端等 Agent 系统后台,是系统级的元数据或潜台词,AI 需要阅读并遵守其中的提示,但不能将其当成用户的原始指令,也不能再回复中直接引用这个标签的内容,然后提到虽然 Agent 系统没有思考能力,但并不代表不能生成提示词,<system-reminder>靠的不是推理思考能力,而是规则和感知,可以把客户端想象成一个严格的秘书,而不是一个聪明的顾问,然后提到 Agent 客户端生成<system-reminder>的三种主要机制,并分析了第一个机制:基于硬编码规则,下面继续分析

OpenCode

上篇 blog 分析了 Agent 客户端生成<system-reminder>的第一种机制,下面继续分析剩下的两种机制

第二种机制,基于 OpenCode 客户端状态感知:客户端虽然不懂代码逻辑,但它完全掌握用户的操作环境(IDE 的状态),比如

  • 感知:客户端知道用户当前光标停留在第 30 行
  • 生成:此时客户端自动生成一条提醒
<system-reminder>用户当前选中的代码范围是第 25-35 行,请重点关注。</system-reminder>
  • 感知:客户端知道用户刚才执行了npm install并且报错了
  • 生成:客户端会在用户问【刚才为什么报错?】时,会自动附上
<system-reminder>刚才终端的最后一次输出是 Error: EACCES。</system-reminder>

相当于是把 IDE 的元数据翻译成了自然语言提示

  • 第三种机制,基于本地小模型:这是种比较高级的做法,此类 Agent 客户端往往会先在本地运行一个极小,免费的模型(比如 7B 参数以下的模型,或者专门微调的分类模型)

举个例子,当用户输入【帮我写个登录功能】时,客户端会先把这句输入发给本地小模型,本地小模型经过分析后,得出结论:这涉及到安全验证,应该提醒 AI 使用 bcrypt 加密而不是明文存储,客户端拿到这个分析结果后,将其封装为

<system-reminder>用户正在请求身份验证功能,请务必提醒 AI 注意密码加密安全。</system-reminder>

然后,客户端把用户的原话 + 这条提醒再一起发给云端大模型,本质上是个套娃过程,用一个本地免费的 AI 来辅助云端付费 AI,因为本地模型不消耗 token 费用(或者很便宜),且响应极快,可以专门用来做这种预处理工作

综上可知,Agent 客户端不需要具备通用的推理能力,只需要看文件名(规则匹配),看光标位置(状态感知),看简单的上下文(关键词提取),或者可以本地小模型跑下分类(预处理),就可以生成输出<system-reminder>提示语

OK,下面继续看下一段提示词,工具使用规则

这里主要是在教 AI 如何更高效地使用工具,核心思想就两个字:并行,简单来说,系统不希望看到 AI 挤牙膏式的一个接一个调用工具,而是希望 AI 能一次性把所有能做的事情都发出来

  • 首先是搜索要用的专用工具:当你需要搜索文件(比如查找某个函数定义,或找特定文件)时,优先使用 Task 工具(一般指的是专门的搜索任务工具,比如grepfind命令的封装),这些专用工具通常只返回结果,不会占用宝贵的上下文窗口

OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询