当前位置: 首页 > news >正文

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

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

背景

上篇 blog
【Agent】【OpenCode】bash 工具提示词(持久化)(一)
继续分析了bash工具的提示词,提示词规定了 AI 在后台执行终端命令时,必须遵守的规则:持久会话,所有命令默认在当前项目的根目录下运行,如果需要在别的文件夹运行命令,就必须使用工具的workdir选项填好路径来指定,并且禁止使用cd ... && command这种写法,并且该bash工具专门用来执行终端操作,禁止使用该工具来读写,编辑,或查找文件内容,文件的增删查改需要用专门的文件工具去处理,然后详细分析了该bash工具实现持久会话涉及到一些进程管理和会话保持的技术,比如在后台维护一个常驻的 Shell 进程,当远端 AI 模型需要执行命令时,OpenCode 把命令源源不断地投喂给这个已经存在的 Shell 进程的标准输入 stdin,然后读取它的标准输出 stdout,并通过守护进程 Daemon 与超时控制来让这个常驻 Shell 安全退出,下面继续分析

OpenCode

上篇 blog 最后分析到了常驻 Shell 的安全退出与超时清理,这里存在一个概念上的区分,安全退出和超时清理只是防止后台进程无限堆积的兜底机制,而真正的持久化其实分成了两个层级

  • 短时的会话持久化:这里就是之前说的常驻后台进程,这种方式在用户连续和 AI 交互的这段时间里,让 Shell 进程一直活着,保证 OpenCode 连续执行cdexport或者运行一个需要多次交互的脚本时,状态是连贯的,但一旦超时,或者服务器重启,该常驻进行就没了
  • 真正的数据持久化:这是用户关心的,即使终端进程退出也没关系的持久化,现在的 AI Agent 框架为了实现这一点,通常会在底层做状态快照

当 Agent 客户端发现用户长时间没动静,或者客户端准备主动关闭这个 Shell 进程时,会在后台做如下事情

  • 自动存档:把当前 Shell 里的关键状态(比如当前在哪个目录,设置了哪些环境变量,甚至运行历史的上下文)打包,存到硬盘,数据库或者向量库里
  • 随时回滚:当用户下次再唤醒这个 AI 时,OpenCode 会先去读取上次存档的快照,然后再重新创建一个 Shell 进程,并自动把之前的环境变量和目录状态恢复回去

打个比方

  • 普通终端:就像在纸上写字,纸丢了(关闭终端),字就没了
  • 持久化终端:就像雇了个秘书帮拿着纸,如果半小时不说话,秘书就把纸扔了(超时清理),但在扔纸之前,秘书会先把纸上的内容拍照存档,下次打算再继续写的时候,秘书会把照片内容打印出来,让用户继续接着写

有人可能会有疑问,既然能存档,为什么还要清理呢?这涉及到内存和硬盘的区别,内存的速度比硬盘快很多,当进程在运行时,实际上是运行在内存上,其数据和状态也是存放在内存上

内存和计算资源是昂贵的,如果 AI 给每个用户都无限期地养着一个真实的 Bash 进程,服务器很快就会被撑爆,所以超时清理 + 状态存档才是目前工业界最主流,最经济的做法,平时把状态存进硬盘(便宜),用的时候再瞬间在内存里恢复(快)

所以,这里说的bash工具持久化,并不是说那个具体的进程永远不会退出,而是进程可以被销毁,但状态永远能被找回

另外,这里的提示词明确强调,禁止使用cd ... && command这种写法,下面也分析下

禁止使用cd执行命令,其实是一个针对 AI 工具的防呆设计和安全规范,并不是说底层的 Bash 命令真的不能执行cd命令


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

http://www.jsqmd.com/news/790897/

相关文章:

  • 2026Q1实测广西豆包AI搜索全网推广:服务商口碑与避坑选择 - 年度推荐企业名录
  • NCM文件解密探索:从加密格式到音乐自由的逆向工程之旅
  • Lua学习笔记
  • 9大网盘直链下载助手完整指南:告别限速,一键获取真实下载地址
  • Windows键盘自定义终极指南:5分钟掌握SharpKeys键位映射技巧
  • Simulink建模进阶:Relay模块的缓冲区机制与嵌入式代码实现
  • DXVK 2.7.1:突破性跨平台Direct3D到Vulkan转换层的架构演进
  • 终极免费解决方案:九大网盘直链下载助手完整使用指南
  • FFmpeg GUI终极指南:3分钟学会图形化音视频处理
  • 别再手动改网表了!用这个免费工具5分钟搞定Altium Designer到Allegro的转换
  • PIDtoolbox完全指南:如何用可视化工具快速解决无人机PID调参难题
  • 2026Q1数字实测内蒙古GEO品牌推广避坑指南 - 年度推荐企业名录
  • 2025技术革新:如何用开源脚本打破网盘壁垒实现一站式文件管理?
  • StardewXnbHack:43秒极速解压星露谷物语XNB文件的终极工具
  • AI驱动的广告追踪验证:告别数据黑盒,保障营销ROI
  • CANopen设备配置实战:手把手教你用Python-canopen库读写EDS文件中的对象字典
  • 观察Taotoken用量看板如何帮助控制月度Token消耗
  • 为梦想再赴一程,济南中考复读择校攻略 - 速递信息
  • 鸿蒙 PC + 手机 + 平板:一次真正的多端应用实战
  • 企业如何利用Taotoken构建内部统一的AI能力中台与调用网关
  • RAG/LLM安全扫描器实战指南:从威胁解析到自动化防御
  • 如何实现Blender到虚幻引擎的无缝数据迁移:终极转换指南
  • 网盘直链下载助手终极指南:告别限速,轻松获取九大网盘高速下载链接
  • 2026Q1内蒙古合规GEO优化推广:数字选型实测 - 年度推荐企业名录
  • 终极解决方案:WindowResizer - 免费高效的Windows窗口强制调整工具
  • 别做外卖代运营了:帮餐饮店处理差评,反而更容易月付
  • 如何快速上手N_m3u8DL-RE:跨平台流媒体下载终极指南
  • 从数字失忆到数字永恒:WeChatMsg如何让你的微信聊天记录重获新生
  • 现在不掌握AI原生推荐的因果建模能力,2026Q3起你的推荐系统将被判定为“非智能体”——奇点大会技术合规白皮书预警
  • 开源抖音下载器终极指南:从零掌握高效批量内容提取技巧