77、【Agent】【OpenCode】bash 工具提示词(持久化)(一)

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

背景

上篇 blog
【Agent】【OpenCode】用户对话提示词(addtionalProperties 属性)

继续补充分析了 addtionalProperties 关键词,提到了 OpenCode 设置成 false,是为了确保 OpenCode 前端界面只接收它能理解的参数,防止 AI 传一些前端不支持的参数导致程序崩溃,强迫 AI 传给工具的数据是纯净完全符合预期的,此外,addtionalProperties 关键字也是 JSON Schema 标准中的内容,专门用于控制对象中未在 properties 里明确定义的属性是否合法,其值除了可以是布尔值,还可以是一个子 Schema,用来定义额外属性必须符合的格式,然后继续分析了作为单个问题的完整数据结构,接着继续分析了下一个工具 bash,OpenCode 定义的 bash 工具和在终端里直接输入 bash 命令本质上是一回事,但这里的 bash 工具在安全性和便利性上做了很多包装,可以理解为一个带着安全校验和导航功能的 Bash,并对比了 bash 工具和终端 Bash 的区别,下面继续分析

OpenCode

下面来继续分析 bash 工具

这里规定了 AI 在后台执行终端命令时,必须遵守的规则

  • 基础能力 :OpenCode 可以执行 Bash 命令,并且是在一个持久会话中运行,就像打开一个终端窗口一直没关,上一个命令设置了某个环境变量,下一个命令依然能生效,状态是连贯的
  • 工作目录 :所有命令默认在 ${directory}(也就是当前项目的根目录)下运行,如果需要在别的文件夹运行命令,就必须使用工具的 workdir 选项填好路径来指定,此外,这里的提示词明确强调,禁止使用 cd ... && command 这种写法
  • 职责边界 :专门用来执行终端操作,比如 git(代码管理),npm(安装依赖),docker(容器操作),禁止用 Bash 命令来读写,编辑,或查找文件内容,文件的增删查改有专门的文件工具去处理,这里的 Bash 工具只负责发号施令跑程序

对于普通终端来说,一旦关掉窗口,或者断开 SSH 连接,当前会话和里面的环境变量,运行状态就没了,而上面提到了 OpenCode 执行 Bash 命令是在一个持久会话中运行,能做到关掉终端不丢失状态,这会涉及到一些进程管理和会话保持的技术,下面来分析下做这种持久化会话的一些大体方向

  • 在后台维护一个常驻的 Shell 进程 :Agent 程序在启动时,可以通过代码(比如 subprocess 模块)创建一个真实的,长期存活的 Shell 进程(比如 /bin/bash),这个 Shell 进程会一直在后台默默运行,不退出

可以看到,OpenCode 并没有每次执行命令都临时开一个一次性的 Shell,而是统一维护一个或数个常驻的后台 Shell 进程,当远端 AI 模型需要执行命令时,OpenCode 就可以把命令源源不断地投喂给这个已经存在的 Shell 进程的标准输入 stdin,然后读取它的标准输出 stdout,而因为是同一个 Bash 进程在干活,所以比如 AI 上一次设置的环境变量,下一次命令在执行时依然能读取到

  • 守护进程与超时控制:为了防止这个常驻的 Shell 变成僵尸进程,或者无限期占用服务器资源,可以将其作为守护进程(Daemon)来管理,并加上超时(Timeout)机制

从安全角度,OpenCode 主程序会监控这个 Shell 进程,如果长时间没有接收到远端 AI 模型新的命令,主程序就可以把它安全关闭,而如果 OpenCode 意外退出了,也可以设置自动清零掉这些后台 Shell


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Agent】【OpenCode】bash 工具提示词(持久化)(二)

相关推荐
my烂笔头5 分钟前
单阶段 双阶段 目标检测的区别
人工智能·ai
程序员Aries12 分钟前
LangChain 与大语言模型
人工智能·语言模型·langchain
向量引擎15 分钟前
向量引擎API中转站深度测评:如何实现低成本、高并发的向量检索
人工智能·gpt·aigc·api·ai编程
morning_judger23 分钟前
Agent系列(一) - Agent系统分层架构
人工智能·架构
lqqjuly24 分钟前
模型剪枝与稀疏化:理论、算法与可运行实现
人工智能·算法·剪枝
赴山海bi27 分钟前
家居类亚马逊Listing优化:DeepBI驱动的增长秘诀
人工智能
weixin_4684668533 分钟前
纳米 AI 搜索新手极速上手指南
人工智能·python·深度学习·搜索引擎·ai·语言模型·自然语言处理
逻辑君41 分钟前
Foresight研究报告【20260011】
人工智能·线性代数·算法·矩阵
YueJoy.AI1 小时前
AI应用的API安全:从认证到授权的完整指南
人工智能·ai·语言模型
cAuth1 小时前
实现一个自己的 Agent cli
agent·claude