v1.6.0
稳定版 · 2026-06-22 · 上一个稳定版 v1.5.0
这个版本的三件大事
我直说。
v1.5.0 让员工变得可验证——目标长出了清单,Wiki 开始自我维护,记忆认得清是谁的记忆。这个版本不是加一个新超能力,而是关于员工能跑在哪、能用手和眼睛做什么、以及你能多直接地塑造它是谁。
三件事:它现在能跑在你可能被要求使用的数据库上,长出了新的感官和双手,而且你能不碰提示词就塑造它的身份和触达范围。
第一,它能跑在国产数据库上。 KingbaseES(人大金仓)和 PostgreSQL 现在是一等公民。PostgreSQL 与 KingbaseES 共用同一套迁移树——同一份 SQL 驱动两者,因为 KingbaseES 讲的就是 PostgreSQL。PostgreSQL 驱动随默认构建发布;KingbaseES 驱动按需引入(它不在 Maven Central)。MySQL 和桌面版 H2 默认完全不动——这是一个新选项,不是被迫迁移。
第二,它长出了新的感官和双手。 员工能按需重新看一张图,并把这张图跨轮次留在上下文里——你三条消息之前发的截图,现在追问它还看得见,而不是第一次回复后就忘了。它还能写代码并运行——execute_code 让员工写一段代码并执行,于是"算一下这个""把这个文件转一下""核一下这个数"从猜测变成真实动作。
第三,你能直接塑造员工是谁。 它的上下文文件(AGENTS.md 等)现在有了真正的编辑器:模态弹窗、作为设置项一行、支持章节重排。一段静态的 About You 身份块进入系统提示词。员工现在甚至知道自己跑在哪个模型上,每轮注入。你能把员工的知识库访问范围限定到一个绑定子集,还能按标签过滤花名册。
外加几件中等的事:Wiki 的原始素材和源目录监听合并成了一个 Sources 标签,支持按 KB 自动同步和 glob 通配;一个带设置页的全局出站代理;以及最终回答的 Markdown 更确定、更干净。
就这些。
1. 它能跑在国产数据库上 —— KingbaseES + PostgreSQL
在此之前,生产环境意味着 MySQL(桌面版用 H2)。对于在受监管或国产化采购环境里的团队,这是一堵墙。这个版本把员工搬上了 KingbaseES(人大金仓) 和 PostgreSQL。
整个 PostgreSQL 家族共用一套迁移树。 KingbaseES 在 SQL 和协议层兼容 PostgreSQL,所以两者跑的是同一套迁移树(db/migration/kingbase)和同一份种子数据。不存在第三份手工维护的迁移副本——PostgreSQL 家族就是一套用可移植 PostgreSQL 写的脚本。
两个驱动有意分开处理:
| 数据库 | 驱动 | 构建 |
|---|---|---|
| PostgreSQL | org.postgresql(在 Maven Central) | 随默认构建,无需额外操作 |
| KingbaseES | com.kingbase8(不在 Maven Central) | 按需 -Pkingbase Maven profile |
KingbaseES 驱动没有发布到 Maven Central,把它做成硬依赖会让所有没有这个私有 jar 的人 mvn package 直接失败。所以它放在一个按需 profile 里——默认构建永远不需要它,KingbaseES 用户本地装好 jar 再用 -Pkingbase 构建。没有任何 Java 代码 import 这个驱动;两个数据库都在运行时由 Spring profile(postgres / kingbase)和 JDBC URL 选择。
严格 PostgreSQL 的可移植性。 KingbaseES 容忍宽松类型,原生 PostgreSQL 不容忍。这套共享树被打磨成在两者上都能跑:布尔列用真正的 TRUE/FALSE 而不是 0/1,金仓专有的 SYS_GUID() 换成可移植的 md5(random()::text),种子数据去掉了 FROM DUAL 这类 Oracle 残留。验证方式:把全部迁移 + 两个语种种子在真实 PostgreSQL 实例上跑通。
Docker 里的最小权限角色。 生产 compose 把数据库账号拆成两个:只用于初始化的引导/超级用户,以及服务实际连接用的受限应用角色(拥有自己的 schema、能跑迁移,但不是集群超级用户)。一个 init 脚本安全地创建应用角色(带引号的标识符和字面量,含特殊字符的密码也破不了)。
MySQL 和 H2 桌面默认不变。profile 详见 配置说明。
2. 新的感官和双手 —— 上下文里的视觉,以及代码执行
它留住图片,还能再看一眼
以前,一张图在你发送的那一刻被分析一次,只有文字结果留了下来。你一追问,员工面对的是一段文字说明,不是那张图。
现在图片跨轮次留在上下文里。发一张截图,得到回答,三条消息之后再问"右上角那个数字是多少"——员工还拿着这张图,从图里回答。一个新的 image_analyze 工具让它能按需重新看一张图——用一个新的、更具体的问题重读同一张图,而不必重新上传。
这与渠道侧修复配套:IM(如企业微信)进来的图片现在被正确暂存,而不是只存了个 URL。
它能写代码并运行
新的 execute_code 工具让员工写一段代码并运行。"算一下复利""把这个 CSV 重整一下""核对这两个哈希是否一致"——不再是 LLM 用文字估个答案,而是员工写代码、运行、报告真实结果。可验证的算术、真实的文件转换、真实的核对。
3. 你来塑造员工是谁 —— 以及它能触达什么
上下文文件有了编辑器
AGENTS.md 和其它上下文文件(SOUL.md / PROFILE.md / ……)是你告诉员工"它是谁、该怎么表现"的地方。这个版本给了它们一个真正的编辑器:模态弹窗打开、作为 Agent 设置里的一行、支持章节重排。Agent 编辑器也能直接管理 AGENTS.md,并讲清每个上下文文件各自管什么,你不用再猜哪个文件塑造哪部分。
一段静态的 "About You" 身份块
一段明确的 About You 块被追加进系统提示词——一个员工始终携带的稳定身份声明,与每轮动态注入的上下文分开。
员工知道自己跑在哪个模型上
每轮现在注入一行运行时模型身份——员工知道自己实际执行在哪个模型、哪个供应商上。"你是哪个模型?"能得到诚实的回答,该依赖运行模型的行为也有了依据。
知识库访问可以限定范围
员工的 wiki 访问能限定到一个绑定的知识库子集(迁移 V141),而不是工作空间里的每一个 KB。花名册也加了标签过滤,标签用芯片式编辑器编辑。
4. Wiki 有了 Sources 标签
Wiki 的两种素材入口——上传的原始素材,和本地目录源监听——本来是两个分开的界面。它们现在合并成每个知识库一个 Sources 标签,支持按 KB 自动同步。
- 多路径与 glob 源目录 —— 一个 KB 的源可以是多个路径和 glob 通配,匹配时基于符号链接解析后的扫描根(无法逃出允许的根目录)。
- pageType profile 的表单编辑器 —— 用表单定义一个 KB 的页面类型,不必手写 JSON(JSON 仍保留供审阅)。
- KB 管理与阅读拆成了两个工作空间视图 —— 浏览知识库和管理知识库不再挤在一个局促的屏幕里。
- 按当前 pageType profile 重新归类已有页面,并且 pageType profile 现在在转换、Agent 生成的页面、以及 UI 里被一致地遵守。
详见 LLM Wiki。
5. 全局出站代理
一个新的代理设置页为整个服务端配置全局出站代理。
- HTTP(S) 代理覆盖所有出站流量,包括 LLM API 调用——当这台机器只能通过公司代理访问外网时很有用。
- SOCKS 在 JDK 的 HTTP 路径上生效(非 LLM 流量,如 webhook、文件抓取);部分 HTTP 客户端会忽略 SOCKS,所以 LLM 调用应使用 HTTP(S) 形式。
设置实时生效,并在 UI 里回显当前代理的 host/port 和类型。
6. 更干净的回答
- 最终回答的确定性 Markdown 规范化(#275) —— 员工的最终回答经过一道确定性规范化,让空格、列表、代码围栏渲染一致,而不是各模型各自漂移。配了一个一键关闭开关,想要原始模型输出就关掉。
- 购物推荐渲染成可点击的商品卡片 —— 当回答推荐商品时,以卡片形式返回供点击,而不是一堵链接墙。
还有一些
模型:
- Claude Fable 5 支持(迁移
V145)—— 最新 Claude 家族成员的模型条目。
渠道:
- Webchat 现在是 Web/API 访问 + 多会话 —— 可嵌入的 webchat 接受可选的
agentId和用于多个并行会话的sessionId,外加会话管理端点(列表 / 消息 / 删除),让集成方管理自己的对话。 - 飞书群 @机器人 别名学习 —— 员工学习群里 @ 它用的别名,修复部分漏检的 mention;群会话现在以完整 chatId 为键,避免后缀碰撞。
稳定性:
- MCP 连接变化时刷新缓存(#289) —— 增删 MCP 服务器会刷新受影响 Agent 的工具缓存,且连接是非阻塞的,慢服务器卡不住启动。
- 技能工作空间稳定性 —— 技能工作空间持久化到已有数据卷(#273),非 ASCII 技能名不再碰撞或移位(#255)。
- Wiki 修复 —— 按标题去重并约束路由提示词增长(#321)、Docker 下中文路径正确处理(#260)、目录扫描按源路径去重(#272)、当前打开的 KB/页面现在保留在 URL 里。
- ProgressLedger 不再钉住虚拟线程载体 —— 并行
progress_update下不再占用调度器,负载下保持响应。
完整列表:git log v1.5.0..HEAD。
升级路径
配置完全兼容。 你的 Agent / 技能 / Wiki / 渠道 / 定时任务 / 工作流 / 触发器 / 目标全部原样保留。
新 schema 由 Flyway 自动迁移。 Agent KB 范围(V141)、Wiki 转换目标页面类型(V142)、execute_code 工具注册(V143)、MCP 生产端点修复(V144)、Claude Fable 5 条目(V145)、KB 监听开关(V146)都在首次启动时迁移;已有数据库自动 baseline。
如果你已经在生产跑 v1.5.0:
- 你的数据库不变。 MySQL 和 H2 桌面默认不动。PostgreSQL 和 KingbaseES 是新的按需 profile,不是被迫的迁移——切换引擎是一个有意的、全新安装的决定(没有自动的 MySQL → PostgreSQL 数据迁移)。
- 上下文里的视觉是自动的 —— 图片追问直接开始生效,无需配置。
execute_code是内置工具 —— 由V143注册;像任何工具一样绑到员工上,并受同一套 Tool Guard 规则约束。- 全局代理在你设置前是关的 —— 在新设置页配置;不设时出站行为与之前完全一致。
- Markdown 规范化默认开,带开关 —— 如果某个工作流依赖原始模型格式,打开那个关闭开关。
这个版本对你意味着什么
如果你是普通用户 ——
发一张截图然后接着问——员工记得这张图,而不只是它的第一段描述。让它真的去算点东西,它写代码运行,而不是猜。通过真正的 AGENTS.md 编辑器编辑你的员工是谁,而不是一个裸文本框。
如果你在搭知识库 ——
每个 KB 一个 Sources 标签:用 glob 通配丢进目录,让按 KB 的自动同步保持新鲜,用表单而不是手写 JSON 来塑造页面类型。
如果你在受监管或国产化环境 ——
把整套跑在 KingbaseES(人大金仓) 或 PostgreSQL 上。一套 PostgreSQL 家族迁移树、一个保持开源构建干净的按需驱动、以及 Docker 栈里的最小权限数据库角色。
如果你是开发者 ——
execute_code 做真实计算;webchat 会话管理端点驱动多会话嵌入;运行时只能通过一个代理访问外网时用全局代理。
如果你跑生产 ——
为有要求的环境多了一个数据库选项、为锁死的网络多了一个全局代理、以及一个连接变化时刷新且不阻塞启动的更安静的 MCP 层。
还有最后一件事。
在哪。眼睛和双手。自我。
只能跑在一种数据库上的员工,是一个你得削足适履去迁就的工具。能跑在你的世界本就要求的数据库上的员工,才是你真正能用起来的。
它的感官也一样。一个回一次就忘掉图片的员工,读的是说明文字。一个留住图片、按需再看、并写代码核对自己算术的员工,是在做事,而不是在叙述。
而你越能直接说出它是谁——它的上下文文件、它的身份、它知识的触达范围——它就越不漂移,也越是你的。
这个版本,是把员工迎到你所在的地方:你的数据库、你在工作上的眼睛和双手、你赋予它成为谁的形状。
