资讯动态

76、【Agent】【OpenCode】用户对话提示词(addtionalProperties 属性)

发布时间:2026/10/25 21:39:09 来源:尧图企业网站定制
【声明】本博客所有内容均为个人业余时间创作所述技术案例均来自公开开源项目如GithubApache基金会不涉及任何企业机密或未公开技术如有侵权请联系删除背景上篇 blog【Agent】【OpenCode】用户对话提示词question 工具继续分析了question工具的parameters参数其中properties字段下面有个required参数这个参数是个array类型里面只有一个字段questions属性这里强调属性中的questions字段是必须提供的然后开始分析核心属性questions这里是 AI 真正需要填写的部分另外该属性是个array数组类型意味着 AI 可以一次性向用户提出多个问题接着开始分析具体的问题项items信息其中required规定了每个问题必须包含三个必填字段question完整问题header短标签options选项列表接着重点分析了additionalProperties关键词该字段决定了数据对象中除了 OpenCode 明确列出的字段之外是否还允许出现 OpenCode 未定义的额外字段下面继续分析OpenCode上篇 blog 分析了addtionalProperties关键词下面再补充分析下可以看到在 OpenCode 的工具定义中都设置了addtionalProperties: false这是为了防止 AI 幻觉或乱填参数确保 OpenCode 前端界面只接收它能理解的参数比如这里的label和description防止 AI 传一些前端不支持的参数比如onClickcustomClass等其他乱七八糟的参数导致程序崩溃强迫 AI 传给工具的数据是纯净且完全符合预期的当然这个addtionalProperties关键字是 JSON Schema 标准中的内容专门用于控制对象中未在properties里明确定义的属性是否合法官方链接 JSON Schema Docs: additionalProperties此外additionalProperties的值除了布尔值true/false还可以是一个子 Schema用来定义额外属性必须符合的格式OK下面看question工具中几个比较关键的属性这里定义了作为单个问题的完整数据结构下面详细看下question完整问题这是展示给用户的主要文本一般是完整的问句会详细描述 AI 想要问的内容比如【您希望使用哪种数据库】header短标题一个非常简短的标签提示用在界面紧凑的地方比如侧边栏步骤条等显示让用户能快速了解这个问题是什么比如【数据库选择】最多 30 个字符options选项列表用户可以选择的答案列表数组类型里面可以包含多个对象每个对象代表一个选项label选项上显示的简短文字description对该选项的详细结束multiple是否多选可选项控制用户能不能选多个答案布尔值默认单选OK接下来看下一个工具bashbash工具的描述路径在opencode/packages/opencode/src/tool/bash.txtOpenCode 这里定义的bash工具和在终端里直接输入 bash 命令本质上是一回事但这里的bash工具在安全性和便利性上做了很多包装可以理解为一个带着安全校验和导航功能的 Bash下面来简单分析下bash工具和终端 Bash 的区别维度终端 Bash 命令bash工具执行方式用户输入什么终端就执行什么先检查后执行比如bash工具会先检查目录是否存在路径是否有空格等工作目录需要手动cd切换工作目录自动定位默认在${directory}运行或者可以指定目录不需要手动输入cd命令安全性如意误操作比如误删文件有防护被明确禁止用于文件读写其他专用工具的活儿只负责运行命令比如gitnpm路径处理容易忘记给带空格的路径加引号强制规范提示词强制要求给带空格的路径加双引号防止报错持久性每次新开窗口都是新的环境持久会话在一个persistent shell session中运行意味着上一次命令设置的环境变量在下一次打开该会话时还能用OK本篇先到这里如有疑问欢迎评论区留言讨论祝各位功力大涨技术更上一层楼更多内容见下篇 blog【Agent】【OpenCode】bash 工具提示词持久化一

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