☰
Kun v0.3.7 版本深度解读:运行时稳定性加固、OpenCore Free 免密接入与用量费用估算
2026/10/12 1:42:37 网站建设 项目流程
  • 人工智能
  • AI Agent
  • 自主智能体
  • 桌面应用
  • MCP Clients

【免费下载链接】Kun

Local-first AI agent workspace for coding, writing, design, research, and automation — one runtime for desktop GUI and TUI.

项目地址:https://gitcode.com/gh_mirrors/de/Kun
点击查看免费下载

导读

本文基于 Kun 仓库的 v0.3.7 发布说明,系统梳理该版本在运行时稳定性与会话体验两大方向上的全部改动:从 OpenCore Free 免密钥模型提供方、基于 models.dev 的用量费用估算、深色主题自定义,到线程执行租约续期、Fast Context 正式化与长会话上下文压缩(squash)等关键能力。阅读本文后,你将掌握这些新功能的配置方式、底层实现原理,以及该版本在启动恢复、SSE 事件流、线程切换与更新通道等关键路径上修复了哪些隐患。文中所有实现细节均可在当前仓库源码中验证。

一、新功能总览

v0.3.7 的核心主题是运行时稳定性与会话体验修复,新增功能集中在四个方向:

  1. 免费模型接入:OpenCore Free 免密钥提供方;
  2. 成本可视化:基于 models.dev 目录价格的用量费用估算;
  3. 界面个性化:深色主题 UI 颜色自定义、吉祥物加载动画、浮动面板;
  4. 会话能力升级:Fast Context 正式化、长会话上下文压缩、线程执行租约续期、boot 启动状态机。

下文逐一展开,并结合仓库源码给出实现证据。

二、OpenCore Free:无需 API Key 的免费模型提供方

2.1 功能定位

