
GitHub: https://github.com/kenn-io/agentsview
Wes McKinney(pandas / Apache Arrow / Ibis 创始人)下场做的「跨 20+ coding agents 的本地优先统一观测层」:一个 Go 二进制覆盖 Claude Code / Codex / Cursor / Gemini CLI 等所有主流 agent 的会话、成本、子代理结构,号称比 ccusage 快 100 倍。
db.Store 硬接口 + 编译期契约 + 三栈 DB mirror),4 个月 22 万行 Go、52 个 release,明显是「主业在做」而非周末练手。~/.claude/、~/.codex/、~/.gemini/ 等不同目录,ccusage / claude-code-transcripts 只解决单一 agent,Langfuse / Helicone 是云端 SaaS,没人同时给「本地优先 + 跨 agent + 索引速度」 这条组合。维度 | 数据 |
|---|---|
GitHub | https://github.com/kenn-io/agentsview |
Star / Fork | 1,586 / 172(4 个月龄,爆发式增长) |
代码行数 | 219,740(Go 77% / TypeScript 15.4% / Svelte 3.4% / Rust 0.8%) |
项目年龄 | 3.7 个月(2026-02-19 首发) |
开发阶段 | 密集开发(v0.32.1,52 个 release,约 2.1 天一个 tag) |
贡献模式 | 明星双核 + 社区(Wes McKinney 79.7% / Marius van Niekerk 9% / 社区 62 人) |
热度定位 | 中等热度快速上升(最近 186 个 star 集中在采样日当天) |
质量评级 | 代码[优秀] 文档[优秀] 测试[充分] CI/CD[完善] |
Wes McKinney 是数据科学领域基础设施级人物:pandas(2008 立项,Python 数据处理事实标准)、Apache Arrow(跨语言列存内存格式)、Ibis(统一 SQL 编译到多后端执行)三个项目的原作者,Apache Parquet PMC 成员,GitHub 16k+ 粉丝。2023 年从 Posit 离职创立 Kenn Software(kenn.io),把公司定位成 "Development and knowledge systems for the agentic era"。在 Arrow 圈的老搭档 Marius van Niekerk 担任次核心贡献者(9% commit)。Wes 决定做 agentsview 不是临时起意——是他在多 agent 工具栈里 dogfooding 多年后,看到「跨 agent 观测层」这个没人填的格子。
当 Anthropic 推出 Claude Code、OpenAI 推出 Codex CLI、Cursor / Gemini CLI / Antigravity 纷纷入场之后,agent 生态从 2 年前的「单一 Claude Code」裂变成 20+ 实现,每个都把 session 散落到私有目录、命名不一致、SQLite / 加密 .pb / JSONL 各异。这时「跨 agent 观测」才成为真问题——再晚 1-2 年窗口可能直接被 IDE 或云 observability 厂商吃掉。
db.Store interface + backendcontract 集中式编译期断言,任何后端遗漏实现都让 go build 失败。MIT 真心开源做获客入口,商业化走 managed / hosted 同步 / 团队控制台——pg push 子命令已给出 SaaS-ready 数据通路,Issue #108 明确讨论向分布式聚合演化。Tauri 桌面端瞄准愿意付费的 pro 用户。
uuid / parentUuid 当真 DAG 处理,按 fork 阈值(3 个 turn)切分成独立 session,再把 queued command 按 timestamp splice 回去。公开资料里几乎没看到这么做。db.Store interface 并由集中式 backendcontract 包强制能力一致——比 dynamic dispatch 更安全。WatchRecursiveBudgeted 携带 budget,遍历遇 ResourceExhausted 立即降级到 polling,根除「inotify 满导致看似工作实则失效」的隐形 bug。exec.LookPath 调 Claude/Codex/Gemini CLI,prompt 走 stdin。这是 Claude Agent SDK 之外的极简 AI 集成范式——任何"想加 AI 能力但不想接 LLM API"的工具都能抄。health_score / compaction count / context pressure 统一计算。多语言/多运行时后端 + 统一查询语义决策 | 路径 | Trade-off |
|---|---|---|
db.Store 硬接口 + 编译期契约 | internal/db/store.go + internal/backendcontract/contract.go | 牺牲灵活性换"任何后端不静默缺失能力" |
SQLite primary + PG/DuckDB 只读 mirror | ReadOnly() bool { return true } | 换"每个角色用最合适的工具"——但写入不能跨设备合并(Issue #108 在演化) |
Claude DAG-aware fork 切分 | internal/parser/claude.go(500+ 行 DAG 处理) | 实现复杂度换"session 边界对得起用户认知" |
skip cache 原子迁移 | engine.go 的 migrateLegacyCodexExecSkips | 多一次 DB 写换"迁移要么做完要么没做" |
Insight 调本机 agent CLI | internal/insight/generate.go | 依赖用户装了 CLI(但目标用户确定会装) |
维度 | agentsview | ccusage | Langfuse / Helicone | claude-code-transcripts |
|---|---|---|---|---|
覆盖 agent 数 | 20+ | 仅 Claude Code | OpenAI/Anthropic SDK | 仅 Claude Code |
部署形态 | 本地优先 + 可选 PG/DuckDB mirror | 纯 CLI | 云端 SaaS | 单文件转换 |
速度 | 100× ccusage(预索引 SQLite FTS5) | 每次重头解析 JSONL | — | — |
全文搜索 | ✅ FTS5 | ❌ | ✅ | ❌ |
跨项目持久化 | ✅ | ❌ | ✅ | ❌ |
团队 dashboard | pg push | ❌ | ✅(收费) | ❌ |
Fork / subagent 处理 | ✅ DAG-aware | ❌ | 部分 | ❌ |
数据是否外传 | 否(默认 loopback) | 否 | 是 | 否 |
parser/<agent>.go + taxonomy.go 几条,扩展成本低。/usage 做到 80% 体验,开发者可能不再需要额外工具——但跨 agent 不会被 IDE 厂商解决。全 agent 生态的"中央会话日志聚合层 + 本地优先观测台"。不抢 LLM observability 全栈(Langfuse / Helicone 的战场)、不抢 IDE 体验(Cursor / Zed 的战场)、不抢 LLM 应用市场;专做"开发者自己使用的可见性"——缝隙但很深。
pg push 把多个成员的 SQLite 聚到团队 PG,跑只读 dashboard。按这个顺序读源码,效率最高:
internal/db/store.go + internal/backendcontract/contract.go — 多后端抽象的硬接口模式(最值得学的设计)internal/parser/claude.go — DAG-aware 切分(500+ 行,读完一遍 agent 内部消息流怎么处理就懂了)internal/sync/watcher.go — fsnotify 资源预算退避(解决隐形 bug 的标准答案)internal/sync/engine.go + pg_sync_state 相关代码 — skip cache 持久化迁移位(理解"半中途失败 = 重试"范式)internal/insight/generate.go — 调本机 agent CLI 当推理后端(极简 AI 集成的范式)internal/db/schema.sql — 宽表反范式 + 触发器维护 statsparser/<agent>.go + taxonomy.go 几条即可)https://deepwiki.com/kenn-io/agentsview(HTTP 403 但 URL 已被收录,浏览器可访问)