首页 > 开源 > 全能 Go Agent 框架 covonaut v1.1.4 发布:新增工具滚动并行池、多模态读取等

全能 Go Agent 框架 covonaut v1.1.4 发布:新增工具滚动并行池、多模态读取等

OSChina资讯 2026-09-21 23:25 5 阅读 查看原文

covonaut 是一个面向生产环境的 Go 语言 Agent 框架,覆盖 Agent 主循环、工具调用、图编排与多协议互操作等,全部为纯 Go 实现,采用 MIT 协议。

v1.1.4 更新内容

1. 滚动工具执行池:并行与混合两档调度

此前的并行执行是「一次性拉起全部调用再靠并发上限排队」,一个慢工具会长期占住槽位。本次改为单一滚动池调度:

  • 调用严格按照模型给出的顺序启动,一旦有空槽立即补位,慢调用不再阻塞后续可并行的调用;
  • 遇到不允许并行的调用时,先排空池中在跑的任务,再单独内联执行,形成串行屏障;
  • 结果始终保留在原始位置上,模型看到的返回顺序与串行执行完全一致;
  • 每个调用独立捕获 panic,单个工具崩溃不影响同批其他调用。

调度宽严程度由工具自身的并发安全声明和执行模式共同决定。并行模式取最宽策略,只有明确声明为非并发安全的工具会被隔离串行执行;混合模式为本次新增,采用保守策略,未声明或声明不明确的任务一律串行。开发者可按工具生态的可信程度在两者之间选择。

与此配套,工具结果新增了多模态内容通道:截图等富内容可与文本结果一起,透传给支持多部分工具返回的模型服务,不支持的服务自动降级为纯文本。

2. 读取工具按文件类型分发,一个入口读所有格式

读取工具不再只处理文本,而是根据扩展名与内容特征自动分流到文本、图片、PDF、Jupyter Notebook、视频五条处理路径,本地路径与网络链接均可直接读取。

  • 文本与 Notebook 支持按行或按单元格分页读取,Notebook 会渲染为可读文本;
  • 图片支持单次提交多个目标(最多 8 个)用于对比,并可附带提问以聚焦描述内容;
  • PDF 支持页码范围、最大页数与仅取元数据三种用法;
  • 视频支持指定抽帧数量与时间窗口;
  • 富媒体处理逻辑以可插拔回调形式提供,未接入时给出明确提示而非静默失败;
  • 文本输出被截断时,返回内容末尾会附带续读位置提示,模型可自行继续读取而不丢内容;
  • 真正的二进制文件不再被当作文本塞进上下文,而是返回格式识别结果。

3. 删除操作移入系统回收站,误删可恢复

删除工具与 shell 中的删除命令不再直接永久删除文件,统一改为移入平台回收站:

  • macOS 走系统访达回收站,可正常「放回原处」,异常时回退到用户废纸篓目录;
  • Linux 优先使用 freedesktop 回收站接口,回退到符合桌面规范的手工回收目录实现;
  • Windows 移入系统回收站;
  • 支持通过环境变量指定统一回收目录,或强制采用直接移动方式;
  • 同名冲突自动追加时间戳后缀,避免覆盖已删除内容;
  • 内置安全护栏:拒绝文件系统根目录、当前工作目录与用户主目录,且任何情况下都不会退化为永久删除

命令侧通过解析 shell 语法树,只拦截顶层、单条、路径为字面量的删除命令;复合命令、含变量拼接的路径、带重定向的语句一律放行交给真实 shell 处理,避免误伤正常脚本。清空、粉碎类不可恢复命令被直接阻断并提示改用可恢复方式。

4. shell 与终端界面隔离,以及若干增强

  • shell 子进程与聊天界面完全隔离:子进程不再继承控制终端,无法抢占鼠标、焦点与作业控制,在界面中运行 vim、less 等交互式程序不再打乱渲染;
  • 新增按 JSON Schema 校验结构化输出的能力,供模型的 JSON 模式返回与工具出参校验复用,未配置模式时安全跳过;
  • 网络搜索的免密钥后端按运行区域自适应选择,中文环境优先使用 Bing,其他环境优先使用 DuckDuckGo,区域可从环境变量、系统语言或时区推断;
  • 新增持久终端工具族(基于伪终端,需显式开启):工作目录、导出变量与后台作业可跨多次调用保留,区别于每次新建进程的方式,默认限制并发会话数量并为每个会话维护滚动输出缓冲。

升级方式

将模块版本指定到 v1.1.4 即可,本次无破坏性接口变更。需要留意的是,并行模式下的调度语义由「全量并发」调整为「滚动池 + 宽松准入」,若希望保持保守调度,请改用新增的混合模式,并为工具补齐并发安全声明。

相关链接