86、【Agent】【OpenCode】bash 工具提示词(完结) 【声明】本博客所有内容均为个人业余时间创作所述技术案例均来自公开开源项目如GithubApache基金会不涉及任何企业机密或未公开技术如有侵权请联系删除背景上篇 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 执行环境之间沟通的约定下面来详细看下首先是上面最外层的定义type:object,additionalProperties:false这里要求 AI 生成的参数必须是一个 JSON 对象并且addtionalProperties: false之前分析了是 JSON 标准官方关键字要求 AI 除了properties里面定义的属性之外不能额外传入未定义的属性进来否则 OpenCode 客户端会直接报错拒绝执行接着这个 Shcema 定义了 4 个核心字段其中两个是必填两个是选填下面来详细看下command核心指令这里是工具的灵魂AI 必须在这里填入一条标准的 Linux Bash 命令注意这必须是字符串而不能是数组比如不能写[gitstatus]而应该写git status这里的命令直接决定终端里跑什么代码description人类可读的摘要这是给人看的而不是给机器看的提示词里给出了非常具体的例子比如lsLists 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【Agent】【OpenCode】read 工具提示词