Skip to content

v0.107.19

Choose a tag to compare

@github-actions github-actions released this 05 Nov 13:04
· 118 commits to main since this release
12db595

K-brain v0.107.19

本版从 main 的 12db595 构建。

新功能

  • 子代理实时转录与单独停止(#122):
    • 列表与转录:新增 GET /v1/sessions/{id}/subagents(前台与后台子代理列表),GET …/subagents/{task}(截至此刻的转录),GET …/subagents/{task}/events?after_seq=N(只含该子代理事件的 SSE)。另有单独停止某个子代理的接口;
    • 实时事件:子代理运行时,它的文字、思考、补充指令和工具调用作为 trajectory.child.* 事件写入会话事件日志,文本按 100ms 或 8 KiB 合并发出。旧客户端会忽略这些事件,会话历史不变;
    • 载荷:Subagent 新增 parent_tool_call_id、background、usage、tool_count、duration_ms。
  • kn 终端界面的子代理面板(#127):
    • 转录中的子代理:显示一行实时状态(工具次数、最新工具、耗时、token),完成后变成一行摘要;
    • 前台子代理:也会出现在面板里,可以打开查看;
    • 面板:运行中的排在前面,可用 Ctrl+X 直接停止选中项;
    • 完成通知:后台子代理完成后显示为一行弱化通知,不再显示成用户输入。

修复

  • 后台子代理不会再随一轮对话结束而被取消,也不再占住会话(#120):
    • 问题:模型用 background=true 启动的子代理,会在本轮结束时被一起取消,报告送不回来;
    • 现在:本轮正常结束后,子代理会继续运行,完成后把报告送回会话。用户停止本轮、/close 或删除会话时,子代理会一起停掉;
    • 不再占住会话:子代理运行期间,用户可以照常发起新的对话,也可以编辑、分支、压缩;目标续跑、排队消息和唤醒照常进行。只有切换模型或工作区、回退代码这两件事要等子代理结束,此时返回 409 session has a running background subagent;
    • 遗留任务:K-brain 退出时还没结束的子代理,下次加载会话时会标记为中断,不再一直挡住删除和编辑。
  • 目标续跑轮与运行时提醒不再显示成用户消息(#130):/goal 的每个续跑轮 [goal n/m] …、新上下文提示和输出上限续写提醒,现在带 origin: "background",客户端会显示成通知。续跑轮也不再进入提示词回溯。/goal <目标> 本身仍是用户消息。

性能

  • 事件日志写入更快(#124):run 进行中复用同一个日志文件句柄,不再每个事件都打开、关闭一次(Windows 除外)。每 256 个事件记录一个偏移标记,断线重连后的重放直接从标记处开始,不用从文件开头读起。
  • 长回复和大工具参数的流式拼接不再越来越慢(#125):Chat Completions、Responses、Anthropic 三种流式回复以前每收到一段增量就把已收到的内容整体复制一遍,现在改为直接追加,开销从平方级降到线性。

测试

  • 修正 TestSubscriptionRefreshWithoutDesktop 写死日期导致过期失败的问题(#128)。

下载与校验

提供 macOS、Linux、Windows 的 x64/ARM64 CLI 与 computer helper,共 12 个二进制;SHA256SUMS 用于校验下载文件。

完整变更