3.8 KiB
WorkBuddy 本地对话参照导入
2026-10-08 已确认:WorkBuddy AI 的会话正文保存在本地,并非只能从云端获取。
此前参照文档只检查了 AppData 下的 WorkBuddy 目录,遗漏了 .workbuddy-ai。
数据位置
%USERPROFILE%/.workbuddy-ai/workbuddy.db:sessions表保存标题、工作目录及会话 ID。%USERPROFILE%/.workbuddy-ai/sessions/<pid>.json:运行进程对应的会话 ID。%USERPROFILE%/.workbuddy-ai/projects/<目录键>/<sessionId>.jsonl:正文及工具调用记录。
无需 UI 自动化或内存 hook;读取这些文件不会修改 WorkBuddy。
转换
python scripts/import-workbuddy.py '<会话 JSONL 完整路径>'
python scripts/import-workbuddy.py '<会话 JSONL 完整路径>' --apply
默认只预检。--apply 先通过 SQLite backup API 备份 Ygent 数据库,再以事务创建独立任务及消息,逐字段回读验证。
同一 WorkBuddy 会话已有导入任务时跳过,避免重复;此脚本不增量同步。
转换文件和数据库备份放在 %USERPROFILE%/.ygent/imports/,不写入代码仓库。
默认标题从 WorkBuddy sessions 表读取(优先 custom_title);无来源数据库时回退到 JSONL 的 ai-title,也可用 --title 覆盖。
映射规则:
- 用户消息提取
<user_query>,过滤系统注入与纯恢复提示。 - 助手消息保留可见正文,不导入内部推理正文、模型凭据或 provider 元数据。
reasoning事件仅记录存在及相邻可见消息的位置,写入render_meta.reasoningBefore;没有可公开展示的摘要时只呈现事件标题,不提供空的展开按钮。 - 行内代码在消息来源cwd下能识别为真实文件/目录时,保存标签、路径和类型;代码文本不改写,原始正文仍用于搜索/复制。普通新对话由共享路径组件通过真实IPC在所属会话工作目录下识别,不按参照会话ID或标题硬编码。
- 工具按
callId匹配结果,在调用位置插入工具行,保留原参数、输出和可用的 description。 - 保留消息时间;没有结果的调用注明“此调用没有执行结果记录”。
show_widget的 HTML 保留在工具参数中,并在独立 sandbox iframe 内渲染。
当前显示限制
2026-10-08补齐呈现元数据:更新版本首次启动迁移到v10后,运行python scripts/import-workbuddy.py '<源JSONL完整路径>' --enrich --apply。仅处理已导入且逐条role/content/fn/result与来源完全一致的参照会话;不匹配即拒绝。先备份数据库,再事务更新render_meta并回读验证,保留消息ID、内容、工具数据及顺序。本次829条已验证,新增374个事件位置标记和7个路径关联。来源文件与推理正文均不改写/导入。
“深度思考”当前仅恢复事件位置标题,未恢复内容展开或真实模型的思考阶段流式事件;仍不能作为动态思考行为对标通过。路径标签已支持键盘/点击打开,原生验收只执行只读路径分类,未自动启动外部文件应用。
这是一份参照快照,不会恢复 WorkBuddy 内核上下文。不要把导入记录当作可续接的原内核会话。 Ygent 已按导入顺序呈现正文、工具和权限事件,并只折叠连续的工具调用;工具结果仍主要显示单行摘要。 本次源会话的五份 HTML 制品已在 sandbox iframe 中渲染;其中一份 SVG 的 iframe 高度仍比 WorkBuddy 少 5px。图片附件、内部推理、审批交互和完整工具结果查看器尚未完整呈现。
本次导入的源会话为 05c73f5f-e3ac-452e-bfde-fd5be036e588,当前 WorkBuddy 标题和 Ygent 参照任务标题均为“处理大文件”。
转换结果为 26 条用户消息、254 条助手正文、549 条工具调用,其中一条调用没有结果记录。