News
首页  -  资讯  - 
Go Agent 架构体系 Covonaut v1.1.0 发布:Markdown 与代码高亮全面升级
关于 Covonaut Covonaut 是面向生产环境的 Go Agent 框架,纯 Go 实现、MIT 协议社区驱动。覆盖 Agent 开发的完整链路:Agent Loop(含上下文自动压缩、指数退避重试)、助手系统、多 Agent 交接、图引擎(DAG 与 Pregel 两种执行模型)、会话树、可观测性,以及 A2A / ACP / AG-UI / A2UI 四套协议。 配套的终端 UI(T...

关于 Covonaut

Covonaut 是面向生产环境的 Go Agent 框架,纯 Go 实现、MIT 协议社区驱动。覆盖 Agent 开发的完整链路:Agent Loop(含上下文自动压缩、指数退避重试)、助手系统、多 Agent 交接、图引擎(DAG 与 Pregel 两种执行模型)、会话树、可观测性,以及 A2A / ACP / AG-UI / A2UI 四套协议。

配套的终端 UI(TUI)采用 Elm 架构与差分渲染,不依赖任何第三方 TUI 架构体系。

v1.1.0 更新要点

1. Markdown 渲染改为 AST 化

渲染链路拆成两段:把 Markdown 解析成 AST,按 AST 绘制到终端单元格。适配范围如下:

GFM 扩展:表格、任务列表、删除线、自动链接

印刷体标点替换:弯引号 ‘’“”、连接号与破折号 – —、省略号 …、书名号 «»、撇号 ’

数学公式:自研块级(…)与行内(…)解析器

==高亮标记:自研行内解析器,补上 GFM 之外的 mark 语法

针对模型输出的一个实用处理:模型常把表格包进标记为 md / markdown / gfm 的代码围栏里,导致本该是表格的内容被渲染成代码块。现在会自动识别内含 GFM 表格的这类围栏,展开成真正的表格

内置 16 种语言适配:Go、Python、JavaScript、TypeScript、Rust、JSON、YAML、Bash、C、C++、Java、SQL、HTML、CSS、Ruby 及纯文本

9 类词法单元:关键字、类型、字符串、数字、注释、函数、操作符、标点、文本

可插拔:语言定义抽象为LangSpec,运行时可通过RegisterLanguage注册新语言

配色走主题系统:颜色取自主题 semantic palette,主题 JSON 可配并兼容热重载,注释默认斜体

diff 块智能上色:diff 代码块会根据+++/---头中的文件名推断语言,给增删行上色

按扩展名推断语言:提供LanguageForFilename,覆盖 py/js/ts/rs/cpp/yaml 等常见扩展名

可开关:SetSyntaxHighlighting(false)可关闭着色,默认开启

按宽度缓存:渲染结果按终端宽度缓存,避免重复分词

3. 助手回复完成提示

助手消息新增可选 FooterChip 字段。一轮回复结束后,会在消息下方补一行暗色摘要(形如 code · deepseek-v4-flash · 5.5s ),用于回显本轮的模式、模型与耗时。生成过程中不显示,避免干扰流式输出。

修掉底部状态栏意外换行:写满最后一行的最后一格会触发终端的 wrap-pending(DEC xenl),光标落到幻影行后整屏滚动,留下重复状态栏和残留在旧状态行上的聊天文本。新增preventLastRowWrap专门兜住;同时裁剪超出终端高度的帧,避免差分渲染器与真实屏幕失同步而产生幽灵行。

宽度计算改为东亚宽度感知:tui/core/width.go现在正确处理组合记号(0 宽)、东亚宽/全角(2 格)、Ambiguous 字符(按 locale 判定 1 或 2 格)、Emoji(2 格)、base + VS16 视为一个 2 格簇、ZWJ 与变体选择符(0 宽),并透明剥离 ANSI 转义序列。Ambiguous 宽度还能从环境变量的 locale(zh/ja/ko)自动推断。

源码仓库:https://github.com/covoyage/covonaut

Release:https://github.com/covoyage/covonaut/releases/tag/v1.1.0