
人工智能AI Agent自主智能体桌面应用MCP Clients【免费下载链接】KunLocal-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 是 Local-first 的 AI Agent 工作区其运行时同时支撑桌面 GUI 与 TUI。本指南以openspec/changes/add-conversation-trajectory-view变更计划及其两份规格说明conversation-trajectory-view与compact-trajectory-storage为主体完整讲解会话级轨迹视图Trajectory View的 UI 结构、数据采集策略、紧凑存储架构、查询 API 与故障恢复行为。读完本文你将掌握如何在 Kun 中切换聊天/轨迹双中心视图、理解生命周期元数据与提示词清单Prompt Manifest的持久化机制并能按契约调用轨迹分页/摘要/详情接口排查长会话的模型、工具、耗时与失败行为。背景为什么需要会话级轨迹视图Kun 此前已经具备模型请求诊断能力LlmDebugRecorder记录精确的模型传输完成的记录按线程写入 JSONL并在工作台的 Agent Perspective 右侧面板中渲染。但这一方案有两个结构性缺陷信息被局限在右侧检查器中无法在会话上下文里纵览模型、工具、时序、用量、重试与失败行为原始请求/响应负载被独立于会话正史canonical conversation history大量持久化长会话场景下存储成本线性膨胀难以扩展。因此本次变更的目标不是新增一个诊断面板而是引入会话作用域conversation-scoped的轨迹视图——它是所选会话的内容视图而非运行时诊断或供应商控制面板。核心设计取向是以紧凑的生命周期元数据 可选的按内容寻址细节存储替代“全量请求/响应重复落盘”的旧策略同时保留既有会话正史作为响应与工具内容的唯一权威来源。一、UI聊天 / 轨迹双中心视图1.1 标题栏 Trace 按钮与状态保持使用会话标题栏中的Trace按钮可将中心区域在聊天chat与轨迹trajectory之间切换。切换时编辑器Composer与隐藏的聊天时间线保持挂载草稿、模型/权限选择以及聊天滚动位置都不会丢失轨迹模式下 Composer 依然挂载保证草稿/模型状态存活但视觉隐藏、处于惰性状态并被移出指针命中测试轨迹与检查器因此可获得完整交互面仅保留 16px 底部空隙返回 Chat 时恢复同一个 Composer 实例。标题栏按钮具有运行/失败状态指示当所选会话存在进行中的模型请求或最近一次请求失败时按钮会暴露对应的 running / failure 指示及其按下态accessibility pressed state。1.2 轨迹视图的组成轨迹视图包含以下核心区域32px 工具栏展示 Duration / Turns / Calls 概要提供已加载窗口内的增量搜索50px 输入/模型/工具时序总览条支持顺序sequence与按录制时长recorded-duration两种展示模式两列时间顺序 Event/Content 账本Ledger按 Turn 轨道rails组织标注请求边界支持向后分页、独立 Turn/调用折叠且超过 100 行时启用虚拟化同步时间线支持范围选择、滚轮缩放、右键平移/清除、延迟 tooltip以及与账本的双向联动选择类型化检查器Inspector针对 System、Request、Markdown、Tool、Subtool 等记录类型提供 Markdown、JSON/Schema、附件、来源、选项、用量、时序与 Prompt Diff 视图实时跟随live-edge following仅当账本处于实时边缘时跟随新记录用户检查旧记录时暂停跟随。1.3 响应式布局与交互细节宽屏下检查器停靠宽度为clamp(320px, 38%, 440px)可调整至 720px同时账本至少保留 280px760px 及以下变为右侧浮层宽度不超过 420pxEvent 列在表格容器达到 620px 时从 122px 折叠为仅图标 50px轨迹打开时不选中任何记录账本占满全宽选中账本行、请求边界或时序区间时打开类型化检查器其 Summary 视图展示状态、层级、用量、时序与有界预览而非将归一化 wire record 直接以 JSON 倾倒旧的 Agent Perspective 右侧面板贡献已被移除保存的旧布局引用会被归一化为无面板。实现要点no-drag 边界整个轨迹表面显式退出 Electron 可拖拽窗口区域。原因在于外围 Workbench 外壳本身是可拖拽的若缺少no-drag边界Chromium 会把账本的点击与滚轮手势当作标题栏交互。渲染器实现中可见该约定例如src/renderer/src/components/trajectory/TrajectoryView.tsx根部挂载了ds-no-drag类。1.4 无障碍与状态边界规格要求检查器在 1080px 以上停靠、760–1079px 浮层、760px 以下全屏并提供返回轨迹的可用控件同时遵守暗色主题、键盘操作与 reduced-motion 偏好。轨迹相关的过滤器、查询、选择、折叠、滚动、检查器宽度与时间线模式按线程隔离切换会话再返回时每个会话恢复各自的轨迹 UI 状态渲染器侧通过有界 Zustand store 持有。当用户离开实时边缘后新记录到达滚动位置保持不动并出现“返回实时边缘”的新记录计数器。二、采集策略始终在线的生命周期元数据2.1 捕获开关的语义变化轨迹持久化始终记录生命周期元数据。原有的按线程modelRequestCaptureEnabled开关只控制两件事完整的提示词细节Prompt Detail是否落盘有界的bounded内存内 wire 诊断是否保留。Settings 继续控制后续创建会话的默认值。也就是说关闭完整内容捕获时模型/工具状态、用量、时序、重试、错误与权威的 Session 输出依然可用精确 System Prompt、工具 schema 与请求选项显示为 “not captured”。开启完整内容捕获时在元数据之外额外生成提示词清单与内容寻址细节块。2.2 记录身份模型每个具体的 Provider 尝试attempt拥有独立的 request ID 与尝试序号attempt ordinal一个逻辑模型步骤logical model step的多个尝试共享 round ID 与 Step 号首段模型内容记录TTFTTime To First Token边界普通流式增量stream deltas不落为轨迹行。契约kun/src/contracts/trajectory.ts中定义了轨迹 schema v2 的记录结构统一基座字段包括id、threadId、turnId、roundId、step、status、startedAt、firstTokenAt、completedAt、durationMs、preview≤2048 字符、detailState、errorCode与errorMessage。状态枚举为running | completed | failed | cancelled | interrupted详情状态为available | not_captured | truncated | evicted | legacy。三类具体记录llm_requestrequestId、attempt、attemptReason、purpose、provider、model、endpointFormat、responseStatus、usage以及可选manifestId、promptFingerprint/previousPromptFingerprint、systemBlobId/toolsBlobId/configBlobIdtool/subtoolcallId、parentRequestId/parentCallId、toolName、argumentsItemId/resultItemId、isError、有界参数/结果预览与attachmentIds消息类system | user | context | compacted | assistantitemId/itemIds、parentRequestId、来源信息、thinkingPreview、attachmentIds与指纹字段。2.3 有界写入与崩溃恢复持久化仅包含生命周期开始、首个内容、终止状态以及每两秒至多一个轻量进度检查点绝不把普通流式增量持久化为轨迹记录运行时在请求未达终止态时退出重启后该请求投影为interrupted中断超过 24 小时的检查点被清除缺失或被预算驱逐的 manifest 不会隐藏生命周期元数据查询与采集失败永不重试、重写或阻塞 Provider 请求。三、存储紧凑事实 内容寻址细节3.1 权威数据仍在 Session store会话正史继续保留在 Session store 中用户与助手消息、推理条目reasoning items、工具参数/结果、压缩条目compaction items、附件与生成媒体。轨迹持久化只存紧凑生命周期事实与引用绝不持久保存普通流增量、原始 HTTP 头/帧、凭据、附件字节、图片/Base64 正文、完整工具输出或另一份助手输出副本。3.2 可选提示词细节manifest 不可变 blob目录结构如下dataDir即 Kun 数据目录dataDir/observability/trajectory/ records/base64url-thread-id.jsonl manifests/base64url-thread-id/base64url-request-id.json blobs/sha256.brrecords每线程紧凑生命周期日志JSONLmanifests提示词清单记录有序请求结构、Session 边界、条目引用、内容哈希与附件元数据blobs内容寻址细节块Brotli 压缩、按 SHA-256 去重、使用私有目录/文件权限写入。blob 在哈希前先做敏感信息清洗sanitize超大内容超过单块上限仅保留有界的 head/tail 数据并带显式截断元数据。选择 Node 内置 Brotli 而非引入 Zstd 原生依赖是为了让打包版 Kun 与独立 TUI 使用同一内建编解码器manifest 中记录 codec 以便将来扩展。契约中的PromptBlobRefSchema强制 blobId 为 64 位十六进制SHA-256kind 为system | tools | config | messagecodec 固定br并携带 rawSize/compressedSize/truncatedPromptManifestSchema则聚合 blobs、messageItemIds、attachmentIds与retainedBytes。3.3 默认细节预算预算项默认值说明全局细节总量512 MiB超出后按 LRU 驱逐不活跃细节单会话细节上限64 MiB超出后驱逐该线程旧细节内联详情预览16 KiB检查器内联预览上限可搜索列表预览2 KiB索引/搜索所用有界预览单个源 blob 上限8 MiB超过则转为有界 head/tail 保留上述常量可在kun/src/services/trajectory-content-store.ts中直接找到TRAJECTORY_MAX_TOTAL_DETAIL_BYTES512 MiB、TRAJECTORY_MAX_THREAD_DETAIL_BYTES64 MiB、TRAJECTORY_INLINE_PREVIEW_BYTES16 KiB、TRAJECTORY_SEARCH_PREVIEW_BYTES2 KiB、TRAJECTORY_MAX_BLOB_BYTES8 MiB以及 head 512 KiB / tail 64 KiB 的截断边界。预算驱逐只移除旧细节生命周期元数据在会话被删除前始终可查受影响记录上报evicted详情状态。会话删除时会删除该线程的 manifests 与遗留 trace 文件随后通过 mark-and-sweep 清理无引用的 blobs以权威 manifests 为准而非依赖崩溃后可能不一致的可变引用计数。3.4 权威文件系统与可重建索引每线程紧凑日志、manifests 与 blob 文件是权威数据。Hybrid SQLite 可能对请求/工具元数据、预览与 blob 引用建立索引以支撑摘要/过滤/搜索但该索引可重建SQLite 不可用时查询 API 回退到对紧凑文件系统数据的扫描带降级警告。规格还要求索引只覆盖元数据与 2 KiB 清洗预览不建立 blob 的全文副本避免内容重复。四、查询 API分页、摘要与分区详情4.1 路由清单三条认证、线程隔离的路由GET /v1/threads/{threadId}/trajectory GET /v1/threads/{threadId}/trajectory/summary GET /v1/threads/{threadId}/trajectory/{recordId}/detail?sectionoverview分页路由接受limit与不透明cursor既有的filterall|llm|tool|error与有界q参数保持兼容而当前 UI 在已加载页内做本地搜索。详情 section 依据所选记录类型取用overview、input、output、usage、timing、raw、arguments、result、system-prompt、tools、diff、options、rendered、source、schema。GET /v1/threads/{threadId}/model-requests继续保留用于兼容线程 PATCH 字段仍为内容捕获开关。4.2 服务端实现与契约校验路由注册见kun/src/server/routes/register-thread-routes.ts/v1/threads/:id/trajectory、/trajectory/summary、/:recordId/detail三条 GET实现位于kun/src/server/routes/trajectory.tslimit缺省 100、上限 200cursor最长 2048q最长 512非法查询返回校验错误线程不存在返回 404轨迹记录器不可用返回 503unavailable查询服务kun/src/services/trajectory-query-service.ts内部上限MAX_QUERY_RECORDS 20_000、REQUEST_PAGE_SIZE 200按 filter/query/cursor 过滤后取limit条并以最后一条记录编码不透明nextCursor返回的TrajectoryPage带 schemaVersion、records、nextCursor、summary、warnings 与historyIncomplete标志摘要TrajectorySummary聚合请求/工具/运行中/失败计数输入/输出/推理/缓存读/缓存写 token、缓存命中率、平均 TTFT、每秒 token 数、总耗时、美元与人民币成本及价值估计并给出lastStatus详情请求按 recordId 检索若请求 ID 不属于该线程则返回 not found不泄露记录是否存在渲染器侧端点常量见src/shared/kun-endpoints.tsKUN_THREAD_TRAJECTORY_TEMPLATE、KUN_THREAD_TRAJECTORY_SUMMARY_TEMPLATE、KUN_THREAD_TRAJECTORY_DETAIL_TEMPLATE并经过 main/preload allowlist 与 renderer runtime client 的接线。4.3 分页与渲染方向API 返回最新在前newest-first的分页结果渲染器把已加载页反转为时间顺序账本并在加载更早页时前置prepend旧分组同时保持所选记录与可见滚动锚点不变——对应“Large trajectory”场景会话含一万条轨迹记录时账本 DOM 只挂载可见 overscan 窗口。渲染器src/renderer/src/components/trajectory/TrajectoryLedger.tsx使用tanstack/react-virtual的useVirtualizer超过虚拟化阈值或存在更早历史时启用含 overscan 配置与 scrollToIndex 定位变量高账本行因此可扩展至长会话。五、兼容性、迁移与既有资产5.1 旧版 schema-v1 兼容遗留的 schema-v1 模型请求 JSONL无需急切破坏性迁移即可继续读取。新持久化记录不再包含原始请求与响应正文查询层把两种格式都投影为轨迹 wire schema v2渲染器在对接更早的运行时runtime时也能归一化旧的 schema-v1 HTTP 页面。旧记录保持可读且由既有保留策略与线程删除负责清理不做破坏性迁移。5.2 迁移步骤计划视角引入新契约与 schema-v1 记录兼容读取器开始写紧凑生命周期记录与可选 manifests遗留文件不动增加查询 API 与渲染器客户端将工作台入口切到中心轨迹视图停止持久化原始负载追加为显式捕获保留有界实时诊断线程删除时同时清理旧与新轨迹产物并执行尽力而为的 blob GC由于 Session 数据不变、旧设置与记录仍可解析回滚始终可行。5.3 UI 参考与归属轨迹布局、时序交互、密集账本信息架构、检查器行为与参考测试矩阵改编自 DeepSeek Harness 的packages/client/ui-trajectory冻结于提交0a53fb55bea101816fa226bb964ae2bed71c343bMIT 许可版权声明保留在THIRD_PARTY_NOTICES.md。Kun不导入或运行时链接Harness 检出移植采用 Kun 自己的轨迹 schema、Session 记录、Markdown/附件渲染器、持久化规则、无障碍约定与语义主题 tokenHarness 的全局导航、页面标签、Cordis 插槽与无关应用外壳均未包含。角色颜色在时间线与账本中遵循同一语义模型System/Compacted 中性色、User 蓝、Context 绿、Assistant 紫TTFT 段更浅、Tool/Subtool 琥珀、失败红映射到 Kun 主题 token 而非固定浅色主题色。时间线范围选择使用着色内部、实色强调边与外部遮罩打开视图会清除上次访问遗留的过期范围。六、边界与设计取舍读源码时留意从设计文档openspec/changes/add-conversation-trajectory-view/design.md与两份 spec 中可提炼以下关键取舍便于理解实现边界非目标不持久化 token/块级增量、原始 HTTP 交换、附件字节或完整工具输出不做提示词 diff、轨迹导出、时间线缩放/范围选择、请求对比、固定详情保留或完整子代理树不把 SQLite 变为权威存储也不新增另一条 agent/runtime 路径Session 条目即响应与工具真相源助手文本/推理、工具参数/结果、压缩、用户消息与附件通过稳定的 item/call ID 被引用轨迹记录只存关联与有界预览——把大体积正文复制进轨迹存储的方案已被否决因为它会在长会话中重复最大数据并造成删除/压缩行为不一致风险缓解manifest 条目引用可能被后续剪枝 → 对精确捕获输入存清洗后的内容哈希/回退 blob并显式展示缺失/被驱逐的细节始终在线元数据增加写入 → 只持久化生命周期转换与每两秒至多一个检查点崩溃留下挂起记录 → 启动/查询时把不活跃的 pending 记录终结为interruptedblob 预算移除细节 → 永不驱逐元数据并返回evicted同时保留时序、用量、错误与 Session 引用。结语Kun 的会话轨迹视图把“模型请求诊断”从右侧检查器升级为与聊天平级的会话中心视图无论是否开启完整内容捕获生命周期元数据始终可用提示词细节以 manifest SHA-256/Brotli 内容寻址 blob 的方式按预算保留旧 schema-v1 轨迹兼容可读分页/摘要/详情 API 带有版本化 DTO 与不透明游标。若需深入实现建议依次阅读 契约定义、查询服务、内容存储、路由实现 与 渲染器组件并结合kun/src/services/trajectory-query-service.test.ts、kun/src/services/trajectory-content-store.test.ts、kun/src/server/routes/trajectory.test.ts等测试用例验证行为。赞分享人工智能AI Agent自主智能体桌面应用MCP Clients【免费下载链接】KunLocal-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 Conversation Trajectory View对话级模型轨迹的紧凑存储、查询 API 与虚拟化可视化实现Kun Conversation Trajectory View对话级模型轨迹的紧凑存储、查询 API 与虚拟化可视化实现 导读 本文以 Kun 仓库中 ad人工智能AI Agent自主智能体桌面应用MCP ClientsWin11Debloat 免费精简 Windows 11一次跑通的系统去臃肿完整教程Win11Debloat 免费精简 Windows 11一次跑通的系统去臃肿完整教程 开机少等十几秒、右键菜单秒开、后台不再往外卖数据——这些都能靠免费开源的人工智能AI Agent自主智能体桌面应用MCP ClientsKun 会话轨迹紧凑存储始终在线的请求生命周期元数据与内容寻址提示清单设计Kun 会话轨迹紧凑存储始终在线的请求生命周期元数据与内容寻址提示清单设计 Kun 是一款 Local first 的 AI Agent 工作区其模型请求诊人工智能AI Agent自主智能体桌面应用MCP Clients上一篇Diablo Edit2终极暗黑破坏神2存档修改器完整指南下一篇华为光猫配置解密工具3分钟解决网络配置查看难题创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考