v0.3.7 新增了OpenCore Free提供方,让用户无需任何 API Key即可接入免费模型。其请求以匿名方式发送,在免费分组(Free)中展示,且不再弹出密钥提示;同时同步清理了种子数据中的遗留凭证(对应提交 #61b3306、#de714f5、#bcd9123、#b7fbdce、#3f7075f、#2f94726)。

2.2 源码级验证

在 TUI 的连接目录实现中,opencode-free预设被明确归类为 Free 分组,且凭证要求为optional(可选),connectionRequiresCredential判定为false。测试用例 connect-common.test.ts 验证了这一点:

const preset = connectionPresets.find((entry) => entry.id === 'opencode-free') expect(preset).toMatchObject({ category: 'Free', kind: 'http', authType: 'api-key', credentialRequirement: 'optional', endpointFormat: 'chat_completions', models: [ 'big-pickle', 'mimo-v2.5-free', 'ling-3.0-flash-fin-free', 'nemotron-3-ultra-free', 'nemotron-3.5-lightning-free' ] }) expect(connectionRequiresCredential(preset!)).toBe(false)

同一测试还对照验证了普通 API 提供方(如zenmux)仍要求credentialRequirement: 'required',确保免密能力只作用于 Free 分组,不会放宽对常规提供方的凭证约束。

2.3 使用方式

  • 在提供方列表中选择OpenCore Free分组下的模型即可直接使用,无需填写密钥;
  • 请求将以匿名方式发送,适合体验、测试与低风险场景;
  • 该提供方不会触发密钥缺失告警,交互上与其他提供方完全解耦。

三、用量费用估算:让成本可见

3.1 功能概述

v0.3.7 引入用量费用估算(对应 #45a1ed7、#7e92d35、#14584af、#7ebd75c),核心能力包括:

  • 基于models.dev 目录价格估算各提供方及订阅制模型的使用成本;
  • 历史 GLM Coding Plan 用量按零成本计价(订阅已含费用,不重复计费);
  • 历史用量按每轮实际使用的提供方归属(而非当前配置),修复了 legacy 用量记录归属不准的问题。

3.2 源码级验证

在用量聚合服务 usage-service-aggregation.ts 中可以看到完整的成本字段体系:

target.value_estimate_usd += codexEstimate?.valueEstimateUsd ?? catalogEstimateUsd ?? 0 target.value_estimate_cny += codexEstimate?.valueEstimateCny ?? catalogEstimateCny ?? 0 if (referenceValue) { const requests = usage.turns > 0 ? usage.turns : hasRequestUsage(usage) ? 1 : 0 if (codexEstimate || catalogEstimateUsd != null) target.value_estimate_priced_requests += requests else target.value_estimate_unpriced_requests += requests target.value_estimate_coverage = referenceCoverage(target) } target.cache_savings_usd += usage.cacheSavingsUsd ?? 0 target.cache_savings_cny += usage.cacheSavingsCny ?? 0 target.token_economy_savings_tokens += usage.tokenEconomySavingsTokens ?? 0

其中isCatalogZeroPriceSubscriptionModel明确将智谱/智谱 AI 的 Coding Plan 下的 GLM-4/GLM-5 系列模型识别为零价格订阅条目,并通过 turn 级提供方归属修复历史记录的计费归属:

const codingPlan = normalizedProvider === 'zhipu-coding-plan' || normalizedProvider === 'zai-coding-plan' // models.dev 与 kun-agent 将 Coding Plan 模型发布为显式零价订阅条目 return codingPlan && /^glm-(?:4|5)(?:[.-]|$)/u.test(normalizedModel)

此外,该版本还:

  • 补充了DeepSeek V4 按时计费费率(#1db761b);
  • 用量成本指标体现订阅参考价估算(#ef5e62a);
  • 用量索引按字节偏移分段、每线程增量索引,范围查询不再回放全量历史(#6730bd5、#11fc28e),损坏的用量索引自动重建(#a29a2ab、#e6787a8)。

3.3 侧边栏体验

侧边栏用量历史在负载下保持可读:延长聚合超时、缓存线程记录、失败时降级展示(#fd26f4c),确保即使部分提供方探测超时也不会阻塞整体视图。

四、深色主题 UI 颜色自定义

v0.3.7 支持自定义深色主题 UI 颜色(#6ff0762),提供默认值、归一化与合并逻辑,并改进了 live projection 处理。

从应用设置模型 settings-model.ts 可以看到主题枚举定义:

export const themeSchema = z.enum(['system', 'light', 'dark'])

深色主题支持用户自定义 UI 颜色,系统会:

  1. 提供默认值:未自定义时使用内置配色;
  2. 归一化:对用户输入的颜色值做规范化处理,避免非法值破坏渲染;
  3. 合并逻辑:将自定义颜色与默认主题安全合并,保证界面一致性。

同时该版本将整个应用生命周期改为单一 React root 渲染(#e2f95c2),消除了挂载竞态,为深色主题这类全局样式的一致应用提供了稳定的渲染基础。

五、Fast Context 正式化与实时助手能力

5.1 Fast Context 从 Lab 升级为正式能力

Fast Context(快速上下文工具)在 v0.3.7 中从实验室(Lab)能力升级为正式能力,支持运行时配置并配套测试(#fa911c4、#198f667)。配置结构定义在 kun-config-application.ts:

export const FastContextConfigSchema = z .object({ enabled: z.boolean().default(true), model: z.string().min(1).optional(), providerId: z.string().min(1).optional(), reasoningEffort: ModelReasoningEffort.optional(), fast: z.boolean().default(false) }) .strict() .superRefine((config, ctx) => { const hasModel = Boolean(config.model?.trim()) const hasProvider = Boolean(config.providerId?.trim()) if (hasModel === hasProvider) return ctx.addIssue({ code: z.ZodIssueCode.custom, path: hasModel ? ['providerId'] : ['model'], message: 'fastContext model and providerId must be configured together' }) })

关键约束:model与providerId必须成对配置,不能只配其一。同时提供migrateLegacyFastContextConfig(kun-config-application.ts)将旧的lab.fastContext配置自动迁移到顶层fastContext,实现平滑升级。相关实现位于 fast-context-tool-provider.ts,并有配套测试 fast-context-tool.test.ts。

5.2 Fast Context 稳定性修复

  • Fast Context 卡片不再错误渲染为失败状态,收紧误报守卫(#71a73a1、#8a610e7);
  • Fast Context 队列按会话隔离,避免会话间串扰(#5d4c272);
  • 限制 Fast Context 队列等待时长(#6aa5511);
  • 启动时保留 Fast Context 模型配置(#075f3c1),热应用请求体正确处理 Fast Context 与本地模型网关(#bc3c8d9)。

5.3 实时助手流式上下文

新增实时助手流式上下文,并增强消息时间线动画(#c0a740d);线程详情支持水合加载与回放处理,live projection 与水合加载增强(#ad6d1e2、#77ac3bf)。

六、线程执行租约续期:防卡死的核心机制

6.1 新组件 ManagerThreadExecutionLeaseClient

v0.3.7 新增ManagerThreadExecutionLeaseClient(#237d0ad),为线程执行租约提供续期(renewal)能力,防止长时间运行的 turn 因租约到期而被 Manager 误判为失活。

核心实现在 manager-thread-execution-lease-client.ts,其关键设计如下:

  • 周期性续期:每 5 秒向 Manager 的/v1/leases/threads/{threadId}/renew端点发送续期请求(L252-L266);
  • 本地硬截止时间(deadline):Manager 会在expiresAt无条件删除租约,因此客户端在本地设置 deadline 定时器,续期必须赶在到期前完成(L348-L361);
  • grace 宽限期:本地 deadline 先于续期完成触发时,运行时进入grace状态——暂停新的副作用工具派发,等待续期结果落定(L370-L382);
  • 指数退避重试:瞬时失败按500 * 2^min(failures-1, 3)退避,封顶 5 秒(L391-L403);
  • fencing token 防串写:续期、释放都携带fencingToken,即使租约已权威丢失,迟到的持久化写入也会被 Manager 拒绝(L47-L51)。

该组件实现了ThreadExecutionLeasePort,并配套测试 manager-client-lease-renewal.test.ts。同时本版本增强了数据互斥与线程续租机制,补充租约过期处理及配套测试(#c394abd、#fbb5ba1),并将资源租约心跳串行化,保留最早互斥截止期限(#05eab27、#3e02ae5)。

6.2 与其他稳定性改动的关系

租约续期与启动恢复、更新交接等能力共同构成"防卡死"体系:例如更新通道交接需要运行时优雅/强制替换(#b8e56c2),替换窗口内租约必须可靠续期或释放,避免新旧运行时同时操作同一线程。

七、长会话上下文弹性:squash 压缩与会话守护

7.1 问题背景

长会话在历史累积后,上下文胶囊(context capsule)会持续占用请求 token,甚至导致会话中途截断。v0.3.7 恢复长会话上下文弹性(#eb08f25),支持上下文压缩(squash)、快照裁剪与会话守护。

7.2 压缩实现

核心逻辑在 model-context-squash.ts:squashModelContextHistory将 append-only 的model_context增量(delta)折叠为单一 canonical baseline:

  • 遍历历史中的model_context条目,收集活动 turn 边界之前的增量;
  • 按"最旧 → 最新"顺序应用每个 key 的状态转换,inactive块会被删除,活动块内联 canonical 内容;
  • 无法结构重建的 legacy delta 保留原样(unresolvableIds),绝不丢弃模型可见字节;
  • 返回的 baseline 替换被折叠的增量条目,压缩后请求 token 显著降低。

配套实现还包括 history-compaction-service.ts 的HistoryCompactionService、session-guardian.ts 的会话守护,以及测试 model-context-squash.test.ts。本版本同时新增历史记录压缩测试,优化消息时间线与内存查找组件(#b3723af)。

7.3 配套保留策略

保留策略(prune)不再覆盖既有 turns(#0d0a65d);暂存快照强制执行磁盘配额(#758f7e8);限制快照体积并保留水合状态(#7403e9c)。

八、启动与运行时恢复加固

v0.3.7 对启动路径进行了系统性加固,新增工作台 boot 状态机(#7288bae),启动失败时提供明确的错误提示与重试机制:

  • 运行时交接门禁:启动时增加运行时交接门禁,加固恢复窗口(#e0616e3);支持多目录场景下的强制交接恢复(#15fff3f);
  • fail-closed 策略:恢复路径保持可重试,运行时升级时 fail-closed,避免半初始化状态(#65b6806);
  • 窗口先行:启动时先显示窗口,再启动运行时服务,避免窗口空白等待(#8852045);
  • 服务管理器替换:实现管理器优雅/强制替换能力,启动失败窗口支持恢复操作与详细的交接错误展示(#b8e56c2);
  • SSE 事件流修复:修复大线程日志导致的 SSE 404 死胡同与事件循环停滞(#c47208f);
  • 竞态加固:加固状态游标与用户输入竞态(#2b40a19);修复 channel 与线程维护流程(#ba8d089);
  • 工具发现并行化:缩短启动耗时(#1d707f9);
  • 端口属主校验:校验失效端口属主身份,安全替换无端口陈旧运行时(#d9cbf37、#65591fc);
  • 首次启动恢复:修复首次启动失败后的恢复路径(#34368de)。

九、更新通道与发布流水线

9.1 更新通道可靠性

  • 更新通道切换操作串行化,避免并发变更互相冲突(#66bed86);加固更新通道交接逻辑(#12c90b1);
  • 更新健康探测隔离,后台检查失败后退避重试(#8b5ebf2、#abf1da7);
  • 更新源发现限界,并与预发布版本比较(#c633238);
  • 更新范围不明确时中止安装(#a6113cf)。

9.2 Windows 与 Linux 专项

  • Windows 更新恢复状态收敛,安装与首次启动失败可恢复(#f0645ad、#6ebb432、#31969cb);
  • 安装后恢复备份路径校验,恢复备份限界(#52ddbf9、#492e680);
  • Windows 更新事务将空快捷方式快照稳定序列化为空数组,兼容旧空对象快照;
  • 为运行时关闭增加进程级截止时间,避免 Linux 更新交接被未落定的清理步骤无限阻塞;
  • 解除 Windows 事务测试、Linux 沙箱冒烟与 0.3.7 产物的流水线阻塞(#2766fae);加固安装器与 Linux 交接门禁(#16c5d93);Chromium 沙箱回退增加门禁(#3806242)。

十、会话体验修复与界面改进

10.1 聊天与会话

  • 按线程恢复输入框(composer)状态(#655387b);切换线程时保留用户选择的模型(#c7a6c26);
  • 修复引导中的排队消息在切换线程后"复活"的问题(#c11bc64);
  • 媒体瓦片按图片宽高比自适应,不再裁剪(#54e86fb);
  • 修复 rehype-harden 的[blocked]标记泄漏到文件链接(#b7d33ba);
  • 重新打开已结束线程时不再重放 live-progress UI(#3e08fb1);
  • 用户直接提问时不再被误判为重复内容而强制延续目标,目标保持激活等待用户回复(#b427054);
  • 运行中也可加载更早的历史消息,长会话回溯更平滑(#e0f5f37)。

10.2 待处理输入可见性

user_input支持超时后由模型自主决策(#d847a5c、#ea91214);侧边栏新增 awaiting-input 提示,并在聊天 UI 中完整呈现等待输入状态——当模型等待用户输入时,界面明确呈现等待状态而非静默卡住。

10.3 侧边栏与线程管理

  • 运行中的会话行在侧边栏中保持位置冻结,不再跳动(#f634a98);
  • 侧边栏线程列表强制分页加载,避免一次拉取全量(#5a90e81);
  • 线程状态经批量运行时端点协调一致(#6f63524),支持批量拉取线程状态并增强错误处理与诊断信息(#f72d5e0、#2186721);
  • 线程详情支持prewarm,切换更流畅(#8000b03);selectThread中 promise 落定后重新校验 prewarm 句柄(#bfd5964);
  • 已查看的已完成线程在侧边栏排序中降级,不再长时间占据顶部(#e3aa2f6);
  • 展开的项目线程自动加载全部会话,并支持常驻折叠按钮(#8999e7d、#2e4bdfd)。

10.4 其他界面改进

  • 计划面板复制路径:活动计划的路径可一键复制,并更新多语言文案(#a04a7d4);
  • 任务档案摘要组件:新增设计档案摘要组件与布局解析器,档案水合失败时降级为摘要展示(#530cac4);
  • 创建计划工具增强:改进计划标题处理,会话 ID 缺失时使用回退值(#9a81597);
  • 背景 Shell 浮动面板:后台 shell 会话支持浮动面板查看(#161fdef);
  • 受治理的图表可视化:聊天中支持结构化数据的可信图表渲染(#cb294c2);HTML 优先图表设计,复杂流程图与架构图优先以 HTML 呈现(#d380deb);
  • 语音听写与提示词优化内联错误:内联错误提示可关闭并自动过期,不再持续占用输入区域(#a5e2803);
  • 吉祥物加载动画:新增 Kun 吉祥物加载动画,启动等待更友好(#9676323);
  • TUI 新会话立即可用:自动生成会话标题(#318350f、#89b93ca)。

十一、提供方、本地网关与安全

11.1 提供方与配置

  • 编辑后的凭证与端点正确应用,异步凭证排空在 rebase 后保留(#164da0c、#8b7a74a);
  • 关闭提供方变更屏障竞态(#40652a8);提供方变更落定后再探测(#3e89b0d);
  • 待处理凭证同步失败后自动重试(#0a9ec7b);
  • 统一 antigravity CLI 目录与安装逻辑(#f2b9f74);
  • antigravity-cli 模型解析兼容空白格式(#fd62146);智谱 Coding Plan 新增GLM-5.3-Flash(#6787099),可在 model-context-profile.ts 等处看到相关模型引用。

11.2 本地网关与安全

  • 本地模型网关要求独立 API 凭证(#e352e96);
  • 及时关闭网关流式资源,避免句柄泄漏(#1e1d4d3);
  • 渲染进程桥不可用时优雅降级(#5bc2665);
  • 保护媒体 API 凭证,避免敏感信息泄露(#b9fd913);
  • 修复安装器兼容性回归(#7ba9547)。

十二、存储与保留、委托与检索

12.1 存储与保留

  • 线程列表可从异常中恢复,历史查询增加限界,避免无界扫描(#3865074);
  • 保留策略(prune)不再覆盖既有 turns(#0d0a65d);
  • 用量索引分段与增量索引、追加哈希限界(#6730bd5、#11fc28e、#ae82e1f、#df06b30);
  • JSONL 读取与用量回填不再隐藏 I/O 失败(#c38e276)。

12.2 委托与检索

  • 委托子 turn 纳入画布流程(#53afeae);
  • 恢复子代理权威状态(#3d06de4);线程时间线覆盖已落定的分离子代理状态(#d0fa8b9);
  • agent-sdk 下载校验与原子激活(#ff1c656)。

十三、其他修复与收尾

  • macOS 下会话面板位置为窗口控制按钮留出空间(#42c58b5);
  • 终端新标签页菜单改为 portal 渲染,并新增剪贴板快捷键(#227d393);
  • 活动技能上下文令牌正确分类,上下文估算更准确(#5c9fc72);
  • 强化 i18n 资源契约,避免多语言文案缺失(#dfc5df9);
  • 目标已用时间跨线程切换锚定到运行中的 turn,不再错乱(#b82c615);
  • 提供方配额超时隔离测试与请求超时时间调整(#6fcfa92);
  • 分页前先展开已加载线程,避免状态丢失(#4f92a84);稳定线程分页与刷新时序(#73716ee)。

十四、版本定位与升级建议

v0.3.7 是一个典型的稳定性主导版本:功能增量克制的背后,是启动恢复、租约续期、SSE 事件流、更新交接、用量索引等关键路径的大规模加固。对于使用场景的实践建议:

  1. 长会话重度用户:升级后可显著受益于上下文 squash 压缩与运行中回溯历史,建议观察长会话是否不再中途截断;
  2. 免费模型体验用户:可直接通过 OpenCore Free 匿名接入免费模型,无需配置密钥;
  3. 成本敏感用户:用量费用估算(含 DeepSeek V4 计费、GLM Coding Plan 零价处理)可在侧边栏直观查看各提供方成本,历史归属已按实际使用提供方修正;
  4. 升级注意:Fast Context 配置从lab.fastContext自动迁移到顶层fastContext,若你在旧版本中手动配置过lab.fastContext,升级后无需改动即可继续生效;注意model与providerId仍需成对配置。

结语

Kun v0.3.7 以"运行时稳定性 + 会话体验修复"为核心,既带来了 OpenCore Free、用量费用估算、深色主题自定义等可直接感知的新能力,也在启动恢复、线程租约、SSE 流、更新通道、存储索引等底层路径上完成了大规模加固。通过 manager-thread-execution-lease-client.ts、model-context-squash.ts、usage-service-aggregation.ts、kun-config-application.ts 等源码,可以清晰看到这些改动的实现逻辑与防御边界——这也是本版本作为稳定性里程碑的底气所在。

  • 人工智能
  • AI Agent
  • 自主智能体
  • 桌面应用
  • MCP Clients

【免费下载链接】Kun

Local-first AI agent workspace for coding, writing, design, research, and automation — one runtime for desktop GUI and TUI.

项目地址:https://gitcode.com/gh_mirrors/de/Kun
点击查看免费下载

相关推荐

上一篇:5分钟快速上手:Style2Paints V4.5 AI绘画工具从安装到创作全攻略
下一篇:AgentScope 2.0 多智能体框架部署实战:4 步上线多租户智能体服务

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询