| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !812 merge feature/cannbot-insight-update into master feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 本次更新将 cannbot-insight 由 v1.67 升级至 v1.72,围绕"主 agent 编排规程审计"与"会话视图离线导出"两条主线新增能力,并完善审计进度可视化与部署文档。共 10 个提交,按依赖顺序组织。 ## 一、新增功能 ### 1. LLM 编排规程提取(llm-workflow-extract) 在确定性提取(recoverWorkflowDeclaration)之外,新增基于 LLM 的编排规程提取能力,二者独立并行,便于交叉对比: - 确定性:从 DB 固定字段恢复原文(Skill invoke 的 <skill_content> / Read 返回 / turn0 注入) - LLM:读取 session 行为(dispatch 动作之前的主 agent turns),spawn claude CLI 由 LLM 总结编排规程 md,覆盖确定性取不到的场景 实现要点: - 新增 src/lib/llm-workflow-extract.ts:读取 dispatch 前 turns(无 dispatch 取前 10 个),构造 prompt 调 claude CLI(5min 超时),输出 source="llm-extract" 的规程 md;模块级非阻塞任务缓存(getOrStartLlmExtract),GET 端点立即返回不阻塞 HTTP,前端轮询;失败缓存可重试 - 新增 GET /api/observe/session/llm-workflow-extract 端点 - 截断策略:turn0 3000 字、assistant 1000 字、skill_body 20000 字、read_body 15000 字 ### 2. llm-root 对账 kind(全链路打通) 新增 "llm-root" 对账类型(= root + 用 LLM 提取编排规程),贯穿审计全链路: - audit-skilleval 路由:新增 llm-root kind(兼容 extract:"llm" 参数),llm-root 走 LLM 提取、否则走确定性提取;声明缺失时报针对性错误;safeName 区分 "llm-workflow" / "main-agent-workflow" - skill-audit-job:AuditKind 扩展含 llm-root;新增 startedAt 时间戳供前端计算已耗时;终态统一维护 startedAt - SkillAuditTab:新增 LLM_WORKFLOW_TARGET 与确定性 root 目标并排,支持对比;root/llm-root badge 同色 - SkillDetail:新增「提取」按钮,点击触发 LLM 提取 + 前端轮询;模块级缓存切 tab 不重取、切 session 才重取 - AuditBoardTab:透传 llm-root 类型 ### 3. 会话视图 HTML 导出(export-view) 将已渲染的 insight 会话视图打成单个自包含 HTML,离线可看、可交互展开,1:1 复刻 DOM 快照并内嵌全部依赖数据: - src/export-view/entry.tsx:bundle 入口,挂载 SessionDetailPage;fetch 拦截器按全 URL(per-参数端点)与 path(核心端点)匹配返回内嵌数据;EventSource/SSE no-op 避免 file:// 安全错误;React 19 use() 用 fulfilled thenable 同步返回避免无 Suspense 边界时崩溃;迁移 sessionStorage 的 skill 对账结果供 hydrate 直接展示 - src/export-view/shims/next-navigation.ts:next/navigation shim 去路由依赖 - scripts/build-export-view.mjs:esbuild 打包,@/ 别名解析、next/navigation 替换 - src/app/session/[taskId]/page.tsx:captureStylesheets 收集样式、gatherExportData 预取所有 /api/observe/* 端点 + sessionStorage 对账结果,输出自包含 HTML - start.sh 启动时自动 npm run build:export-view 构建嵌入式 bundle(失败仅告警不阻断) ### 4. agent .md 独立实例 SkillDetail 中 agent .md 全文改用独立 useSkillContent 实例(scAgent),与 skill SKILL.md(session 注入)分桶,避免同名 skill/agent 互相覆盖。 ## 二、改进 ### 审计进度可视化 - skill-eval-runner:解析 5 个 LLM 阶段(精筛/headline/条件性/禁令/步骤)按真实耗时分布加权(预处理 0→15%、判定 15→95%、完成 100%),多 transcript 按 k/N 缩放;最低 5% 初始值避免启动间隙显示 0% - SkillAuditTab 进度条:ease-out 平滑插值,目标只增不减(防退回),修 remount 后退回 0% 的 bug;运行中每秒刷新耗时计时器 ## 三、文档 - 新增 docs/setup-windows.md:Windows 原生环境零基础搭建指南(20-30 分钟) - 新增 docs/setup-wsl.md:WSL 环境搭建指南 ## 四、其他 - 版本号 v1.67 → v1.72 - package.json 新增 build:export-view 脚本;.gitignore 忽略 /public/export-view.js 构建产物 - start.bat 镜像 start.sh 的 smart-agent 后台启动逻辑 - 补齐强制跟踪 package-lock.json、docs/dev-log.md、docs/report.md ## 测试 全部变更基于上游跟踪文件集,smart-agent 既有测试(11 passed / 20 skipped)保持通过,未引入回归。 See merge request: cann/cannbot-skills!812 | 3 天前 | |
feat(cannbot-insight): 同步 v1.51(v1.03 → v1.51) Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !731 merge fix/CleanCode into master feat(cannbot-insight): 同步 v1.51(v1.03 → v1.51) Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 cannbot-insight 功能更新,版本 v1.03 → v1.48。本次新增七大功能,新增 114 个文件、修改 48 个、移除 4 个(旧 Workflow/AI Workflow tab)。主线为 性能可观测(Performance 全景)、文件循迹重建、会话对齐,Audit 工作流审计作为 preview 先行合入承接后续迭代。 一、Performance 性能全景 全新的独立 Performance tab,一站式 session 级性能与成本可观测。所有数据直读 DB、零 LLM 依赖——确定性、可重复、即开即用,不受审计结果波动影响。 PerfPanorama 性能全景三大面板: 1. perf top — 子代理耗时排行(Linux top 风格) - 可排序表格(TURNS / TIME / TOKENS / AVG·T),活跃列箭头指示,列宽稳定不偏移 - 占比条形图:当前值占总量比例,条色随排序键切换(TIME 红 / TOKENS 蓝 / TURNS 灰),一眼锁定最耗资源的子代理 - 点击下钻:展开该子代理 turn 列表(§N + 耗时 + tokens + tools + model),默认 Top 10、一键展开全部 2. Token 成本分析 — 精准定位优化空间 - Cache 节省量卡片:命中缓存(绿)vs 未命中冷输入(红)的量与占比,直指 compaction 后重复输入的浪费 - 每轮 Cache 命中率趋势线(SVG 折线 + 面积渐变),compaction 事件自动标注(命中率骤降点),低命中轮次(<50%)标红 - 与 perf top 联动:下钻 turn 行增加 cache 命中率列,低命中高亮,形成「定位问题 turn → 跳转排查」闭环 3. Top 工具调用 — 耗时瓶颈定位 - 全 session 工具按 durationMs 降序 Top 10,水平条形图,标签 toolName §turnIndex - 点击直接跳转 turns tab 对应 turn 净耗时归因(关键能力):主 Agent 耗时自动扣除并行子代理等待时间(max(bridge.subagentLatencyMs)),还原主 Agent 真实工作时间,避免被子代理壁钟时间虚高——这是判断「主 Agent 是真慢还是在等子代理」的核心依据。 7 张总览卡片:主 Agent 耗时(净) / 子代理耗时 / 总 Tokens / Cache 命中率 / 主 Agent turns / 子代理 sessions / 工具调用,响应式 grid(2/3/6 列)。 交互与性能:可折叠全景、懒挂载(切 tab 不卸载不 re-fetch)、onJumpToTurn 回调定位。设计文档 docs/performance-tab-design.md。 v1.48 同时完成 perf2→perf 整合,并移除旧 Workflow tab 与 AI Workflow tab(删除 WorkflowAIView.tsx/WorkflowTreeView.tsx/prompts/workflow-analyse.md),其能力由 Performance + Audit 承接。 二、文件循迹重建 - File Content Restore(循迹复卷):每文件行一键按时间戳拼合本会话内 read/write 片段重建全文(后写入者覆盖先前),未被读取行标注 --line N not found --;兼容 claude(N\t)与 opencode(<content> 信封 + N: )两种 Read 格式,支持下载/收起。API GET /api/observe/session/file-restore + 纯函数库 src/lib/file-restore.ts。 - Gather & Rebuild Directory(重编汇册):一键按路径树重建本会话工作目录下全部被读/写文件并打包下载 zip,服务端构建二进制响应(不在页面展开全部内容)。纯函数库 src/lib/zip-store.ts(buildZip/crc32/normalizeZipPath,STORE 无压缩 + UTF-8 文件名标志位兼容 Windows 中文路径)。API GET /api/observe/session/dir-restore。 - Skill Content(SKILL.md 全文):每个 skill 可点击展示/下载全文,优先取原生 Skill 工具注入的 resultJson(剥前导),回退 Read of */SKILL.md(剥行号),多次加载取最长版本。API GET /api/observe/session/skill-content。 三、Session Compare — turn 对齐 - banded-DP turn 对齐算法:两个 session 逐 turn 对齐,Web Worker 后台计算不阻塞 UI,ComparePanorama 全景对比 token/费用/耗时/工具调用/subagent。含正确性与性能基准(tests/compare-perf/:banded-dp-correctness、turn-align.bench、api-n+1-elimination、render-smoke)。新增 src/lib/compare/turn-align.ts/turn-align.worker.ts。 四、增量刷新 Auto-refresh 探测源 DB 变化后增量导入(auto-refresh-probe.ts),支持 SSE 流式进度推送,适配 Claude Code JSONL 与 opencode DB。新增 API /api/observe/auto-refresh、/api/observe/auto-refresh-stream,e2e fixture 覆盖 append-turn/idle-assistant/streaming 场景。 五、CLI 与配置 - CLI export-md:导出 session 为 Markdown(与 Web UI 导出/audit step 1 同源输出),供轨迹分析器消费。src/cli/commands/export-md.ts。 - AI Provider 配置:settings 页面 + AIProviderConfigPanel,为审计配置 OpenAI 兼容 provider(baseUrl/apiKey/model)。 - agent-md-scan / agent-version:扫描本地 agent .md、提取版本号。 六、Audit 审计(持续完善中) - Audit tab 拆两个子 tab:Workflow audit(v1-v4,preview)+ Skill audit(接入 skill-eval 对账「真实执行 vs SKILL.md」:五态 verdict、可过滤 findings、by-instruction 表、实时进度条流式百分比)。 - Session Trajectory Analyzer:自建轻量 agent,正则预处理 + 有界 LLM 循环(≤3 轮)分析 10 万+ 行轨迹 MD,无需 Claude Code;Python 版 smart-agent/ + TS 版双端对齐,HTTP 服务 + Next.js 代理路由,Audit tab 可切 v1(TS)/v2(Python)。 - Audit 结果 JSON 导入/导出(audit-export.ts)。 七、性能优化 - 导入流水线 create → createMany + $transaction,单 session 35-100x 加速(23.5s→1.6s),batch 分批(500 条/批)防 SQLite 变量溢出 - opencode-db 适配器 N+1 消除:listSessions ~200+ → 5-6 次批量查询;readSession N×3 → 3 次 - 大 session 事务超时 5s → 60s,解决 "Transaction already closed" 八、移除项 移除 替代 Workflow tab(WorkflowAIView.tsx/WorkflowTreeView.tsx) Performance tab + Audit tab prompts/workflow-analyse.md session-trajectory-analyse.md + trajectory-compress.md tests/start-script.test.ts tests/start-sh-validation.test.ts 九、测试覆盖 新增 45 个测试文件,覆盖上述能力:zip-store(11)、skill-content(20)、file-restore(26)、dir-restore-api、skill-eval-audit、audit-job/audit-export、turn-align/-hard/-stress/-manual、compare-perf/*、claude-autorefresh*、agent-md-scan、trajectory-analyzer、cannbay-archive、upload-session-api、start-sh-validation 等。 同步内容为 skills-dev main 已提交状态,未带入开发仓未提交改动;package-lock.json 按 .gitignore 约定不入库;版本号 VERSION = "1.48"。 关联的Issue <!-- 本次为版本同步发布,暂无对应 Issue。cannbot-insight 大版本跳跃建议在本 PR 评审期间于 Discussions 同步说明。 --> 测试 - cannbot-insight 单元/集成测试:cd plugins-community/cannbot-insight && npm install && npm test(vitest,新增 45 个测试文件) - 仓库级 CI 闸门:./tests/gate_check.sh、./tests/run-tests.sh --fast - 4 个抽样文件 hash 已校验与 skills-dev main blob 一致,确保未带入未提交改动 文档更新 - README.md:Features 列表新增 Performance / 循迹复卷 / 重编汇册 / SKILL.md 全文 / Skill audit 描述 - CHANGELOG.md:补齐 v1.37-v1.40 条目 - 新增设计文档:docs/architecture.md、docs/performance-tab-design.md、docs/audit-skill-subtab-design.md、docs/session-trajectory-analyzer-design.md - 新增 smart-agent/README.md See merge request: cann/cannbot-skills!731 | 13 天前 | |
feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !808 merge feature/update-cannbot-insight into master feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 版本 v1.51 → v1.67。合并多轮功能迭代,71 个文件变更(57 修改 + 14 新增,+4903 / -624)。核心聚焦三类审计/校验能力,其余为配套增强。 ## root 对账编排声明提取重构 - 新增 recoverWorkflowDeclaration 及辅助 resolveWorkflowSkillName / recoverSkillResourceFile - 优先级:skill resources 文件(task-prompts.md)> SKILL.md body > turn0 注入(≥500字) > null - 不再用 STATE.md / todowrite(属"任务完成度",非"编排规程遵循度") - 新增设计文档 docs/workflow-plan-extraction-design.md ## Skill 加载校验(新功能) - 新增 SkillContentAudit 组件 + use-skill-content-audit hook + skill-content-audit API - 校验每个 skill 是否在会话内读取完整 SKILL.md:Skill 工具注入即全文;Read 需无 offset/limit 且无截断标记才判全文,否则部分读取 - chip 三态(全文 / 部分 / 未读),点击 chip 在表格展开该 skill 行 ## Audit 增强 - v4 agent 树默认隐藏全部通过的子 agent(勾选开关才显示) - 跨 agent 问题与优化优先级每项给证据(agent:<name> #turn,可点击跳转);审计头部展示本次消耗 token 数 - 新增 StageBreakdownTable + StageBreakdownRow 类型:6 阶段(extract/refine/headline/rebuild/judge/postprocess)墙钟+token 诊断,区分 LLM vs 程序阶段 - finding / aggregate 增加 source_excerpt(bullet 原文)、headline(人话标题)、turn_refs(证据 turn 序号,可点击跳转) ## Skills tab 增强 - 恢复展示 dispatch 的 subagent 行(此前被误删) - 新增 agent-content API:从磁盘扫 agent .md(AGENTS_SCAN_ROOT),多插件按 session dispatch 覆盖率消歧 ## smart-agent 增强 - trajectory_analyzer 新增 AdaptiveLimiter(自适应并发:激进出高限、撞限流乘性回退、窗口清了爬回)与 _is_rate_or_timeout 判别 - 重构 _audit_one_agent / _aggregate_session;subagent 桥接写入复刻 Claude Code subagent 存储结构 - jsonl_logger 支持 append 模式;server.py analyze_logger 改 append=False ## 零依赖导出 Session DB - 新增 export-db.mjs:从 opencode.db 或 Claude Code JSONL 提取单个 session(含子会话)为独立文件 - 零依赖:仅需 Node.js >= 22(内置 node:sqlite),无需 npm install / Prisma / 后端 - 自动识别框架,支持 --list / -s / -o / --json;README 新增"方式三" ## CLI upload 增强 - 支持 --session-id(非交互指定)、--list、--yes / --json、--description - README 重写上传文档(opencode / Claude Code 分开示例 + 参数表);路径修正 sessions.db → opencode.db ## Turns 与概念追踪交互 - Turn 快速跳转:输入 turn 编号(如 #459)回车直达;subagent turn 自动展开祖先 dispatch lane - 概念追踪高亮跳转:搜索结果点击 View Turn 跳转 Turns tab,自动展开并高亮关键词至匹配位置 - 新增纯函数 src/lib/shared/highlight.tsx(highlightKeyword,大小写不敏感,<mark> 包裹) ## 测试与文档 - 新增 cannbot-insight adapter、opencode-db adapter、delete-session API、skill-content-audit API、trace-turn-highlight、turn-timeline-jump 等集成测试;skill-eval-audit 测试 +615 行 - README / README-zh 功能列表与 tab 描述同步;AGENTS.md 补充相关说明 See merge request: cann/cannbot-skills!808 | 4 天前 | |
[feat]cannbot-insight tool Co-authored-by: guanxinghua<guanxinghua@huawei.com> # message auto-generated for no-merge-commit merge: !521 merge merge-cannbot-insight into master [feat]cannbot-insight tool Created-by: guanxinghua Commit-by: guanxinghua Merged-by: cann-robot Description: 需求@功能描述: https://gitcode.com/cann/cannbot-skills/issues/377 See merge request: cann/cannbot-skills!521 | 1 个月前 | |
feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !812 merge feature/cannbot-insight-update into master feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 本次更新将 cannbot-insight 由 v1.67 升级至 v1.72,围绕"主 agent 编排规程审计"与"会话视图离线导出"两条主线新增能力,并完善审计进度可视化与部署文档。共 10 个提交,按依赖顺序组织。 ## 一、新增功能 ### 1. LLM 编排规程提取(llm-workflow-extract) 在确定性提取(recoverWorkflowDeclaration)之外,新增基于 LLM 的编排规程提取能力,二者独立并行,便于交叉对比: - 确定性:从 DB 固定字段恢复原文(Skill invoke 的 <skill_content> / Read 返回 / turn0 注入) - LLM:读取 session 行为(dispatch 动作之前的主 agent turns),spawn claude CLI 由 LLM 总结编排规程 md,覆盖确定性取不到的场景 实现要点: - 新增 src/lib/llm-workflow-extract.ts:读取 dispatch 前 turns(无 dispatch 取前 10 个),构造 prompt 调 claude CLI(5min 超时),输出 source="llm-extract" 的规程 md;模块级非阻塞任务缓存(getOrStartLlmExtract),GET 端点立即返回不阻塞 HTTP,前端轮询;失败缓存可重试 - 新增 GET /api/observe/session/llm-workflow-extract 端点 - 截断策略:turn0 3000 字、assistant 1000 字、skill_body 20000 字、read_body 15000 字 ### 2. llm-root 对账 kind(全链路打通) 新增 "llm-root" 对账类型(= root + 用 LLM 提取编排规程),贯穿审计全链路: - audit-skilleval 路由:新增 llm-root kind(兼容 extract:"llm" 参数),llm-root 走 LLM 提取、否则走确定性提取;声明缺失时报针对性错误;safeName 区分 "llm-workflow" / "main-agent-workflow" - skill-audit-job:AuditKind 扩展含 llm-root;新增 startedAt 时间戳供前端计算已耗时;终态统一维护 startedAt - SkillAuditTab:新增 LLM_WORKFLOW_TARGET 与确定性 root 目标并排,支持对比;root/llm-root badge 同色 - SkillDetail:新增「提取」按钮,点击触发 LLM 提取 + 前端轮询;模块级缓存切 tab 不重取、切 session 才重取 - AuditBoardTab:透传 llm-root 类型 ### 3. 会话视图 HTML 导出(export-view) 将已渲染的 insight 会话视图打成单个自包含 HTML,离线可看、可交互展开,1:1 复刻 DOM 快照并内嵌全部依赖数据: - src/export-view/entry.tsx:bundle 入口,挂载 SessionDetailPage;fetch 拦截器按全 URL(per-参数端点)与 path(核心端点)匹配返回内嵌数据;EventSource/SSE no-op 避免 file:// 安全错误;React 19 use() 用 fulfilled thenable 同步返回避免无 Suspense 边界时崩溃;迁移 sessionStorage 的 skill 对账结果供 hydrate 直接展示 - src/export-view/shims/next-navigation.ts:next/navigation shim 去路由依赖 - scripts/build-export-view.mjs:esbuild 打包,@/ 别名解析、next/navigation 替换 - src/app/session/[taskId]/page.tsx:captureStylesheets 收集样式、gatherExportData 预取所有 /api/observe/* 端点 + sessionStorage 对账结果,输出自包含 HTML - start.sh 启动时自动 npm run build:export-view 构建嵌入式 bundle(失败仅告警不阻断) ### 4. agent .md 独立实例 SkillDetail 中 agent .md 全文改用独立 useSkillContent 实例(scAgent),与 skill SKILL.md(session 注入)分桶,避免同名 skill/agent 互相覆盖。 ## 二、改进 ### 审计进度可视化 - skill-eval-runner:解析 5 个 LLM 阶段(精筛/headline/条件性/禁令/步骤)按真实耗时分布加权(预处理 0→15%、判定 15→95%、完成 100%),多 transcript 按 k/N 缩放;最低 5% 初始值避免启动间隙显示 0% - SkillAuditTab 进度条:ease-out 平滑插值,目标只增不减(防退回),修 remount 后退回 0% 的 bug;运行中每秒刷新耗时计时器 ## 三、文档 - 新增 docs/setup-windows.md:Windows 原生环境零基础搭建指南(20-30 分钟) - 新增 docs/setup-wsl.md:WSL 环境搭建指南 ## 四、其他 - 版本号 v1.67 → v1.72 - package.json 新增 build:export-view 脚本;.gitignore 忽略 /public/export-view.js 构建产物 - start.bat 镜像 start.sh 的 smart-agent 后台启动逻辑 - 补齐强制跟踪 package-lock.json、docs/dev-log.md、docs/report.md ## 测试 全部变更基于上游跟踪文件集,smart-agent 既有测试(11 passed / 20 skipped)保持通过,未引入回归。 See merge request: cann/cannbot-skills!812 | 3 天前 | |
feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !808 merge feature/update-cannbot-insight into master feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 版本 v1.51 → v1.67。合并多轮功能迭代,71 个文件变更(57 修改 + 14 新增,+4903 / -624)。核心聚焦三类审计/校验能力,其余为配套增强。 ## root 对账编排声明提取重构 - 新增 recoverWorkflowDeclaration 及辅助 resolveWorkflowSkillName / recoverSkillResourceFile - 优先级:skill resources 文件(task-prompts.md)> SKILL.md body > turn0 注入(≥500字) > null - 不再用 STATE.md / todowrite(属"任务完成度",非"编排规程遵循度") - 新增设计文档 docs/workflow-plan-extraction-design.md ## Skill 加载校验(新功能) - 新增 SkillContentAudit 组件 + use-skill-content-audit hook + skill-content-audit API - 校验每个 skill 是否在会话内读取完整 SKILL.md:Skill 工具注入即全文;Read 需无 offset/limit 且无截断标记才判全文,否则部分读取 - chip 三态(全文 / 部分 / 未读),点击 chip 在表格展开该 skill 行 ## Audit 增强 - v4 agent 树默认隐藏全部通过的子 agent(勾选开关才显示) - 跨 agent 问题与优化优先级每项给证据(agent:<name> #turn,可点击跳转);审计头部展示本次消耗 token 数 - 新增 StageBreakdownTable + StageBreakdownRow 类型:6 阶段(extract/refine/headline/rebuild/judge/postprocess)墙钟+token 诊断,区分 LLM vs 程序阶段 - finding / aggregate 增加 source_excerpt(bullet 原文)、headline(人话标题)、turn_refs(证据 turn 序号,可点击跳转) ## Skills tab 增强 - 恢复展示 dispatch 的 subagent 行(此前被误删) - 新增 agent-content API:从磁盘扫 agent .md(AGENTS_SCAN_ROOT),多插件按 session dispatch 覆盖率消歧 ## smart-agent 增强 - trajectory_analyzer 新增 AdaptiveLimiter(自适应并发:激进出高限、撞限流乘性回退、窗口清了爬回)与 _is_rate_or_timeout 判别 - 重构 _audit_one_agent / _aggregate_session;subagent 桥接写入复刻 Claude Code subagent 存储结构 - jsonl_logger 支持 append 模式;server.py analyze_logger 改 append=False ## 零依赖导出 Session DB - 新增 export-db.mjs:从 opencode.db 或 Claude Code JSONL 提取单个 session(含子会话)为独立文件 - 零依赖:仅需 Node.js >= 22(内置 node:sqlite),无需 npm install / Prisma / 后端 - 自动识别框架,支持 --list / -s / -o / --json;README 新增"方式三" ## CLI upload 增强 - 支持 --session-id(非交互指定)、--list、--yes / --json、--description - README 重写上传文档(opencode / Claude Code 分开示例 + 参数表);路径修正 sessions.db → opencode.db ## Turns 与概念追踪交互 - Turn 快速跳转:输入 turn 编号(如 #459)回车直达;subagent turn 自动展开祖先 dispatch lane - 概念追踪高亮跳转:搜索结果点击 View Turn 跳转 Turns tab,自动展开并高亮关键词至匹配位置 - 新增纯函数 src/lib/shared/highlight.tsx(highlightKeyword,大小写不敏感,<mark> 包裹) ## 测试与文档 - 新增 cannbot-insight adapter、opencode-db adapter、delete-session API、skill-content-audit API、trace-turn-highlight、turn-timeline-jump 等集成测试;skill-eval-audit 测试 +615 行 - README / README-zh 功能列表与 tab 描述同步;AGENTS.md 补充相关说明 See merge request: cann/cannbot-skills!808 | 4 天前 | |
feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !812 merge feature/cannbot-insight-update into master feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 本次更新将 cannbot-insight 由 v1.67 升级至 v1.72,围绕"主 agent 编排规程审计"与"会话视图离线导出"两条主线新增能力,并完善审计进度可视化与部署文档。共 10 个提交,按依赖顺序组织。 ## 一、新增功能 ### 1. LLM 编排规程提取(llm-workflow-extract) 在确定性提取(recoverWorkflowDeclaration)之外,新增基于 LLM 的编排规程提取能力,二者独立并行,便于交叉对比: - 确定性:从 DB 固定字段恢复原文(Skill invoke 的 <skill_content> / Read 返回 / turn0 注入) - LLM:读取 session 行为(dispatch 动作之前的主 agent turns),spawn claude CLI 由 LLM 总结编排规程 md,覆盖确定性取不到的场景 实现要点: - 新增 src/lib/llm-workflow-extract.ts:读取 dispatch 前 turns(无 dispatch 取前 10 个),构造 prompt 调 claude CLI(5min 超时),输出 source="llm-extract" 的规程 md;模块级非阻塞任务缓存(getOrStartLlmExtract),GET 端点立即返回不阻塞 HTTP,前端轮询;失败缓存可重试 - 新增 GET /api/observe/session/llm-workflow-extract 端点 - 截断策略:turn0 3000 字、assistant 1000 字、skill_body 20000 字、read_body 15000 字 ### 2. llm-root 对账 kind(全链路打通) 新增 "llm-root" 对账类型(= root + 用 LLM 提取编排规程),贯穿审计全链路: - audit-skilleval 路由:新增 llm-root kind(兼容 extract:"llm" 参数),llm-root 走 LLM 提取、否则走确定性提取;声明缺失时报针对性错误;safeName 区分 "llm-workflow" / "main-agent-workflow" - skill-audit-job:AuditKind 扩展含 llm-root;新增 startedAt 时间戳供前端计算已耗时;终态统一维护 startedAt - SkillAuditTab:新增 LLM_WORKFLOW_TARGET 与确定性 root 目标并排,支持对比;root/llm-root badge 同色 - SkillDetail:新增「提取」按钮,点击触发 LLM 提取 + 前端轮询;模块级缓存切 tab 不重取、切 session 才重取 - AuditBoardTab:透传 llm-root 类型 ### 3. 会话视图 HTML 导出(export-view) 将已渲染的 insight 会话视图打成单个自包含 HTML,离线可看、可交互展开,1:1 复刻 DOM 快照并内嵌全部依赖数据: - src/export-view/entry.tsx:bundle 入口,挂载 SessionDetailPage;fetch 拦截器按全 URL(per-参数端点)与 path(核心端点)匹配返回内嵌数据;EventSource/SSE no-op 避免 file:// 安全错误;React 19 use() 用 fulfilled thenable 同步返回避免无 Suspense 边界时崩溃;迁移 sessionStorage 的 skill 对账结果供 hydrate 直接展示 - src/export-view/shims/next-navigation.ts:next/navigation shim 去路由依赖 - scripts/build-export-view.mjs:esbuild 打包,@/ 别名解析、next/navigation 替换 - src/app/session/[taskId]/page.tsx:captureStylesheets 收集样式、gatherExportData 预取所有 /api/observe/* 端点 + sessionStorage 对账结果,输出自包含 HTML - start.sh 启动时自动 npm run build:export-view 构建嵌入式 bundle(失败仅告警不阻断) ### 4. agent .md 独立实例 SkillDetail 中 agent .md 全文改用独立 useSkillContent 实例(scAgent),与 skill SKILL.md(session 注入)分桶,避免同名 skill/agent 互相覆盖。 ## 二、改进 ### 审计进度可视化 - skill-eval-runner:解析 5 个 LLM 阶段(精筛/headline/条件性/禁令/步骤)按真实耗时分布加权(预处理 0→15%、判定 15→95%、完成 100%),多 transcript 按 k/N 缩放;最低 5% 初始值避免启动间隙显示 0% - SkillAuditTab 进度条:ease-out 平滑插值,目标只增不减(防退回),修 remount 后退回 0% 的 bug;运行中每秒刷新耗时计时器 ## 三、文档 - 新增 docs/setup-windows.md:Windows 原生环境零基础搭建指南(20-30 分钟) - 新增 docs/setup-wsl.md:WSL 环境搭建指南 ## 四、其他 - 版本号 v1.67 → v1.72 - package.json 新增 build:export-view 脚本;.gitignore 忽略 /public/export-view.js 构建产物 - start.bat 镜像 start.sh 的 smart-agent 后台启动逻辑 - 补齐强制跟踪 package-lock.json、docs/dev-log.md、docs/report.md ## 测试 全部变更基于上游跟踪文件集,smart-agent 既有测试(11 passed / 20 skipped)保持通过,未引入回归。 See merge request: cann/cannbot-skills!812 | 3 天前 | |
feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !808 merge feature/update-cannbot-insight into master feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 版本 v1.51 → v1.67。合并多轮功能迭代,71 个文件变更(57 修改 + 14 新增,+4903 / -624)。核心聚焦三类审计/校验能力,其余为配套增强。 ## root 对账编排声明提取重构 - 新增 recoverWorkflowDeclaration 及辅助 resolveWorkflowSkillName / recoverSkillResourceFile - 优先级:skill resources 文件(task-prompts.md)> SKILL.md body > turn0 注入(≥500字) > null - 不再用 STATE.md / todowrite(属"任务完成度",非"编排规程遵循度") - 新增设计文档 docs/workflow-plan-extraction-design.md ## Skill 加载校验(新功能) - 新增 SkillContentAudit 组件 + use-skill-content-audit hook + skill-content-audit API - 校验每个 skill 是否在会话内读取完整 SKILL.md:Skill 工具注入即全文;Read 需无 offset/limit 且无截断标记才判全文,否则部分读取 - chip 三态(全文 / 部分 / 未读),点击 chip 在表格展开该 skill 行 ## Audit 增强 - v4 agent 树默认隐藏全部通过的子 agent(勾选开关才显示) - 跨 agent 问题与优化优先级每项给证据(agent:<name> #turn,可点击跳转);审计头部展示本次消耗 token 数 - 新增 StageBreakdownTable + StageBreakdownRow 类型:6 阶段(extract/refine/headline/rebuild/judge/postprocess)墙钟+token 诊断,区分 LLM vs 程序阶段 - finding / aggregate 增加 source_excerpt(bullet 原文)、headline(人话标题)、turn_refs(证据 turn 序号,可点击跳转) ## Skills tab 增强 - 恢复展示 dispatch 的 subagent 行(此前被误删) - 新增 agent-content API:从磁盘扫 agent .md(AGENTS_SCAN_ROOT),多插件按 session dispatch 覆盖率消歧 ## smart-agent 增强 - trajectory_analyzer 新增 AdaptiveLimiter(自适应并发:激进出高限、撞限流乘性回退、窗口清了爬回)与 _is_rate_or_timeout 判别 - 重构 _audit_one_agent / _aggregate_session;subagent 桥接写入复刻 Claude Code subagent 存储结构 - jsonl_logger 支持 append 模式;server.py analyze_logger 改 append=False ## 零依赖导出 Session DB - 新增 export-db.mjs:从 opencode.db 或 Claude Code JSONL 提取单个 session(含子会话)为独立文件 - 零依赖:仅需 Node.js >= 22(内置 node:sqlite),无需 npm install / Prisma / 后端 - 自动识别框架,支持 --list / -s / -o / --json;README 新增"方式三" ## CLI upload 增强 - 支持 --session-id(非交互指定)、--list、--yes / --json、--description - README 重写上传文档(opencode / Claude Code 分开示例 + 参数表);路径修正 sessions.db → opencode.db ## Turns 与概念追踪交互 - Turn 快速跳转:输入 turn 编号(如 #459)回车直达;subagent turn 自动展开祖先 dispatch lane - 概念追踪高亮跳转:搜索结果点击 View Turn 跳转 Turns tab,自动展开并高亮关键词至匹配位置 - 新增纯函数 src/lib/shared/highlight.tsx(highlightKeyword,大小写不敏感,<mark> 包裹) ## 测试与文档 - 新增 cannbot-insight adapter、opencode-db adapter、delete-session API、skill-content-audit API、trace-turn-highlight、turn-timeline-jump 等集成测试;skill-eval-audit 测试 +615 行 - README / README-zh 功能列表与 tab 描述同步;AGENTS.md 补充相关说明 See merge request: cann/cannbot-skills!808 | 4 天前 | |
feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !812 merge feature/cannbot-insight-update into master feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 本次更新将 cannbot-insight 由 v1.67 升级至 v1.72,围绕"主 agent 编排规程审计"与"会话视图离线导出"两条主线新增能力,并完善审计进度可视化与部署文档。共 10 个提交,按依赖顺序组织。 ## 一、新增功能 ### 1. LLM 编排规程提取(llm-workflow-extract) 在确定性提取(recoverWorkflowDeclaration)之外,新增基于 LLM 的编排规程提取能力,二者独立并行,便于交叉对比: - 确定性:从 DB 固定字段恢复原文(Skill invoke 的 <skill_content> / Read 返回 / turn0 注入) - LLM:读取 session 行为(dispatch 动作之前的主 agent turns),spawn claude CLI 由 LLM 总结编排规程 md,覆盖确定性取不到的场景 实现要点: - 新增 src/lib/llm-workflow-extract.ts:读取 dispatch 前 turns(无 dispatch 取前 10 个),构造 prompt 调 claude CLI(5min 超时),输出 source="llm-extract" 的规程 md;模块级非阻塞任务缓存(getOrStartLlmExtract),GET 端点立即返回不阻塞 HTTP,前端轮询;失败缓存可重试 - 新增 GET /api/observe/session/llm-workflow-extract 端点 - 截断策略:turn0 3000 字、assistant 1000 字、skill_body 20000 字、read_body 15000 字 ### 2. llm-root 对账 kind(全链路打通) 新增 "llm-root" 对账类型(= root + 用 LLM 提取编排规程),贯穿审计全链路: - audit-skilleval 路由:新增 llm-root kind(兼容 extract:"llm" 参数),llm-root 走 LLM 提取、否则走确定性提取;声明缺失时报针对性错误;safeName 区分 "llm-workflow" / "main-agent-workflow" - skill-audit-job:AuditKind 扩展含 llm-root;新增 startedAt 时间戳供前端计算已耗时;终态统一维护 startedAt - SkillAuditTab:新增 LLM_WORKFLOW_TARGET 与确定性 root 目标并排,支持对比;root/llm-root badge 同色 - SkillDetail:新增「提取」按钮,点击触发 LLM 提取 + 前端轮询;模块级缓存切 tab 不重取、切 session 才重取 - AuditBoardTab:透传 llm-root 类型 ### 3. 会话视图 HTML 导出(export-view) 将已渲染的 insight 会话视图打成单个自包含 HTML,离线可看、可交互展开,1:1 复刻 DOM 快照并内嵌全部依赖数据: - src/export-view/entry.tsx:bundle 入口,挂载 SessionDetailPage;fetch 拦截器按全 URL(per-参数端点)与 path(核心端点)匹配返回内嵌数据;EventSource/SSE no-op 避免 file:// 安全错误;React 19 use() 用 fulfilled thenable 同步返回避免无 Suspense 边界时崩溃;迁移 sessionStorage 的 skill 对账结果供 hydrate 直接展示 - src/export-view/shims/next-navigation.ts:next/navigation shim 去路由依赖 - scripts/build-export-view.mjs:esbuild 打包,@/ 别名解析、next/navigation 替换 - src/app/session/[taskId]/page.tsx:captureStylesheets 收集样式、gatherExportData 预取所有 /api/observe/* 端点 + sessionStorage 对账结果,输出自包含 HTML - start.sh 启动时自动 npm run build:export-view 构建嵌入式 bundle(失败仅告警不阻断) ### 4. agent .md 独立实例 SkillDetail 中 agent .md 全文改用独立 useSkillContent 实例(scAgent),与 skill SKILL.md(session 注入)分桶,避免同名 skill/agent 互相覆盖。 ## 二、改进 ### 审计进度可视化 - skill-eval-runner:解析 5 个 LLM 阶段(精筛/headline/条件性/禁令/步骤)按真实耗时分布加权(预处理 0→15%、判定 15→95%、完成 100%),多 transcript 按 k/N 缩放;最低 5% 初始值避免启动间隙显示 0% - SkillAuditTab 进度条:ease-out 平滑插值,目标只增不减(防退回),修 remount 后退回 0% 的 bug;运行中每秒刷新耗时计时器 ## 三、文档 - 新增 docs/setup-windows.md:Windows 原生环境零基础搭建指南(20-30 分钟) - 新增 docs/setup-wsl.md:WSL 环境搭建指南 ## 四、其他 - 版本号 v1.67 → v1.72 - package.json 新增 build:export-view 脚本;.gitignore 忽略 /public/export-view.js 构建产物 - start.bat 镜像 start.sh 的 smart-agent 后台启动逻辑 - 补齐强制跟踪 package-lock.json、docs/dev-log.md、docs/report.md ## 测试 全部变更基于上游跟踪文件集,smart-agent 既有测试(11 passed / 20 skipped)保持通过,未引入回归。 See merge request: cann/cannbot-skills!812 | 3 天前 | |
feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !808 merge feature/update-cannbot-insight into master feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 版本 v1.51 → v1.67。合并多轮功能迭代,71 个文件变更(57 修改 + 14 新增,+4903 / -624)。核心聚焦三类审计/校验能力,其余为配套增强。 ## root 对账编排声明提取重构 - 新增 recoverWorkflowDeclaration 及辅助 resolveWorkflowSkillName / recoverSkillResourceFile - 优先级:skill resources 文件(task-prompts.md)> SKILL.md body > turn0 注入(≥500字) > null - 不再用 STATE.md / todowrite(属"任务完成度",非"编排规程遵循度") - 新增设计文档 docs/workflow-plan-extraction-design.md ## Skill 加载校验(新功能) - 新增 SkillContentAudit 组件 + use-skill-content-audit hook + skill-content-audit API - 校验每个 skill 是否在会话内读取完整 SKILL.md:Skill 工具注入即全文;Read 需无 offset/limit 且无截断标记才判全文,否则部分读取 - chip 三态(全文 / 部分 / 未读),点击 chip 在表格展开该 skill 行 ## Audit 增强 - v4 agent 树默认隐藏全部通过的子 agent(勾选开关才显示) - 跨 agent 问题与优化优先级每项给证据(agent:<name> #turn,可点击跳转);审计头部展示本次消耗 token 数 - 新增 StageBreakdownTable + StageBreakdownRow 类型:6 阶段(extract/refine/headline/rebuild/judge/postprocess)墙钟+token 诊断,区分 LLM vs 程序阶段 - finding / aggregate 增加 source_excerpt(bullet 原文)、headline(人话标题)、turn_refs(证据 turn 序号,可点击跳转) ## Skills tab 增强 - 恢复展示 dispatch 的 subagent 行(此前被误删) - 新增 agent-content API:从磁盘扫 agent .md(AGENTS_SCAN_ROOT),多插件按 session dispatch 覆盖率消歧 ## smart-agent 增强 - trajectory_analyzer 新增 AdaptiveLimiter(自适应并发:激进出高限、撞限流乘性回退、窗口清了爬回)与 _is_rate_or_timeout 判别 - 重构 _audit_one_agent / _aggregate_session;subagent 桥接写入复刻 Claude Code subagent 存储结构 - jsonl_logger 支持 append 模式;server.py analyze_logger 改 append=False ## 零依赖导出 Session DB - 新增 export-db.mjs:从 opencode.db 或 Claude Code JSONL 提取单个 session(含子会话)为独立文件 - 零依赖:仅需 Node.js >= 22(内置 node:sqlite),无需 npm install / Prisma / 后端 - 自动识别框架,支持 --list / -s / -o / --json;README 新增"方式三" ## CLI upload 增强 - 支持 --session-id(非交互指定)、--list、--yes / --json、--description - README 重写上传文档(opencode / Claude Code 分开示例 + 参数表);路径修正 sessions.db → opencode.db ## Turns 与概念追踪交互 - Turn 快速跳转:输入 turn 编号(如 #459)回车直达;subagent turn 自动展开祖先 dispatch lane - 概念追踪高亮跳转:搜索结果点击 View Turn 跳转 Turns tab,自动展开并高亮关键词至匹配位置 - 新增纯函数 src/lib/shared/highlight.tsx(highlightKeyword,大小写不敏感,<mark> 包裹) ## 测试与文档 - 新增 cannbot-insight adapter、opencode-db adapter、delete-session API、skill-content-audit API、trace-turn-highlight、turn-timeline-jump 等集成测试;skill-eval-audit 测试 +615 行 - README / README-zh 功能列表与 tab 描述同步;AGENTS.md 补充相关说明 See merge request: cann/cannbot-skills!808 | 4 天前 | |
feat(cannbot-insight): 同步 v1.51(v1.03 → v1.51) Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !731 merge fix/CleanCode into master feat(cannbot-insight): 同步 v1.51(v1.03 → v1.51) Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 cannbot-insight 功能更新,版本 v1.03 → v1.48。本次新增七大功能,新增 114 个文件、修改 48 个、移除 4 个(旧 Workflow/AI Workflow tab)。主线为 性能可观测(Performance 全景)、文件循迹重建、会话对齐,Audit 工作流审计作为 preview 先行合入承接后续迭代。 一、Performance 性能全景 全新的独立 Performance tab,一站式 session 级性能与成本可观测。所有数据直读 DB、零 LLM 依赖——确定性、可重复、即开即用,不受审计结果波动影响。 PerfPanorama 性能全景三大面板: 1. perf top — 子代理耗时排行(Linux top 风格) - 可排序表格(TURNS / TIME / TOKENS / AVG·T),活跃列箭头指示,列宽稳定不偏移 - 占比条形图:当前值占总量比例,条色随排序键切换(TIME 红 / TOKENS 蓝 / TURNS 灰),一眼锁定最耗资源的子代理 - 点击下钻:展开该子代理 turn 列表(§N + 耗时 + tokens + tools + model),默认 Top 10、一键展开全部 2. Token 成本分析 — 精准定位优化空间 - Cache 节省量卡片:命中缓存(绿)vs 未命中冷输入(红)的量与占比,直指 compaction 后重复输入的浪费 - 每轮 Cache 命中率趋势线(SVG 折线 + 面积渐变),compaction 事件自动标注(命中率骤降点),低命中轮次(<50%)标红 - 与 perf top 联动:下钻 turn 行增加 cache 命中率列,低命中高亮,形成「定位问题 turn → 跳转排查」闭环 3. Top 工具调用 — 耗时瓶颈定位 - 全 session 工具按 durationMs 降序 Top 10,水平条形图,标签 toolName §turnIndex - 点击直接跳转 turns tab 对应 turn 净耗时归因(关键能力):主 Agent 耗时自动扣除并行子代理等待时间(max(bridge.subagentLatencyMs)),还原主 Agent 真实工作时间,避免被子代理壁钟时间虚高——这是判断「主 Agent 是真慢还是在等子代理」的核心依据。 7 张总览卡片:主 Agent 耗时(净) / 子代理耗时 / 总 Tokens / Cache 命中率 / 主 Agent turns / 子代理 sessions / 工具调用,响应式 grid(2/3/6 列)。 交互与性能:可折叠全景、懒挂载(切 tab 不卸载不 re-fetch)、onJumpToTurn 回调定位。设计文档 docs/performance-tab-design.md。 v1.48 同时完成 perf2→perf 整合,并移除旧 Workflow tab 与 AI Workflow tab(删除 WorkflowAIView.tsx/WorkflowTreeView.tsx/prompts/workflow-analyse.md),其能力由 Performance + Audit 承接。 二、文件循迹重建 - File Content Restore(循迹复卷):每文件行一键按时间戳拼合本会话内 read/write 片段重建全文(后写入者覆盖先前),未被读取行标注 --line N not found --;兼容 claude(N\t)与 opencode(<content> 信封 + N: )两种 Read 格式,支持下载/收起。API GET /api/observe/session/file-restore + 纯函数库 src/lib/file-restore.ts。 - Gather & Rebuild Directory(重编汇册):一键按路径树重建本会话工作目录下全部被读/写文件并打包下载 zip,服务端构建二进制响应(不在页面展开全部内容)。纯函数库 src/lib/zip-store.ts(buildZip/crc32/normalizeZipPath,STORE 无压缩 + UTF-8 文件名标志位兼容 Windows 中文路径)。API GET /api/observe/session/dir-restore。 - Skill Content(SKILL.md 全文):每个 skill 可点击展示/下载全文,优先取原生 Skill 工具注入的 resultJson(剥前导),回退 Read of */SKILL.md(剥行号),多次加载取最长版本。API GET /api/observe/session/skill-content。 三、Session Compare — turn 对齐 - banded-DP turn 对齐算法:两个 session 逐 turn 对齐,Web Worker 后台计算不阻塞 UI,ComparePanorama 全景对比 token/费用/耗时/工具调用/subagent。含正确性与性能基准(tests/compare-perf/:banded-dp-correctness、turn-align.bench、api-n+1-elimination、render-smoke)。新增 src/lib/compare/turn-align.ts/turn-align.worker.ts。 四、增量刷新 Auto-refresh 探测源 DB 变化后增量导入(auto-refresh-probe.ts),支持 SSE 流式进度推送,适配 Claude Code JSONL 与 opencode DB。新增 API /api/observe/auto-refresh、/api/observe/auto-refresh-stream,e2e fixture 覆盖 append-turn/idle-assistant/streaming 场景。 五、CLI 与配置 - CLI export-md:导出 session 为 Markdown(与 Web UI 导出/audit step 1 同源输出),供轨迹分析器消费。src/cli/commands/export-md.ts。 - AI Provider 配置:settings 页面 + AIProviderConfigPanel,为审计配置 OpenAI 兼容 provider(baseUrl/apiKey/model)。 - agent-md-scan / agent-version:扫描本地 agent .md、提取版本号。 六、Audit 审计(持续完善中) - Audit tab 拆两个子 tab:Workflow audit(v1-v4,preview)+ Skill audit(接入 skill-eval 对账「真实执行 vs SKILL.md」:五态 verdict、可过滤 findings、by-instruction 表、实时进度条流式百分比)。 - Session Trajectory Analyzer:自建轻量 agent,正则预处理 + 有界 LLM 循环(≤3 轮)分析 10 万+ 行轨迹 MD,无需 Claude Code;Python 版 smart-agent/ + TS 版双端对齐,HTTP 服务 + Next.js 代理路由,Audit tab 可切 v1(TS)/v2(Python)。 - Audit 结果 JSON 导入/导出(audit-export.ts)。 七、性能优化 - 导入流水线 create → createMany + $transaction,单 session 35-100x 加速(23.5s→1.6s),batch 分批(500 条/批)防 SQLite 变量溢出 - opencode-db 适配器 N+1 消除:listSessions ~200+ → 5-6 次批量查询;readSession N×3 → 3 次 - 大 session 事务超时 5s → 60s,解决 "Transaction already closed" 八、移除项 移除 替代 Workflow tab(WorkflowAIView.tsx/WorkflowTreeView.tsx) Performance tab + Audit tab prompts/workflow-analyse.md session-trajectory-analyse.md + trajectory-compress.md tests/start-script.test.ts tests/start-sh-validation.test.ts 九、测试覆盖 新增 45 个测试文件,覆盖上述能力:zip-store(11)、skill-content(20)、file-restore(26)、dir-restore-api、skill-eval-audit、audit-job/audit-export、turn-align/-hard/-stress/-manual、compare-perf/*、claude-autorefresh*、agent-md-scan、trajectory-analyzer、cannbay-archive、upload-session-api、start-sh-validation 等。 同步内容为 skills-dev main 已提交状态,未带入开发仓未提交改动;package-lock.json 按 .gitignore 约定不入库;版本号 VERSION = "1.48"。 关联的Issue <!-- 本次为版本同步发布,暂无对应 Issue。cannbot-insight 大版本跳跃建议在本 PR 评审期间于 Discussions 同步说明。 --> 测试 - cannbot-insight 单元/集成测试:cd plugins-community/cannbot-insight && npm install && npm test(vitest,新增 45 个测试文件) - 仓库级 CI 闸门:./tests/gate_check.sh、./tests/run-tests.sh --fast - 4 个抽样文件 hash 已校验与 skills-dev main blob 一致,确保未带入未提交改动 文档更新 - README.md:Features 列表新增 Performance / 循迹复卷 / 重编汇册 / SKILL.md 全文 / Skill audit 描述 - CHANGELOG.md:补齐 v1.37-v1.40 条目 - 新增设计文档:docs/architecture.md、docs/performance-tab-design.md、docs/audit-skill-subtab-design.md、docs/session-trajectory-analyzer-design.md - 新增 smart-agent/README.md See merge request: cann/cannbot-skills!731 | 13 天前 | |
feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !808 merge feature/update-cannbot-insight into master feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 版本 v1.51 → v1.67。合并多轮功能迭代,71 个文件变更(57 修改 + 14 新增,+4903 / -624)。核心聚焦三类审计/校验能力,其余为配套增强。 ## root 对账编排声明提取重构 - 新增 recoverWorkflowDeclaration 及辅助 resolveWorkflowSkillName / recoverSkillResourceFile - 优先级:skill resources 文件(task-prompts.md)> SKILL.md body > turn0 注入(≥500字) > null - 不再用 STATE.md / todowrite(属"任务完成度",非"编排规程遵循度") - 新增设计文档 docs/workflow-plan-extraction-design.md ## Skill 加载校验(新功能) - 新增 SkillContentAudit 组件 + use-skill-content-audit hook + skill-content-audit API - 校验每个 skill 是否在会话内读取完整 SKILL.md:Skill 工具注入即全文;Read 需无 offset/limit 且无截断标记才判全文,否则部分读取 - chip 三态(全文 / 部分 / 未读),点击 chip 在表格展开该 skill 行 ## Audit 增强 - v4 agent 树默认隐藏全部通过的子 agent(勾选开关才显示) - 跨 agent 问题与优化优先级每项给证据(agent:<name> #turn,可点击跳转);审计头部展示本次消耗 token 数 - 新增 StageBreakdownTable + StageBreakdownRow 类型:6 阶段(extract/refine/headline/rebuild/judge/postprocess)墙钟+token 诊断,区分 LLM vs 程序阶段 - finding / aggregate 增加 source_excerpt(bullet 原文)、headline(人话标题)、turn_refs(证据 turn 序号,可点击跳转) ## Skills tab 增强 - 恢复展示 dispatch 的 subagent 行(此前被误删) - 新增 agent-content API:从磁盘扫 agent .md(AGENTS_SCAN_ROOT),多插件按 session dispatch 覆盖率消歧 ## smart-agent 增强 - trajectory_analyzer 新增 AdaptiveLimiter(自适应并发:激进出高限、撞限流乘性回退、窗口清了爬回)与 _is_rate_or_timeout 判别 - 重构 _audit_one_agent / _aggregate_session;subagent 桥接写入复刻 Claude Code subagent 存储结构 - jsonl_logger 支持 append 模式;server.py analyze_logger 改 append=False ## 零依赖导出 Session DB - 新增 export-db.mjs:从 opencode.db 或 Claude Code JSONL 提取单个 session(含子会话)为独立文件 - 零依赖:仅需 Node.js >= 22(内置 node:sqlite),无需 npm install / Prisma / 后端 - 自动识别框架,支持 --list / -s / -o / --json;README 新增"方式三" ## CLI upload 增强 - 支持 --session-id(非交互指定)、--list、--yes / --json、--description - README 重写上传文档(opencode / Claude Code 分开示例 + 参数表);路径修正 sessions.db → opencode.db ## Turns 与概念追踪交互 - Turn 快速跳转:输入 turn 编号(如 #459)回车直达;subagent turn 自动展开祖先 dispatch lane - 概念追踪高亮跳转:搜索结果点击 View Turn 跳转 Turns tab,自动展开并高亮关键词至匹配位置 - 新增纯函数 src/lib/shared/highlight.tsx(highlightKeyword,大小写不敏感,<mark> 包裹) ## 测试与文档 - 新增 cannbot-insight adapter、opencode-db adapter、delete-session API、skill-content-audit API、trace-turn-highlight、turn-timeline-jump 等集成测试;skill-eval-audit 测试 +615 行 - README / README-zh 功能列表与 tab 描述同步;AGENTS.md 补充相关说明 See merge request: cann/cannbot-skills!808 | 4 天前 | |
feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !808 merge feature/update-cannbot-insight into master feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 版本 v1.51 → v1.67。合并多轮功能迭代,71 个文件变更(57 修改 + 14 新增,+4903 / -624)。核心聚焦三类审计/校验能力,其余为配套增强。 ## root 对账编排声明提取重构 - 新增 recoverWorkflowDeclaration 及辅助 resolveWorkflowSkillName / recoverSkillResourceFile - 优先级:skill resources 文件(task-prompts.md)> SKILL.md body > turn0 注入(≥500字) > null - 不再用 STATE.md / todowrite(属"任务完成度",非"编排规程遵循度") - 新增设计文档 docs/workflow-plan-extraction-design.md ## Skill 加载校验(新功能) - 新增 SkillContentAudit 组件 + use-skill-content-audit hook + skill-content-audit API - 校验每个 skill 是否在会话内读取完整 SKILL.md:Skill 工具注入即全文;Read 需无 offset/limit 且无截断标记才判全文,否则部分读取 - chip 三态(全文 / 部分 / 未读),点击 chip 在表格展开该 skill 行 ## Audit 增强 - v4 agent 树默认隐藏全部通过的子 agent(勾选开关才显示) - 跨 agent 问题与优化优先级每项给证据(agent:<name> #turn,可点击跳转);审计头部展示本次消耗 token 数 - 新增 StageBreakdownTable + StageBreakdownRow 类型:6 阶段(extract/refine/headline/rebuild/judge/postprocess)墙钟+token 诊断,区分 LLM vs 程序阶段 - finding / aggregate 增加 source_excerpt(bullet 原文)、headline(人话标题)、turn_refs(证据 turn 序号,可点击跳转) ## Skills tab 增强 - 恢复展示 dispatch 的 subagent 行(此前被误删) - 新增 agent-content API:从磁盘扫 agent .md(AGENTS_SCAN_ROOT),多插件按 session dispatch 覆盖率消歧 ## smart-agent 增强 - trajectory_analyzer 新增 AdaptiveLimiter(自适应并发:激进出高限、撞限流乘性回退、窗口清了爬回)与 _is_rate_or_timeout 判别 - 重构 _audit_one_agent / _aggregate_session;subagent 桥接写入复刻 Claude Code subagent 存储结构 - jsonl_logger 支持 append 模式;server.py analyze_logger 改 append=False ## 零依赖导出 Session DB - 新增 export-db.mjs:从 opencode.db 或 Claude Code JSONL 提取单个 session(含子会话)为独立文件 - 零依赖:仅需 Node.js >= 22(内置 node:sqlite),无需 npm install / Prisma / 后端 - 自动识别框架,支持 --list / -s / -o / --json;README 新增"方式三" ## CLI upload 增强 - 支持 --session-id(非交互指定)、--list、--yes / --json、--description - README 重写上传文档(opencode / Claude Code 分开示例 + 参数表);路径修正 sessions.db → opencode.db ## Turns 与概念追踪交互 - Turn 快速跳转:输入 turn 编号(如 #459)回车直达;subagent turn 自动展开祖先 dispatch lane - 概念追踪高亮跳转:搜索结果点击 View Turn 跳转 Turns tab,自动展开并高亮关键词至匹配位置 - 新增纯函数 src/lib/shared/highlight.tsx(highlightKeyword,大小写不敏感,<mark> 包裹) ## 测试与文档 - 新增 cannbot-insight adapter、opencode-db adapter、delete-session API、skill-content-audit API、trace-turn-highlight、turn-timeline-jump 等集成测试;skill-eval-audit 测试 +615 行 - README / README-zh 功能列表与 tab 描述同步;AGENTS.md 补充相关说明 See merge request: cann/cannbot-skills!808 | 4 天前 | |
feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !808 merge feature/update-cannbot-insight into master feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 版本 v1.51 → v1.67。合并多轮功能迭代,71 个文件变更(57 修改 + 14 新增,+4903 / -624)。核心聚焦三类审计/校验能力,其余为配套增强。 ## root 对账编排声明提取重构 - 新增 recoverWorkflowDeclaration 及辅助 resolveWorkflowSkillName / recoverSkillResourceFile - 优先级:skill resources 文件(task-prompts.md)> SKILL.md body > turn0 注入(≥500字) > null - 不再用 STATE.md / todowrite(属"任务完成度",非"编排规程遵循度") - 新增设计文档 docs/workflow-plan-extraction-design.md ## Skill 加载校验(新功能) - 新增 SkillContentAudit 组件 + use-skill-content-audit hook + skill-content-audit API - 校验每个 skill 是否在会话内读取完整 SKILL.md:Skill 工具注入即全文;Read 需无 offset/limit 且无截断标记才判全文,否则部分读取 - chip 三态(全文 / 部分 / 未读),点击 chip 在表格展开该 skill 行 ## Audit 增强 - v4 agent 树默认隐藏全部通过的子 agent(勾选开关才显示) - 跨 agent 问题与优化优先级每项给证据(agent:<name> #turn,可点击跳转);审计头部展示本次消耗 token 数 - 新增 StageBreakdownTable + StageBreakdownRow 类型:6 阶段(extract/refine/headline/rebuild/judge/postprocess)墙钟+token 诊断,区分 LLM vs 程序阶段 - finding / aggregate 增加 source_excerpt(bullet 原文)、headline(人话标题)、turn_refs(证据 turn 序号,可点击跳转) ## Skills tab 增强 - 恢复展示 dispatch 的 subagent 行(此前被误删) - 新增 agent-content API:从磁盘扫 agent .md(AGENTS_SCAN_ROOT),多插件按 session dispatch 覆盖率消歧 ## smart-agent 增强 - trajectory_analyzer 新增 AdaptiveLimiter(自适应并发:激进出高限、撞限流乘性回退、窗口清了爬回)与 _is_rate_or_timeout 判别 - 重构 _audit_one_agent / _aggregate_session;subagent 桥接写入复刻 Claude Code subagent 存储结构 - jsonl_logger 支持 append 模式;server.py analyze_logger 改 append=False ## 零依赖导出 Session DB - 新增 export-db.mjs:从 opencode.db 或 Claude Code JSONL 提取单个 session(含子会话)为独立文件 - 零依赖:仅需 Node.js >= 22(内置 node:sqlite),无需 npm install / Prisma / 后端 - 自动识别框架,支持 --list / -s / -o / --json;README 新增"方式三" ## CLI upload 增强 - 支持 --session-id(非交互指定)、--list、--yes / --json、--description - README 重写上传文档(opencode / Claude Code 分开示例 + 参数表);路径修正 sessions.db → opencode.db ## Turns 与概念追踪交互 - Turn 快速跳转:输入 turn 编号(如 #459)回车直达;subagent turn 自动展开祖先 dispatch lane - 概念追踪高亮跳转:搜索结果点击 View Turn 跳转 Turns tab,自动展开并高亮关键词至匹配位置 - 新增纯函数 src/lib/shared/highlight.tsx(highlightKeyword,大小写不敏感,<mark> 包裹) ## 测试与文档 - 新增 cannbot-insight adapter、opencode-db adapter、delete-session API、skill-content-audit API、trace-turn-highlight、turn-timeline-jump 等集成测试;skill-eval-audit 测试 +615 行 - README / README-zh 功能列表与 tab 描述同步;AGENTS.md 补充相关说明 See merge request: cann/cannbot-skills!808 | 4 天前 | |
[feat]cannbot-insight tool Co-authored-by: guanxinghua<guanxinghua@huawei.com> # message auto-generated for no-merge-commit merge: !521 merge merge-cannbot-insight into master [feat]cannbot-insight tool Created-by: guanxinghua Commit-by: guanxinghua Merged-by: cann-robot Description: 需求@功能描述: https://gitcode.com/cann/cannbot-skills/issues/377 See merge request: cann/cannbot-skills!521 | 1 个月前 | |
[feat]cannbot-insight tool Co-authored-by: guanxinghua<guanxinghua@huawei.com> # message auto-generated for no-merge-commit merge: !521 merge merge-cannbot-insight into master [feat]cannbot-insight tool Created-by: guanxinghua Commit-by: guanxinghua Merged-by: cann-robot Description: 需求@功能描述: https://gitcode.com/cann/cannbot-skills/issues/377 See merge request: cann/cannbot-skills!521 | 1 个月前 | |
[feat]cannbot-insight tool Co-authored-by: guanxinghua<guanxinghua@huawei.com> # message auto-generated for no-merge-commit merge: !521 merge merge-cannbot-insight into master [feat]cannbot-insight tool Created-by: guanxinghua Commit-by: guanxinghua Merged-by: cann-robot Description: 需求@功能描述: https://gitcode.com/cann/cannbot-skills/issues/377 See merge request: cann/cannbot-skills!521 | 1 个月前 | |
feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !808 merge feature/update-cannbot-insight into master feat(cannbot-insight): v1.51→v1.67——root 编排对账重构、Skill 加载校验、Audit 阶段诊断增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 版本 v1.51 → v1.67。合并多轮功能迭代,71 个文件变更(57 修改 + 14 新增,+4903 / -624)。核心聚焦三类审计/校验能力,其余为配套增强。 ## root 对账编排声明提取重构 - 新增 recoverWorkflowDeclaration 及辅助 resolveWorkflowSkillName / recoverSkillResourceFile - 优先级:skill resources 文件(task-prompts.md)> SKILL.md body > turn0 注入(≥500字) > null - 不再用 STATE.md / todowrite(属"任务完成度",非"编排规程遵循度") - 新增设计文档 docs/workflow-plan-extraction-design.md ## Skill 加载校验(新功能) - 新增 SkillContentAudit 组件 + use-skill-content-audit hook + skill-content-audit API - 校验每个 skill 是否在会话内读取完整 SKILL.md:Skill 工具注入即全文;Read 需无 offset/limit 且无截断标记才判全文,否则部分读取 - chip 三态(全文 / 部分 / 未读),点击 chip 在表格展开该 skill 行 ## Audit 增强 - v4 agent 树默认隐藏全部通过的子 agent(勾选开关才显示) - 跨 agent 问题与优化优先级每项给证据(agent:<name> #turn,可点击跳转);审计头部展示本次消耗 token 数 - 新增 StageBreakdownTable + StageBreakdownRow 类型:6 阶段(extract/refine/headline/rebuild/judge/postprocess)墙钟+token 诊断,区分 LLM vs 程序阶段 - finding / aggregate 增加 source_excerpt(bullet 原文)、headline(人话标题)、turn_refs(证据 turn 序号,可点击跳转) ## Skills tab 增强 - 恢复展示 dispatch 的 subagent 行(此前被误删) - 新增 agent-content API:从磁盘扫 agent .md(AGENTS_SCAN_ROOT),多插件按 session dispatch 覆盖率消歧 ## smart-agent 增强 - trajectory_analyzer 新增 AdaptiveLimiter(自适应并发:激进出高限、撞限流乘性回退、窗口清了爬回)与 _is_rate_or_timeout 判别 - 重构 _audit_one_agent / _aggregate_session;subagent 桥接写入复刻 Claude Code subagent 存储结构 - jsonl_logger 支持 append 模式;server.py analyze_logger 改 append=False ## 零依赖导出 Session DB - 新增 export-db.mjs:从 opencode.db 或 Claude Code JSONL 提取单个 session(含子会话)为独立文件 - 零依赖:仅需 Node.js >= 22(内置 node:sqlite),无需 npm install / Prisma / 后端 - 自动识别框架,支持 --list / -s / -o / --json;README 新增"方式三" ## CLI upload 增强 - 支持 --session-id(非交互指定)、--list、--yes / --json、--description - README 重写上传文档(opencode / Claude Code 分开示例 + 参数表);路径修正 sessions.db → opencode.db ## Turns 与概念追踪交互 - Turn 快速跳转:输入 turn 编号(如 #459)回车直达;subagent turn 自动展开祖先 dispatch lane - 概念追踪高亮跳转:搜索结果点击 View Turn 跳转 Turns tab,自动展开并高亮关键词至匹配位置 - 新增纯函数 src/lib/shared/highlight.tsx(highlightKeyword,大小写不敏感,<mark> 包裹) ## 测试与文档 - 新增 cannbot-insight adapter、opencode-db adapter、delete-session API、skill-content-audit API、trace-turn-highlight、turn-timeline-jump 等集成测试;skill-eval-audit 测试 +615 行 - README / README-zh 功能列表与 tab 描述同步;AGENTS.md 补充相关说明 See merge request: cann/cannbot-skills!808 | 4 天前 | |
[feat]cannbot-insight tool Co-authored-by: guanxinghua<guanxinghua@huawei.com> # message auto-generated for no-merge-commit merge: !521 merge merge-cannbot-insight into master [feat]cannbot-insight tool Created-by: guanxinghua Commit-by: guanxinghua Merged-by: cann-robot Description: 需求@功能描述: https://gitcode.com/cann/cannbot-skills/issues/377 See merge request: cann/cannbot-skills!521 | 1 个月前 | |
feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !812 merge feature/cannbot-insight-update into master feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 本次更新将 cannbot-insight 由 v1.67 升级至 v1.72,围绕"主 agent 编排规程审计"与"会话视图离线导出"两条主线新增能力,并完善审计进度可视化与部署文档。共 10 个提交,按依赖顺序组织。 ## 一、新增功能 ### 1. LLM 编排规程提取(llm-workflow-extract) 在确定性提取(recoverWorkflowDeclaration)之外,新增基于 LLM 的编排规程提取能力,二者独立并行,便于交叉对比: - 确定性:从 DB 固定字段恢复原文(Skill invoke 的 <skill_content> / Read 返回 / turn0 注入) - LLM:读取 session 行为(dispatch 动作之前的主 agent turns),spawn claude CLI 由 LLM 总结编排规程 md,覆盖确定性取不到的场景 实现要点: - 新增 src/lib/llm-workflow-extract.ts:读取 dispatch 前 turns(无 dispatch 取前 10 个),构造 prompt 调 claude CLI(5min 超时),输出 source="llm-extract" 的规程 md;模块级非阻塞任务缓存(getOrStartLlmExtract),GET 端点立即返回不阻塞 HTTP,前端轮询;失败缓存可重试 - 新增 GET /api/observe/session/llm-workflow-extract 端点 - 截断策略:turn0 3000 字、assistant 1000 字、skill_body 20000 字、read_body 15000 字 ### 2. llm-root 对账 kind(全链路打通) 新增 "llm-root" 对账类型(= root + 用 LLM 提取编排规程),贯穿审计全链路: - audit-skilleval 路由:新增 llm-root kind(兼容 extract:"llm" 参数),llm-root 走 LLM 提取、否则走确定性提取;声明缺失时报针对性错误;safeName 区分 "llm-workflow" / "main-agent-workflow" - skill-audit-job:AuditKind 扩展含 llm-root;新增 startedAt 时间戳供前端计算已耗时;终态统一维护 startedAt - SkillAuditTab:新增 LLM_WORKFLOW_TARGET 与确定性 root 目标并排,支持对比;root/llm-root badge 同色 - SkillDetail:新增「提取」按钮,点击触发 LLM 提取 + 前端轮询;模块级缓存切 tab 不重取、切 session 才重取 - AuditBoardTab:透传 llm-root 类型 ### 3. 会话视图 HTML 导出(export-view) 将已渲染的 insight 会话视图打成单个自包含 HTML,离线可看、可交互展开,1:1 复刻 DOM 快照并内嵌全部依赖数据: - src/export-view/entry.tsx:bundle 入口,挂载 SessionDetailPage;fetch 拦截器按全 URL(per-参数端点)与 path(核心端点)匹配返回内嵌数据;EventSource/SSE no-op 避免 file:// 安全错误;React 19 use() 用 fulfilled thenable 同步返回避免无 Suspense 边界时崩溃;迁移 sessionStorage 的 skill 对账结果供 hydrate 直接展示 - src/export-view/shims/next-navigation.ts:next/navigation shim 去路由依赖 - scripts/build-export-view.mjs:esbuild 打包,@/ 别名解析、next/navigation 替换 - src/app/session/[taskId]/page.tsx:captureStylesheets 收集样式、gatherExportData 预取所有 /api/observe/* 端点 + sessionStorage 对账结果,输出自包含 HTML - start.sh 启动时自动 npm run build:export-view 构建嵌入式 bundle(失败仅告警不阻断) ### 4. agent .md 独立实例 SkillDetail 中 agent .md 全文改用独立 useSkillContent 实例(scAgent),与 skill SKILL.md(session 注入)分桶,避免同名 skill/agent 互相覆盖。 ## 二、改进 ### 审计进度可视化 - skill-eval-runner:解析 5 个 LLM 阶段(精筛/headline/条件性/禁令/步骤)按真实耗时分布加权(预处理 0→15%、判定 15→95%、完成 100%),多 transcript 按 k/N 缩放;最低 5% 初始值避免启动间隙显示 0% - SkillAuditTab 进度条:ease-out 平滑插值,目标只增不减(防退回),修 remount 后退回 0% 的 bug;运行中每秒刷新耗时计时器 ## 三、文档 - 新增 docs/setup-windows.md:Windows 原生环境零基础搭建指南(20-30 分钟) - 新增 docs/setup-wsl.md:WSL 环境搭建指南 ## 四、其他 - 版本号 v1.67 → v1.72 - package.json 新增 build:export-view 脚本;.gitignore 忽略 /public/export-view.js 构建产物 - start.bat 镜像 start.sh 的 smart-agent 后台启动逻辑 - 补齐强制跟踪 package-lock.json、docs/dev-log.md、docs/report.md ## 测试 全部变更基于上游跟踪文件集,smart-agent 既有测试(11 passed / 20 skipped)保持通过,未引入回归。 See merge request: cann/cannbot-skills!812 | 3 天前 | |
[feat]cannbot-insight tool Co-authored-by: guanxinghua<guanxinghua@huawei.com> # message auto-generated for no-merge-commit merge: !521 merge merge-cannbot-insight into master [feat]cannbot-insight tool Created-by: guanxinghua Commit-by: guanxinghua Merged-by: cann-robot Description: 需求@功能描述: https://gitcode.com/cann/cannbot-skills/issues/377 See merge request: cann/cannbot-skills!521 | 1 个月前 | |
[feat]cannbot-insight tool Co-authored-by: guanxinghua<guanxinghua@huawei.com> # message auto-generated for no-merge-commit merge: !521 merge merge-cannbot-insight into master [feat]cannbot-insight tool Created-by: guanxinghua Commit-by: guanxinghua Merged-by: cann-robot Description: 需求@功能描述: https://gitcode.com/cann/cannbot-skills/issues/377 See merge request: cann/cannbot-skills!521 | 1 个月前 | |
feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !812 merge feature/cannbot-insight-update into master feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 本次更新将 cannbot-insight 由 v1.67 升级至 v1.72,围绕"主 agent 编排规程审计"与"会话视图离线导出"两条主线新增能力,并完善审计进度可视化与部署文档。共 10 个提交,按依赖顺序组织。 ## 一、新增功能 ### 1. LLM 编排规程提取(llm-workflow-extract) 在确定性提取(recoverWorkflowDeclaration)之外,新增基于 LLM 的编排规程提取能力,二者独立并行,便于交叉对比: - 确定性:从 DB 固定字段恢复原文(Skill invoke 的 <skill_content> / Read 返回 / turn0 注入) - LLM:读取 session 行为(dispatch 动作之前的主 agent turns),spawn claude CLI 由 LLM 总结编排规程 md,覆盖确定性取不到的场景 实现要点: - 新增 src/lib/llm-workflow-extract.ts:读取 dispatch 前 turns(无 dispatch 取前 10 个),构造 prompt 调 claude CLI(5min 超时),输出 source="llm-extract" 的规程 md;模块级非阻塞任务缓存(getOrStartLlmExtract),GET 端点立即返回不阻塞 HTTP,前端轮询;失败缓存可重试 - 新增 GET /api/observe/session/llm-workflow-extract 端点 - 截断策略:turn0 3000 字、assistant 1000 字、skill_body 20000 字、read_body 15000 字 ### 2. llm-root 对账 kind(全链路打通) 新增 "llm-root" 对账类型(= root + 用 LLM 提取编排规程),贯穿审计全链路: - audit-skilleval 路由:新增 llm-root kind(兼容 extract:"llm" 参数),llm-root 走 LLM 提取、否则走确定性提取;声明缺失时报针对性错误;safeName 区分 "llm-workflow" / "main-agent-workflow" - skill-audit-job:AuditKind 扩展含 llm-root;新增 startedAt 时间戳供前端计算已耗时;终态统一维护 startedAt - SkillAuditTab:新增 LLM_WORKFLOW_TARGET 与确定性 root 目标并排,支持对比;root/llm-root badge 同色 - SkillDetail:新增「提取」按钮,点击触发 LLM 提取 + 前端轮询;模块级缓存切 tab 不重取、切 session 才重取 - AuditBoardTab:透传 llm-root 类型 ### 3. 会话视图 HTML 导出(export-view) 将已渲染的 insight 会话视图打成单个自包含 HTML,离线可看、可交互展开,1:1 复刻 DOM 快照并内嵌全部依赖数据: - src/export-view/entry.tsx:bundle 入口,挂载 SessionDetailPage;fetch 拦截器按全 URL(per-参数端点)与 path(核心端点)匹配返回内嵌数据;EventSource/SSE no-op 避免 file:// 安全错误;React 19 use() 用 fulfilled thenable 同步返回避免无 Suspense 边界时崩溃;迁移 sessionStorage 的 skill 对账结果供 hydrate 直接展示 - src/export-view/shims/next-navigation.ts:next/navigation shim 去路由依赖 - scripts/build-export-view.mjs:esbuild 打包,@/ 别名解析、next/navigation 替换 - src/app/session/[taskId]/page.tsx:captureStylesheets 收集样式、gatherExportData 预取所有 /api/observe/* 端点 + sessionStorage 对账结果,输出自包含 HTML - start.sh 启动时自动 npm run build:export-view 构建嵌入式 bundle(失败仅告警不阻断) ### 4. agent .md 独立实例 SkillDetail 中 agent .md 全文改用独立 useSkillContent 实例(scAgent),与 skill SKILL.md(session 注入)分桶,避免同名 skill/agent 互相覆盖。 ## 二、改进 ### 审计进度可视化 - skill-eval-runner:解析 5 个 LLM 阶段(精筛/headline/条件性/禁令/步骤)按真实耗时分布加权(预处理 0→15%、判定 15→95%、完成 100%),多 transcript 按 k/N 缩放;最低 5% 初始值避免启动间隙显示 0% - SkillAuditTab 进度条:ease-out 平滑插值,目标只增不减(防退回),修 remount 后退回 0% 的 bug;运行中每秒刷新耗时计时器 ## 三、文档 - 新增 docs/setup-windows.md:Windows 原生环境零基础搭建指南(20-30 分钟) - 新增 docs/setup-wsl.md:WSL 环境搭建指南 ## 四、其他 - 版本号 v1.67 → v1.72 - package.json 新增 build:export-view 脚本;.gitignore 忽略 /public/export-view.js 构建产物 - start.bat 镜像 start.sh 的 smart-agent 后台启动逻辑 - 补齐强制跟踪 package-lock.json、docs/dev-log.md、docs/report.md ## 测试 全部变更基于上游跟踪文件集,smart-agent 既有测试(11 passed / 20 skipped)保持通过,未引入回归。 See merge request: cann/cannbot-skills!812 | 3 天前 | |
feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !812 merge feature/cannbot-insight-update into master feat(cannbot-insight): v1.67→v1.72 新增 LLM 编排规程提取、会话视图 HTML 导出与审计进度增强 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 本次更新将 cannbot-insight 由 v1.67 升级至 v1.72,围绕"主 agent 编排规程审计"与"会话视图离线导出"两条主线新增能力,并完善审计进度可视化与部署文档。共 10 个提交,按依赖顺序组织。 ## 一、新增功能 ### 1. LLM 编排规程提取(llm-workflow-extract) 在确定性提取(recoverWorkflowDeclaration)之外,新增基于 LLM 的编排规程提取能力,二者独立并行,便于交叉对比: - 确定性:从 DB 固定字段恢复原文(Skill invoke 的 <skill_content> / Read 返回 / turn0 注入) - LLM:读取 session 行为(dispatch 动作之前的主 agent turns),spawn claude CLI 由 LLM 总结编排规程 md,覆盖确定性取不到的场景 实现要点: - 新增 src/lib/llm-workflow-extract.ts:读取 dispatch 前 turns(无 dispatch 取前 10 个),构造 prompt 调 claude CLI(5min 超时),输出 source="llm-extract" 的规程 md;模块级非阻塞任务缓存(getOrStartLlmExtract),GET 端点立即返回不阻塞 HTTP,前端轮询;失败缓存可重试 - 新增 GET /api/observe/session/llm-workflow-extract 端点 - 截断策略:turn0 3000 字、assistant 1000 字、skill_body 20000 字、read_body 15000 字 ### 2. llm-root 对账 kind(全链路打通) 新增 "llm-root" 对账类型(= root + 用 LLM 提取编排规程),贯穿审计全链路: - audit-skilleval 路由:新增 llm-root kind(兼容 extract:"llm" 参数),llm-root 走 LLM 提取、否则走确定性提取;声明缺失时报针对性错误;safeName 区分 "llm-workflow" / "main-agent-workflow" - skill-audit-job:AuditKind 扩展含 llm-root;新增 startedAt 时间戳供前端计算已耗时;终态统一维护 startedAt - SkillAuditTab:新增 LLM_WORKFLOW_TARGET 与确定性 root 目标并排,支持对比;root/llm-root badge 同色 - SkillDetail:新增「提取」按钮,点击触发 LLM 提取 + 前端轮询;模块级缓存切 tab 不重取、切 session 才重取 - AuditBoardTab:透传 llm-root 类型 ### 3. 会话视图 HTML 导出(export-view) 将已渲染的 insight 会话视图打成单个自包含 HTML,离线可看、可交互展开,1:1 复刻 DOM 快照并内嵌全部依赖数据: - src/export-view/entry.tsx:bundle 入口,挂载 SessionDetailPage;fetch 拦截器按全 URL(per-参数端点)与 path(核心端点)匹配返回内嵌数据;EventSource/SSE no-op 避免 file:// 安全错误;React 19 use() 用 fulfilled thenable 同步返回避免无 Suspense 边界时崩溃;迁移 sessionStorage 的 skill 对账结果供 hydrate 直接展示 - src/export-view/shims/next-navigation.ts:next/navigation shim 去路由依赖 - scripts/build-export-view.mjs:esbuild 打包,@/ 别名解析、next/navigation 替换 - src/app/session/[taskId]/page.tsx:captureStylesheets 收集样式、gatherExportData 预取所有 /api/observe/* 端点 + sessionStorage 对账结果,输出自包含 HTML - start.sh 启动时自动 npm run build:export-view 构建嵌入式 bundle(失败仅告警不阻断) ### 4. agent .md 独立实例 SkillDetail 中 agent .md 全文改用独立 useSkillContent 实例(scAgent),与 skill SKILL.md(session 注入)分桶,避免同名 skill/agent 互相覆盖。 ## 二、改进 ### 审计进度可视化 - skill-eval-runner:解析 5 个 LLM 阶段(精筛/headline/条件性/禁令/步骤)按真实耗时分布加权(预处理 0→15%、判定 15→95%、完成 100%),多 transcript 按 k/N 缩放;最低 5% 初始值避免启动间隙显示 0% - SkillAuditTab 进度条:ease-out 平滑插值,目标只增不减(防退回),修 remount 后退回 0% 的 bug;运行中每秒刷新耗时计时器 ## 三、文档 - 新增 docs/setup-windows.md:Windows 原生环境零基础搭建指南(20-30 分钟) - 新增 docs/setup-wsl.md:WSL 环境搭建指南 ## 四、其他 - 版本号 v1.67 → v1.72 - package.json 新增 build:export-view 脚本;.gitignore 忽略 /public/export-view.js 构建产物 - start.bat 镜像 start.sh 的 smart-agent 后台启动逻辑 - 补齐强制跟踪 package-lock.json、docs/dev-log.md、docs/report.md ## 测试 全部变更基于上游跟踪文件集,smart-agent 既有测试(11 passed / 20 skipped)保持通过,未引入回归。 See merge request: cann/cannbot-skills!812 | 3 天前 | |
feat(cannbot-insight): 同步 v1.51(v1.03 → v1.51) Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !731 merge fix/CleanCode into master feat(cannbot-insight): 同步 v1.51(v1.03 → v1.51) Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 cannbot-insight 功能更新,版本 v1.03 → v1.48。本次新增七大功能,新增 114 个文件、修改 48 个、移除 4 个(旧 Workflow/AI Workflow tab)。主线为 性能可观测(Performance 全景)、文件循迹重建、会话对齐,Audit 工作流审计作为 preview 先行合入承接后续迭代。 一、Performance 性能全景 全新的独立 Performance tab,一站式 session 级性能与成本可观测。所有数据直读 DB、零 LLM 依赖——确定性、可重复、即开即用,不受审计结果波动影响。 PerfPanorama 性能全景三大面板: 1. perf top — 子代理耗时排行(Linux top 风格) - 可排序表格(TURNS / TIME / TOKENS / AVG·T),活跃列箭头指示,列宽稳定不偏移 - 占比条形图:当前值占总量比例,条色随排序键切换(TIME 红 / TOKENS 蓝 / TURNS 灰),一眼锁定最耗资源的子代理 - 点击下钻:展开该子代理 turn 列表(§N + 耗时 + tokens + tools + model),默认 Top 10、一键展开全部 2. Token 成本分析 — 精准定位优化空间 - Cache 节省量卡片:命中缓存(绿)vs 未命中冷输入(红)的量与占比,直指 compaction 后重复输入的浪费 - 每轮 Cache 命中率趋势线(SVG 折线 + 面积渐变),compaction 事件自动标注(命中率骤降点),低命中轮次(<50%)标红 - 与 perf top 联动:下钻 turn 行增加 cache 命中率列,低命中高亮,形成「定位问题 turn → 跳转排查」闭环 3. Top 工具调用 — 耗时瓶颈定位 - 全 session 工具按 durationMs 降序 Top 10,水平条形图,标签 toolName §turnIndex - 点击直接跳转 turns tab 对应 turn 净耗时归因(关键能力):主 Agent 耗时自动扣除并行子代理等待时间(max(bridge.subagentLatencyMs)),还原主 Agent 真实工作时间,避免被子代理壁钟时间虚高——这是判断「主 Agent 是真慢还是在等子代理」的核心依据。 7 张总览卡片:主 Agent 耗时(净) / 子代理耗时 / 总 Tokens / Cache 命中率 / 主 Agent turns / 子代理 sessions / 工具调用,响应式 grid(2/3/6 列)。 交互与性能:可折叠全景、懒挂载(切 tab 不卸载不 re-fetch)、onJumpToTurn 回调定位。设计文档 docs/performance-tab-design.md。 v1.48 同时完成 perf2→perf 整合,并移除旧 Workflow tab 与 AI Workflow tab(删除 WorkflowAIView.tsx/WorkflowTreeView.tsx/prompts/workflow-analyse.md),其能力由 Performance + Audit 承接。 二、文件循迹重建 - File Content Restore(循迹复卷):每文件行一键按时间戳拼合本会话内 read/write 片段重建全文(后写入者覆盖先前),未被读取行标注 --line N not found --;兼容 claude(N\t)与 opencode(<content> 信封 + N: )两种 Read 格式,支持下载/收起。API GET /api/observe/session/file-restore + 纯函数库 src/lib/file-restore.ts。 - Gather & Rebuild Directory(重编汇册):一键按路径树重建本会话工作目录下全部被读/写文件并打包下载 zip,服务端构建二进制响应(不在页面展开全部内容)。纯函数库 src/lib/zip-store.ts(buildZip/crc32/normalizeZipPath,STORE 无压缩 + UTF-8 文件名标志位兼容 Windows 中文路径)。API GET /api/observe/session/dir-restore。 - Skill Content(SKILL.md 全文):每个 skill 可点击展示/下载全文,优先取原生 Skill 工具注入的 resultJson(剥前导),回退 Read of */SKILL.md(剥行号),多次加载取最长版本。API GET /api/observe/session/skill-content。 三、Session Compare — turn 对齐 - banded-DP turn 对齐算法:两个 session 逐 turn 对齐,Web Worker 后台计算不阻塞 UI,ComparePanorama 全景对比 token/费用/耗时/工具调用/subagent。含正确性与性能基准(tests/compare-perf/:banded-dp-correctness、turn-align.bench、api-n+1-elimination、render-smoke)。新增 src/lib/compare/turn-align.ts/turn-align.worker.ts。 四、增量刷新 Auto-refresh 探测源 DB 变化后增量导入(auto-refresh-probe.ts),支持 SSE 流式进度推送,适配 Claude Code JSONL 与 opencode DB。新增 API /api/observe/auto-refresh、/api/observe/auto-refresh-stream,e2e fixture 覆盖 append-turn/idle-assistant/streaming 场景。 五、CLI 与配置 - CLI export-md:导出 session 为 Markdown(与 Web UI 导出/audit step 1 同源输出),供轨迹分析器消费。src/cli/commands/export-md.ts。 - AI Provider 配置:settings 页面 + AIProviderConfigPanel,为审计配置 OpenAI 兼容 provider(baseUrl/apiKey/model)。 - agent-md-scan / agent-version:扫描本地 agent .md、提取版本号。 六、Audit 审计(持续完善中) - Audit tab 拆两个子 tab:Workflow audit(v1-v4,preview)+ Skill audit(接入 skill-eval 对账「真实执行 vs SKILL.md」:五态 verdict、可过滤 findings、by-instruction 表、实时进度条流式百分比)。 - Session Trajectory Analyzer:自建轻量 agent,正则预处理 + 有界 LLM 循环(≤3 轮)分析 10 万+ 行轨迹 MD,无需 Claude Code;Python 版 smart-agent/ + TS 版双端对齐,HTTP 服务 + Next.js 代理路由,Audit tab 可切 v1(TS)/v2(Python)。 - Audit 结果 JSON 导入/导出(audit-export.ts)。 七、性能优化 - 导入流水线 create → createMany + $transaction,单 session 35-100x 加速(23.5s→1.6s),batch 分批(500 条/批)防 SQLite 变量溢出 - opencode-db 适配器 N+1 消除:listSessions ~200+ → 5-6 次批量查询;readSession N×3 → 3 次 - 大 session 事务超时 5s → 60s,解决 "Transaction already closed" 八、移除项 移除 替代 Workflow tab(WorkflowAIView.tsx/WorkflowTreeView.tsx) Performance tab + Audit tab prompts/workflow-analyse.md session-trajectory-analyse.md + trajectory-compress.md tests/start-script.test.ts tests/start-sh-validation.test.ts 九、测试覆盖 新增 45 个测试文件,覆盖上述能力:zip-store(11)、skill-content(20)、file-restore(26)、dir-restore-api、skill-eval-audit、audit-job/audit-export、turn-align/-hard/-stress/-manual、compare-perf/*、claude-autorefresh*、agent-md-scan、trajectory-analyzer、cannbay-archive、upload-session-api、start-sh-validation 等。 同步内容为 skills-dev main 已提交状态,未带入开发仓未提交改动;package-lock.json 按 .gitignore 约定不入库;版本号 VERSION = "1.48"。 关联的Issue <!-- 本次为版本同步发布,暂无对应 Issue。cannbot-insight 大版本跳跃建议在本 PR 评审期间于 Discussions 同步说明。 --> 测试 - cannbot-insight 单元/集成测试:cd plugins-community/cannbot-insight && npm install && npm test(vitest,新增 45 个测试文件) - 仓库级 CI 闸门:./tests/gate_check.sh、./tests/run-tests.sh --fast - 4 个抽样文件 hash 已校验与 skills-dev main blob 一致,确保未带入未提交改动 文档更新 - README.md:Features 列表新增 Performance / 循迹复卷 / 重编汇册 / SKILL.md 全文 / Skill audit 描述 - CHANGELOG.md:补齐 v1.37-v1.40 条目 - 新增设计文档:docs/architecture.md、docs/performance-tab-design.md、docs/audit-skill-subtab-design.md、docs/session-trajectory-analyzer-design.md - 新增 smart-agent/README.md See merge request: cann/cannbot-skills!731 | 13 天前 | |
feat(cannbot-insight): 同步 v1.51(v1.03 → v1.51) Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !731 merge fix/CleanCode into master feat(cannbot-insight): 同步 v1.51(v1.03 → v1.51) Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 cannbot-insight 功能更新,版本 v1.03 → v1.48。本次新增七大功能,新增 114 个文件、修改 48 个、移除 4 个(旧 Workflow/AI Workflow tab)。主线为 性能可观测(Performance 全景)、文件循迹重建、会话对齐,Audit 工作流审计作为 preview 先行合入承接后续迭代。 一、Performance 性能全景 全新的独立 Performance tab,一站式 session 级性能与成本可观测。所有数据直读 DB、零 LLM 依赖——确定性、可重复、即开即用,不受审计结果波动影响。 PerfPanorama 性能全景三大面板: 1. perf top — 子代理耗时排行(Linux top 风格) - 可排序表格(TURNS / TIME / TOKENS / AVG·T),活跃列箭头指示,列宽稳定不偏移 - 占比条形图:当前值占总量比例,条色随排序键切换(TIME 红 / TOKENS 蓝 / TURNS 灰),一眼锁定最耗资源的子代理 - 点击下钻:展开该子代理 turn 列表(§N + 耗时 + tokens + tools + model),默认 Top 10、一键展开全部 2. Token 成本分析 — 精准定位优化空间 - Cache 节省量卡片:命中缓存(绿)vs 未命中冷输入(红)的量与占比,直指 compaction 后重复输入的浪费 - 每轮 Cache 命中率趋势线(SVG 折线 + 面积渐变),compaction 事件自动标注(命中率骤降点),低命中轮次(<50%)标红 - 与 perf top 联动:下钻 turn 行增加 cache 命中率列,低命中高亮,形成「定位问题 turn → 跳转排查」闭环 3. Top 工具调用 — 耗时瓶颈定位 - 全 session 工具按 durationMs 降序 Top 10,水平条形图,标签 toolName §turnIndex - 点击直接跳转 turns tab 对应 turn 净耗时归因(关键能力):主 Agent 耗时自动扣除并行子代理等待时间(max(bridge.subagentLatencyMs)),还原主 Agent 真实工作时间,避免被子代理壁钟时间虚高——这是判断「主 Agent 是真慢还是在等子代理」的核心依据。 7 张总览卡片:主 Agent 耗时(净) / 子代理耗时 / 总 Tokens / Cache 命中率 / 主 Agent turns / 子代理 sessions / 工具调用,响应式 grid(2/3/6 列)。 交互与性能:可折叠全景、懒挂载(切 tab 不卸载不 re-fetch)、onJumpToTurn 回调定位。设计文档 docs/performance-tab-design.md。 v1.48 同时完成 perf2→perf 整合,并移除旧 Workflow tab 与 AI Workflow tab(删除 WorkflowAIView.tsx/WorkflowTreeView.tsx/prompts/workflow-analyse.md),其能力由 Performance + Audit 承接。 二、文件循迹重建 - File Content Restore(循迹复卷):每文件行一键按时间戳拼合本会话内 read/write 片段重建全文(后写入者覆盖先前),未被读取行标注 --line N not found --;兼容 claude(N\t)与 opencode(<content> 信封 + N: )两种 Read 格式,支持下载/收起。API GET /api/observe/session/file-restore + 纯函数库 src/lib/file-restore.ts。 - Gather & Rebuild Directory(重编汇册):一键按路径树重建本会话工作目录下全部被读/写文件并打包下载 zip,服务端构建二进制响应(不在页面展开全部内容)。纯函数库 src/lib/zip-store.ts(buildZip/crc32/normalizeZipPath,STORE 无压缩 + UTF-8 文件名标志位兼容 Windows 中文路径)。API GET /api/observe/session/dir-restore。 - Skill Content(SKILL.md 全文):每个 skill 可点击展示/下载全文,优先取原生 Skill 工具注入的 resultJson(剥前导),回退 Read of */SKILL.md(剥行号),多次加载取最长版本。API GET /api/observe/session/skill-content。 三、Session Compare — turn 对齐 - banded-DP turn 对齐算法:两个 session 逐 turn 对齐,Web Worker 后台计算不阻塞 UI,ComparePanorama 全景对比 token/费用/耗时/工具调用/subagent。含正确性与性能基准(tests/compare-perf/:banded-dp-correctness、turn-align.bench、api-n+1-elimination、render-smoke)。新增 src/lib/compare/turn-align.ts/turn-align.worker.ts。 四、增量刷新 Auto-refresh 探测源 DB 变化后增量导入(auto-refresh-probe.ts),支持 SSE 流式进度推送,适配 Claude Code JSONL 与 opencode DB。新增 API /api/observe/auto-refresh、/api/observe/auto-refresh-stream,e2e fixture 覆盖 append-turn/idle-assistant/streaming 场景。 五、CLI 与配置 - CLI export-md:导出 session 为 Markdown(与 Web UI 导出/audit step 1 同源输出),供轨迹分析器消费。src/cli/commands/export-md.ts。 - AI Provider 配置:settings 页面 + AIProviderConfigPanel,为审计配置 OpenAI 兼容 provider(baseUrl/apiKey/model)。 - agent-md-scan / agent-version:扫描本地 agent .md、提取版本号。 六、Audit 审计(持续完善中) - Audit tab 拆两个子 tab:Workflow audit(v1-v4,preview)+ Skill audit(接入 skill-eval 对账「真实执行 vs SKILL.md」:五态 verdict、可过滤 findings、by-instruction 表、实时进度条流式百分比)。 - Session Trajectory Analyzer:自建轻量 agent,正则预处理 + 有界 LLM 循环(≤3 轮)分析 10 万+ 行轨迹 MD,无需 Claude Code;Python 版 smart-agent/ + TS 版双端对齐,HTTP 服务 + Next.js 代理路由,Audit tab 可切 v1(TS)/v2(Python)。 - Audit 结果 JSON 导入/导出(audit-export.ts)。 七、性能优化 - 导入流水线 create → createMany + $transaction,单 session 35-100x 加速(23.5s→1.6s),batch 分批(500 条/批)防 SQLite 变量溢出 - opencode-db 适配器 N+1 消除:listSessions ~200+ → 5-6 次批量查询;readSession N×3 → 3 次 - 大 session 事务超时 5s → 60s,解决 "Transaction already closed" 八、移除项 移除 替代 Workflow tab(WorkflowAIView.tsx/WorkflowTreeView.tsx) Performance tab + Audit tab prompts/workflow-analyse.md session-trajectory-analyse.md + trajectory-compress.md tests/start-script.test.ts tests/start-sh-validation.test.ts 九、测试覆盖 新增 45 个测试文件,覆盖上述能力:zip-store(11)、skill-content(20)、file-restore(26)、dir-restore-api、skill-eval-audit、audit-job/audit-export、turn-align/-hard/-stress/-manual、compare-perf/*、claude-autorefresh*、agent-md-scan、trajectory-analyzer、cannbay-archive、upload-session-api、start-sh-validation 等。 同步内容为 skills-dev main 已提交状态,未带入开发仓未提交改动;package-lock.json 按 .gitignore 约定不入库;版本号 VERSION = "1.48"。 关联的Issue <!-- 本次为版本同步发布,暂无对应 Issue。cannbot-insight 大版本跳跃建议在本 PR 评审期间于 Discussions 同步说明。 --> 测试 - cannbot-insight 单元/集成测试:cd plugins-community/cannbot-insight && npm install && npm test(vitest,新增 45 个测试文件) - 仓库级 CI 闸门:./tests/gate_check.sh、./tests/run-tests.sh --fast - 4 个抽样文件 hash 已校验与 skills-dev main blob 一致,确保未带入未提交改动 文档更新 - README.md:Features 列表新增 Performance / 循迹复卷 / 重编汇册 / SKILL.md 全文 / Skill audit 描述 - CHANGELOG.md:补齐 v1.37-v1.40 条目 - 新增设计文档:docs/architecture.md、docs/performance-tab-design.md、docs/audit-skill-subtab-design.md、docs/session-trajectory-analyzer-design.md - 新增 smart-agent/README.md See merge request: cann/cannbot-skills!731 | 13 天前 | |
feat(cannbot-insight): 同步 v1.51(v1.03 → v1.51) Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !731 merge fix/CleanCode into master feat(cannbot-insight): 同步 v1.51(v1.03 → v1.51) Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 描述 cannbot-insight 功能更新,版本 v1.03 → v1.48。本次新增七大功能,新增 114 个文件、修改 48 个、移除 4 个(旧 Workflow/AI Workflow tab)。主线为 性能可观测(Performance 全景)、文件循迹重建、会话对齐,Audit 工作流审计作为 preview 先行合入承接后续迭代。 一、Performance 性能全景 全新的独立 Performance tab,一站式 session 级性能与成本可观测。所有数据直读 DB、零 LLM 依赖——确定性、可重复、即开即用,不受审计结果波动影响。 PerfPanorama 性能全景三大面板: 1. perf top — 子代理耗时排行(Linux top 风格) - 可排序表格(TURNS / TIME / TOKENS / AVG·T),活跃列箭头指示,列宽稳定不偏移 - 占比条形图:当前值占总量比例,条色随排序键切换(TIME 红 / TOKENS 蓝 / TURNS 灰),一眼锁定最耗资源的子代理 - 点击下钻:展开该子代理 turn 列表(§N + 耗时 + tokens + tools + model),默认 Top 10、一键展开全部 2. Token 成本分析 — 精准定位优化空间 - Cache 节省量卡片:命中缓存(绿)vs 未命中冷输入(红)的量与占比,直指 compaction 后重复输入的浪费 - 每轮 Cache 命中率趋势线(SVG 折线 + 面积渐变),compaction 事件自动标注(命中率骤降点),低命中轮次(<50%)标红 - 与 perf top 联动:下钻 turn 行增加 cache 命中率列,低命中高亮,形成「定位问题 turn → 跳转排查」闭环 3. Top 工具调用 — 耗时瓶颈定位 - 全 session 工具按 durationMs 降序 Top 10,水平条形图,标签 toolName §turnIndex - 点击直接跳转 turns tab 对应 turn 净耗时归因(关键能力):主 Agent 耗时自动扣除并行子代理等待时间(max(bridge.subagentLatencyMs)),还原主 Agent 真实工作时间,避免被子代理壁钟时间虚高——这是判断「主 Agent 是真慢还是在等子代理」的核心依据。 7 张总览卡片:主 Agent 耗时(净) / 子代理耗时 / 总 Tokens / Cache 命中率 / 主 Agent turns / 子代理 sessions / 工具调用,响应式 grid(2/3/6 列)。 交互与性能:可折叠全景、懒挂载(切 tab 不卸载不 re-fetch)、onJumpToTurn 回调定位。设计文档 docs/performance-tab-design.md。 v1.48 同时完成 perf2→perf 整合,并移除旧 Workflow tab 与 AI Workflow tab(删除 WorkflowAIView.tsx/WorkflowTreeView.tsx/prompts/workflow-analyse.md),其能力由 Performance + Audit 承接。 二、文件循迹重建 - File Content Restore(循迹复卷):每文件行一键按时间戳拼合本会话内 read/write 片段重建全文(后写入者覆盖先前),未被读取行标注 --line N not found --;兼容 claude(N\t)与 opencode(<content> 信封 + N: )两种 Read 格式,支持下载/收起。API GET /api/observe/session/file-restore + 纯函数库 src/lib/file-restore.ts。 - Gather & Rebuild Directory(重编汇册):一键按路径树重建本会话工作目录下全部被读/写文件并打包下载 zip,服务端构建二进制响应(不在页面展开全部内容)。纯函数库 src/lib/zip-store.ts(buildZip/crc32/normalizeZipPath,STORE 无压缩 + UTF-8 文件名标志位兼容 Windows 中文路径)。API GET /api/observe/session/dir-restore。 - Skill Content(SKILL.md 全文):每个 skill 可点击展示/下载全文,优先取原生 Skill 工具注入的 resultJson(剥前导),回退 Read of */SKILL.md(剥行号),多次加载取最长版本。API GET /api/observe/session/skill-content。 三、Session Compare — turn 对齐 - banded-DP turn 对齐算法:两个 session 逐 turn 对齐,Web Worker 后台计算不阻塞 UI,ComparePanorama 全景对比 token/费用/耗时/工具调用/subagent。含正确性与性能基准(tests/compare-perf/:banded-dp-correctness、turn-align.bench、api-n+1-elimination、render-smoke)。新增 src/lib/compare/turn-align.ts/turn-align.worker.ts。 四、增量刷新 Auto-refresh 探测源 DB 变化后增量导入(auto-refresh-probe.ts),支持 SSE 流式进度推送,适配 Claude Code JSONL 与 opencode DB。新增 API /api/observe/auto-refresh、/api/observe/auto-refresh-stream,e2e fixture 覆盖 append-turn/idle-assistant/streaming 场景。 五、CLI 与配置 - CLI export-md:导出 session 为 Markdown(与 Web UI 导出/audit step 1 同源输出),供轨迹分析器消费。src/cli/commands/export-md.ts。 - AI Provider 配置:settings 页面 + AIProviderConfigPanel,为审计配置 OpenAI 兼容 provider(baseUrl/apiKey/model)。 - agent-md-scan / agent-version:扫描本地 agent .md、提取版本号。 六、Audit 审计(持续完善中) - Audit tab 拆两个子 tab:Workflow audit(v1-v4,preview)+ Skill audit(接入 skill-eval 对账「真实执行 vs SKILL.md」:五态 verdict、可过滤 findings、by-instruction 表、实时进度条流式百分比)。 - Session Trajectory Analyzer:自建轻量 agent,正则预处理 + 有界 LLM 循环(≤3 轮)分析 10 万+ 行轨迹 MD,无需 Claude Code;Python 版 smart-agent/ + TS 版双端对齐,HTTP 服务 + Next.js 代理路由,Audit tab 可切 v1(TS)/v2(Python)。 - Audit 结果 JSON 导入/导出(audit-export.ts)。 七、性能优化 - 导入流水线 create → createMany + $transaction,单 session 35-100x 加速(23.5s→1.6s),batch 分批(500 条/批)防 SQLite 变量溢出 - opencode-db 适配器 N+1 消除:listSessions ~200+ → 5-6 次批量查询;readSession N×3 → 3 次 - 大 session 事务超时 5s → 60s,解决 "Transaction already closed" 八、移除项 移除 替代 Workflow tab(WorkflowAIView.tsx/WorkflowTreeView.tsx) Performance tab + Audit tab prompts/workflow-analyse.md session-trajectory-analyse.md + trajectory-compress.md tests/start-script.test.ts tests/start-sh-validation.test.ts 九、测试覆盖 新增 45 个测试文件,覆盖上述能力:zip-store(11)、skill-content(20)、file-restore(26)、dir-restore-api、skill-eval-audit、audit-job/audit-export、turn-align/-hard/-stress/-manual、compare-perf/*、claude-autorefresh*、agent-md-scan、trajectory-analyzer、cannbay-archive、upload-session-api、start-sh-validation 等。 同步内容为 skills-dev main 已提交状态,未带入开发仓未提交改动;package-lock.json 按 .gitignore 约定不入库;版本号 VERSION = "1.48"。 关联的Issue <!-- 本次为版本同步发布,暂无对应 Issue。cannbot-insight 大版本跳跃建议在本 PR 评审期间于 Discussions 同步说明。 --> 测试 - cannbot-insight 单元/集成测试:cd plugins-community/cannbot-insight && npm install && npm test(vitest,新增 45 个测试文件) - 仓库级 CI 闸门:./tests/gate_check.sh、./tests/run-tests.sh --fast - 4 个抽样文件 hash 已校验与 skills-dev main blob 一致,确保未带入未提交改动 文档更新 - README.md:Features 列表新增 Performance / 循迹复卷 / 重编汇册 / SKILL.md 全文 / Skill audit 描述 - CHANGELOG.md:补齐 v1.37-v1.40 条目 - 新增设计文档:docs/architecture.md、docs/performance-tab-design.md、docs/audit-skill-subtab-design.md、docs/session-trajectory-analyzer-design.md - 新增 smart-agent/README.md See merge request: cann/cannbot-skills!731 | 13 天前 |
CANNBot-Insight
LLM 编码 Agent 的 Session 级可观测工具。辅助长上下文分析、模型幻觉问题治理,以及 Agent Session 中上下文窗口增长的监控与优化。
功能介绍
导入 opencode.db 或 Claude Code JSONL 日志,逐轮分析 Agent Session:
- Token 与费用 — 每轮 token 五项拆解柱状图,按模型上下文窗口显示占比;根据使用量和模型定价估算费用
- 上下文增长 — 按 subagent session 展示上下文增长曲线;动画回放 context window 变化过程,含 subagent 生成/消亡标记;
/compact压缩标记与上下文下降标注,支持多次压缩 - 上下文治理 — 查看 LLM 输入上下文组成:可见消息 + 稳定的 "System (hidden)" 开销;输入窗口在每个
/compact边界正确截断 - Subagent 追踪 — 识别 subagent session 与 dispatch→response 链路;subagent turn 在 Turns 时间线内联展示(带徽章),数量显示在 Overview 卡片
- Turn 快速跳转 — 在 Turns 时间线输入 turn 编号(如
#459)回车即可直达该轮次并滚动到视图;subagent turn 自动展开祖先 dispatch lane - Skill 事件 — 跟踪每轮 skill load/invoke/use 事件
- Skill 全文(SKILL.md) — Skill Summary 与 Skills per Agent 每个 skill 均可点击,取原生 Skill 工具注入内容或 SKILL.md 读取结果重建全文,支持下载
- 概念追踪 — 跨轮次关键词搜索,查看传播链路和 DAG 图;搜索结果支持按 source(用户/模型/子agent 等)、thinking、tools 二次过滤;点击结果的 View Turn 跳转到 Turns tab,自动展开并高亮关键词至匹配位置(内容 / 工具参数 / 结果 / 错误)
- 文件读取分析 — 分析文件读取冗余,检测重复和不必要读取
- 文件内容复卷(循迹复卷) — 每个文件行一个按钮,按时间戳逐行重建该文件全部内容(最后写入胜),未采集到的行标注
--line N not found --,支持下载 - 重编汇册(Gather & Rebuild Directory) — 一键按时间戳逐行重建本会话工作目录下全部被读/写文件,保留路径树;打包下载 zip(纯 JS STORE,无第三方依赖)
- Session 对比 — 对比两个 session 的 token、费用、耗时、工具调用和 subagent
- Audit — 粘贴或从文件导入 workflow 分析 JSON(由 Audit 提示词 + Claude Code 产出),渲染实际流程框图 + 每节点问题、G/S 八维 skill 质量看板、优化优先级。证据里的
§Nturn 引用可点击跳转到对应 turn;并行分支(同parallelid)渲染为同一行;耗时最长的 3 个节点标红;支持从文件导入 JSON,也可把渲染好的分析导出回文件。生成状态跨 tab 切换不丢失(可恢复)。v4:agent 中心三维度审计(功能完成 / 开发效率 / 开发质量),先确定性提取每个 agent 的输入/输出/信封,再由 LLM 评完成度与质量、效率维度由信封确定性计算,渲染 agent 树。agent 树默认隐藏全部通过的子 agent(勾选开关才显示);跨 agent 问题与优化优先级每项都给出证据(agent:<name> #turn,可点击跳转),审计头部展示本次审计消耗的 token 数。Audit tab 拆两个子 tab:Workflow audit(上述 v1-v4 分析)与 Skill audit——对当前 session 跑 skill-eval 的audit,对账真实执行 vs 每个被调用 skill 的 SKILL.md(不 re-run),以及 vs 每个被 dispatch 的 agent 的.md(从本地AGENTS_SCAN_ROOT扫描,多插件按 session 覆盖率消歧),以及 vs 主 agent 的 workflow 级 SKILL.md(--kind root——切顶层主 agent 作用域审主 agent 编排;主 agent 通常只 dispatch 子 agent、不 invoke skill,故 workflow 声明从 session 首条 user turn 的注入系统提示恢复;仅当首条 user turn 内容 ≥500 字时显示该目标),按 target 出 summary + 原生报告视图(非 iframe):五态 verdict 徽章、findings 可过滤(按 verdict / 类别 / 方法 / 指令或证据文本)、多 transcript 指令级聚合表、按指令可折叠分组(FAIL 优先排序)、verdict/method 图例、保留"在新页打开原始 HTML"逃生口。运行中有实时进度条 + 百分比(解析 skill-eval on_progress 输出);结果跨 tab 切换不丢失;需装skill-eval+claudeCLI;agent 对账需AGENTS_SCAN_ROOTenv(默认自动探测 skills-dev 仓库根)。
方式一:Web UI
需要 Node.js >= 20.x(v18.19.x 无法安装 better-sqlite3 / Prisma 6)。如果有 nvm,start.sh 会自动切换到 Node 20 LTS。
日志文件位置:
- opencode:
~/.local/share/opencode/opencode.db - Claude Code:
~/.claude/projects/<hash>/sessions/<id>.jsonl,也可指定目录自动扫描
Linux系统(Windows系统请使用start.bat代替):
./start.sh # 自动安装 + 迁移 + 启动 Web UI,端口 21025
./start.sh -u # 更新依赖 + 迁移 + 启动 Web UI
./start.sh -f # 清除 .next 缓存,重新编译
浏览器打开 http://localhost:21025。导入日志文件后,点击 session 进入 9 个分析 Tab。
Web UI 还支持:导出 session 为独立 SQLite 或层级 Markdown;上传 session 到 CANNBay(带提交信息对话框)。CANNBay master 最多保留最新 20 个 session(更旧的自动归档到按月命名的 archive-YYYY-MM 分支);上传用持久本地镜像,每次只 fetch 增量。
方式二:CLI 上传 + Web 分析
适用于 SSH 远程服务器、Web IDE 等无浏览器环境。CLI 一步完成导入和上传,之后在 Web UI 上分析。
日志文件位置:
- opencode:
~/.local/share/opencode/opencode.db - Claude Code:
~/.claude/projects/<hash>/sessions/<id>.jsonl,也可指定目录自动扫描
一次性初始化(新环境首次)
cd cannbot-insight
npm install
echo 'DATABASE_URL="file:./dev.db"' > .env
npx prisma generate
npx prisma migrate deploy
约 1 分钟,之后无需重复(除非依赖更新)。CLI 上传命令会自动拉起后端,无需手动跑 start.sh。
上传 Session
opencode:
# 列出可选 session
npx tsx src/cli/index.ts upload --file ~/.local/share/opencode/opencode.db --list
# 指定 session-id 上传(非交互,适合脚本)
npx tsx src/cli/index.ts upload \
--file ~/.local/share/opencode/opencode.db \
--session-id <session-id> \
--description "描述" \
--yes --json
# 交互式选择 session 并填写描述
npx tsx src/cli/index.ts upload --file ~/.local/share/opencode/opencode.db
Claude Code:
# 列出可选 session(指定 projects 目录,自动递归扫描 .jsonl)
npx tsx src/cli/index.ts upload --file ~/.claude/projects/ --list
# 指定 session-id 上传(session-id = .jsonl 文件名,不含扩展名)
npx tsx src/cli/index.ts upload \
--file ~/.claude/projects/ \
--session-id <uuid> \
--description "描述" \
--yes --json
# 也可直接指定单个 .jsonl 文件
npx tsx src/cli/index.ts upload --file ~/.claude/projects/<hash>/<uuid>.jsonl --list
| 参数 | 说明 |
|---|---|
--file <path> |
源路径:opencode .db 文件 / Claude Code .jsonl 文件或目录,源类型自动推断 |
--session-id <id> |
指定上传哪个 session(跳过交互选择) |
--description <text> |
提交描述(跳过交互填写) |
--yes |
跳过确认提示 |
--json |
JSON 输出(非交互,适合脚本) |
--list |
仅列出可选 session,不上传 |
--framework <name> |
框架类型(自动推断:opencode-db → opencode,claude-jsonl → claude-code) |
上传后在 Web UI 上查看分析:导入时点击 CANNBay 按钮,直接从仓库选择 DB 文件导入,无需手动下载。
方式三:零依赖导出 Session DB
从 opencode.db 或 Claude Code JSONL 提取单个 session(含子会话)为独立文件。零依赖——只需 Node.js >= 22(内置 node:sqlite),无需 npm install、无需 Prisma、无需后端。根据 --file 自动识别框架:.db → opencode,.jsonl/目录 → Claude Code。
# 列出可选 session(自动检测源)
node export-db.mjs --list
node export-db.mjs -f ~/.claude/projects/ --list
# 交互式选择 session 并导出
node export-db.mjs
node export-db.mjs -f ~/.claude/projects/
# 指定 session-id 导出
node export-db.mjs -s ses_xxx # opencode
node export-db.mjs -f ~/.claude/projects/ -s <uuid> # Claude Code
# 指定输出路径
node export-db.mjs -s ses_xxx -o ~/my-session.db
node export-db.mjs -f ~/.claude/projects/ -s <uuid> -o ~/my-session.jsonl
# JSON 输出(脚本友好)
node export-db.mjs -s ses_xxx --json
未指定 -o 时,默认输出到脚本同目录下:
- opencode →
dbfile/session_<id>.db - Claude Code →
jsonlfile/<id>.jsonl
导出的文件可通过方式二的 upload --file 命令重新导入 Insight 或上传 CANNBay:
npx tsx src/cli/index.ts upload --file /abs/path/to/session_xxx.db --session-id ses_xxx --yes --json
npx tsx src/cli/index.ts upload --file /abs/path/to/<uuid>.jsonl --session-id <uuid> --yes --json
| 参数 | 说明 |
|---|---|
-f, --file <path> |
源路径(默认自动检测:opencode.db 或 ~/.claude/projects/) |
-s, --session-id <id> |
指定导出哪个 session(跳过交互选择) |
-o, --output <path> |
输出路径(默认 dbfile/ 或 jsonlfile/) |
-l, --list |
仅列出可选 session,不导出 |
-j, --json |
JSON 输出 |
-h, --help |
显示帮助 |