covonaut这个面向生产环境的Go语言Agent框架,又一次把自己打磨得更像一位靠谱的同事。最新放出的v1.1.4版本带来滚动工具执行池、多模态读取能力,以及一连串围绕安全与隔离的增强,而且全程纯Go实现、采用MIT协议,覆盖Agent主循环、工具调用、图编排与多协议互操作。最体贴的一点是,开发者升级到v1.1.4无需改动任何接口代码,新特性开箱即用。
调度是这次改动的核心。过去的并行执行像个不讲策略的包工头——一次性拉起全部调用,再靠并发上限排队,一个慢工具就能长期占住槽位,堵住后面所有活。v1.1.4改成单一滚动池调度:调用严格按模型给出的顺序启动,一旦有空槽立即补位,慢调用不再拖累后续可以并行的任务;遇到不允许并行的调用,会先排空池中在跑的任务再单独内联执行,形成一道串行屏障。模型看到的返回顺序始终与串行执行完全一致,每个调用还独立捕获panic,单个工具崩溃不会拖垮同批其他调用。调度宽严由工具自身的并发安全声明和执行模式共同决定:并行模式最宽松,只有明确声明非并发安全的工具才被隔离串行;本次新增的混合模式则保守得多,未声明或声明不明确的任务一律串行,开发者可按工具生态的可信程度二选一。配套而来的是工具结果的多模态内容通道,截图等富内容能和文本一起透传给支持多部分返回的模型,不支持的服务则自动降级为纯文本。
读取工具这次彻底长出了多面手属性。它不再只认文本,而是按扩展名和内容特征自动分流到文本、图片、PDF、Jupyter Notebook、视频五条处理路径,本地路径和网络链接都能直接喂进去。文本与Notebook支持按行或按单元格分页,Notebook会被渲染成可读文本;图片单次最多提交8个目标用于对比,还能附带提问聚焦描述;PDF支持页码范围、最大页数和仅取元数据三种用法;视频则可指定抽帧数量与时间窗口。富媒体处理逻辑以可插拔回调形式提供,没接入时给出明确提示而非静默失败;文本被截断时,末尾会附带续读位置提示,模型可自行接着读不丢内容;真正的二进制文件也不再被硬塞进上下文,而是老老实实返回格式识别结果。
最让运维放心的,是删除操作被统一关进了系统回收站。删除工具和shell里的删除命令不再永久销毁文件,而是按平台移入回收站:macOS走访达回收站、异常时回退用户废纸篓;Linux优先用freedesktop回收站接口、回退手工回收目录;Windows移入系统回收站。同名冲突会自动追加时间戳后缀避免覆盖,内置安全护栏更坚定拒绝文件系统根目录、当前工作目录与用户主目录,并且任何情况下都不会退化成永久删除。命令侧通过解析shell语法树,只拦截顶层、单条、路径为字面量的删除命令,复合命令、含变量拼接的路径和带重定向的语句一律放行交给真实shell;清空、粉碎这类不可恢复命令则被直接阻断并提示改用可恢复方式。
隔离与增强同样到位。shell子进程与聊天界面彻底分家,不再继承控制终端、抢鼠标焦点和作业控制,在界面里跑vim、less这类交互程序也不会打乱渲染。框架新增了按JSON Schema校验结构化输出的能力,供模型的JSON模式返回与工具出参复用。网络搜索的免密钥后端按运行区域自适应,中文环境优先Bing、其他环境优先DuckDuckGo,区域可从环境变量、系统语言或时区推断。此外新增需显式开启的持久终端工具族,基于伪终端让工作目录、导出变量和后台作业跨多次调用保留,区别于每次新建进程的做法,并默认限制并发会话数量、为每个会话维护滚动输出缓冲。
升级只需把模块版本指到v1.1.4,本次无破坏性接口变更。唯一要留意的是,并行模式的调度语义从全量并发调整为滚动池加宽松准入,若想保持保守调度,请改用新增的混合模式并为工具补齐并发安全声明。






