86、【Agent】【OpenCode】bash 工具提示词(完结)

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

背景

上篇 blog
【Agent】【OpenCode】bash 工具提示词(HEREDOC)

分析了最后剩下的 bash 工具提示词:分析所有改动,起草 PR 摘要,这里特意用三个感叹号强调,不能只看最新的那次提交,而是要看从主分支分叉出来以后得每次提交,并行执行,提升效率,然后分析了 HEREDOC(提示词特意要求用 HEREDOC 的格式来传递 PR 内容),这是个原封不动的多行文字包裹功能,从指定 EOF 开始,到指定的结束标记 EOF 出现之前,中间所有的内容都当成纯文本,原封不动保留下来,不进行内容解析,然后分析了内容打包的过程,接着提到了 PR 创建完成后,把生成的 PR URL 发给用户,方便用户直接点开查看检视,最后提示了 AI 可以用 gh api 命令去查看 PR 下的评论,下面继续分析

OpenCode

下面继续来看 bash 工具的参数说明

这里规定了 AI 在调用 bash 工具时,必须遵守的数据格式规范,是 AI 与 OpenCode 执行环境之间沟通的约定,下面来详细看下

首先是上面最外层的定义

javascript 复制代码
"type": "object",
"additionalProperties": false

这里要求 AI 生成的参数,必须是一个 JSON 对象,并且 addtionalProperties: false 之前分析了,是 JSON 标准官方关键字,要求 AI 除了 properties 里面定义的属性之外,不能额外传入未定义的属性进来,否则 OpenCode 客户端会直接报错,拒绝执行

接着这个 Shcema 定义了 4 个核心字段,其中两个是必填,两个是选填

下面来详细看下

  • command(核心指令) :这里是工具的灵魂,AI 必须在这里填入一条标准的 Linux Bash 命令,注意,这必须是字符串,而不能是数组,比如,不能写 ["git","status"],而应该写 git status,这里的命令直接决定终端里跑什么代码
  • description(人类可读的摘要)这是给人看的,而不是给机器看的 ,提示词里给出了非常具体的例子,比如 ls:Lists files in current directory,强制要求 AI 必须用动词开头的短句,字数控制在 5 ~ 10 个词,需要 AI 进行高度概括,保证 UI 界面显示的整洁性,注意,这个也是必填项,意味着 AI 不能只写命令,而不写解释
  • workdir(工作目录,环境上下文) :用来解决路径依赖问题,这里的默认路径是 opencode 命令运行的目录,这里也是之前提示词反复强调的,AI 可以通过 workdir 参数设定命令执行目录,而不能在 bash 工具里使用 cd 命令来随意改变工作目录 ,可选项,如果用户不需要在其他地方执行命令,就用默认路径执行
  • timeout(安全熔断机制) :可选的,因为大多数比如 Git 命令(statusaddcommit)等执行极快,而对于可能卡死的命令,比如网络请求,死循环脚本等,这个属性就很关键了,单位是毫秒,意味着 AI 需要判断任务的轻重缓急来设定超时时间,防止任务无限期挂起

从参数定义可以看到,OpenCode 这里将操作意图和操作动作分离了,传统模式下,AI 可能只输出命令(Action),而人类需要自己去猜为什么跑这个命令,而这里的参数中 description 承载了命令意图,command 则承载了具体的执行,这种设计让整个自动化流程变得可审计,可追踪,可解释,用户看到的也不仅仅是一串冰冷的代码,而是一个带有自然语言解释的操作日志


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

相关推荐
phltxy6 小时前
LangChain从模型输出到RAG数据管道实战
服务器·人工智能·深度学习·语言模型·langchain
10x106 小时前
企业 AI 真正的分水岭:不是人人都在用,而是工作方式被重新设计
人工智能
收放扳机6 小时前
PCB产线的“柔性”是怎么实现的——从自动化上下料设备兼容性看产线弹性
人工智能·科技·自动化·制造·pcb工艺
smartfish_liu7 小时前
风过无言(Silent Wind)
llm·agent
天上路人7 小时前
全功能AI语音处理模组的算法集成与接口设计分析
人工智能·ai语音·麦克风·回音消除
触底反弹7 小时前
🔥 保姆级教程|SSE + BFF + 跨域三件套,从零实现 ChatGPT 流式输出(附完整代码)
人工智能·node.js·vite
嘿丨嘿7 小时前
VLA 入门(六):VLA 如何进行强化学习后训练?
人工智能·python·深度学习·机器人
触底反弹8 小时前
🔥 从零搭建 RAG 知识库:爬虫→分词→向量化→检索,一步都不能错
javascript·人工智能·面试
zhou lily8 小时前
超自动化落地:RPA+AI如何打通业务流程的“最后一公里”?
人工智能·自动化·rpa
tyqtyq228 小时前
HarmonyOS AI 应用开发实战:简历项目经历改写系统
人工智能·学习·华为·生活·harmonyos