GitHub Explorer
📰 公众号已发布 2026-06-11

pandas 创始人 4 个月做了一件事:把 20+ AI 编码代理的会话拼成一张图

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 倍。

值得关注的理由

  1. 大牛背书 + 真实工程量 — Wes McKinney 把做 Arrow / Ibis 多后端抽象的范式搬到了 agent 观测层(db.Store 硬接口 + 编译期契约 + 三栈 DB mirror),4 个月 22 万行 Go、52 个 release,明显是「主业在做」而非周末练手。
  2. 填补真蓝海 — 20+ agent 把 session 散落到 ~/.claude/、~/.codex/、~/.gemini/ 等不同目录,ccusage / claude-code-transcripts 只解决单一 agent,Langfuse / Helicone 是云端 SaaS,没人同时给「本地优先 + 跨 agent + 索引速度」 这条组合。
  3. 可学的东西比用它的价值更大 — DAG-aware fork 切分、fsnotify 资源预算退避、skip cache 持久化迁移位、调用本机 agent CLI 当推理后端——这 7 个模式可以直接搬到自己的项目里。

项目展示

Dashboard — 跨 agent 成本与活动仪表盘 核心仪表盘:跨 agent 成本、活动热力图、健康度 A–F 评分

Session viewer — 单 session 消息查看器 类似聊天应用的 session 浏览器:DAG-aware fork/subagent 切分后还原主线程

Search — FTS5 全文搜索 SQLite FTS5 全文索引:跨所有 agent 的统一搜索

Heatmap — 活动热力图 多维活动分析:项目 / agent / 时段交叉

项目画像

维度数据
GitHubhttps://github.com/kenn-io/agentsview
Star / Fork1,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 厂商吃掉。

解法哲学

  • 本地优先 + 可选共享:默认 SQLite、loopback bind、可选 PG/DuckDB mirror。Wes 一贯立场(pandas/Arrow 都是把数据留在用户手里)。
  • 一个 binary 多形态:CLI / HTTP server / PG push / PG serve / DuckDB mirror / Quack endpoint / Tauri desktop 全在同一个二进制。
  • 明确不做什么:不代理 agent 调用、不修改 agent 行为(PG/DuckDB 是 read-only)、不做 prompt 优化或 eval(让给 Langfuse)。
  • 硬契约保证多后端能力一致:db.Store interface + backendcontract 集中式编译期断言,任何后端遗漏实现都让 go build 失败。

战略意图

MIT 真心开源做获客入口,商业化走 managed / hosted 同步 / 团队控制台——pg push 子命令已给出 SaaS-ready 数据通路,Issue #108 明确讨论向分布式聚合演化。Tauri 桌面端瞄准愿意付费的 pro 用户。

核心价值提炼

创新之处

  1. DAG-aware Claude 解析 + 阈值切分(新颖 4/5):把 uuid / parentUuid 当真 DAG 处理,按 fork 阈值(3 个 turn)切分成独立 session,再把 queued command 按 timestamp splice 回去。公开资料里几乎没看到这么做。
  2. 三形态单一二进制 + 编译期后端契约(实用 5/5):所有形态共享 db.Store interface 并由集中式 backendcontract 包强制能力一致——比 dynamic dispatch 更安全。
  3. fsnotify 资源预算退避(实用 5/5,可迁移 5/5):WatchRecursiveBudgeted 携带 budget,遍历遇 ResourceExhausted 立即降级到 polling,根除「inotify 满导致看似工作实则失效」的隐形 bug。
  4. 调用本机 agent CLI 当推理后端(可迁移 5/5):Insight 模块直接 exec.LookPath 调 Claude/Codex/Gemini CLI,prompt 走 stdin。这是 Claude Agent SDK 之外的极简 AI 集成范式——任何”想加 AI 能力但不想接 LLM API”的工具都能抄。
  5. 20+ agent 归一化抽象(taxonomy 层 + 共享信号):所有工具名归一到 9 个 category(Read/Edit/Write/Bash/Grep/Glob/Task/Tool/Other),跨 agent 的 health_score / compaction count / context pressure 统一计算。

可复用的模式与技巧

模式适用场景
db.Store 硬接口 + backendcontract 集中式断言多语言/多运行时后端 + 统一查询语义
Primary ingest + 多只读 mirror(SQLite → PG/DuckDB)个人 + 团队双形态产品,分析型 + 事务型混合负载
DAG 切分 + timestamp splice所有”agent 内部 sub-agent”的可观测工具
fsnotify 资源预算 + exclude 子树Linux 上文件同步 / IDE 索引 / watch 工具
Skip cache + 持久化迁移位启动时跑一次性迁移且不能容忍半途失败
调本机 agent CLI 当推理后端想加 AI 能力但不想接 LLM API 的开发者工具
统一 TerminationStatus 4 态状态机给”无协议约定的工具流”加状态机

关键设计决策

决策路径Trade-off
db.Store 硬接口 + 编译期契约internal/db/store.go + internal/backendcontract/contract.go牺牲灵活性换”任何后端不静默缺失能力”
SQLite primary + PG/DuckDB 只读 mirrorReadOnly() bool { return true }换”每个角色用最合适的工具”——但写入不能跨设备合并(Issue #108 在演化)
Claude DAG-aware fork 切分internal/parser/claude.go(500+ 行 DAG 处理)实现复杂度换”session 边界对得起用户认知”
skip cache 原子迁移engine.go 的 migrateLegacyCodexExecSkips多一次 DB 写换”迁移要么做完要么没做”
Insight 调本机 agent CLIinternal/insight/generate.go依赖用户装了 CLI(但目标用户确定会装)

竞品格局与定位

竞品对比矩阵

维度agentsviewccusageLangfuse / Heliconeclaude-code-transcripts
覆盖 agent 数20+仅 Claude CodeOpenAI/Anthropic SDK仅 Claude Code
部署形态本地优先 + 可选 PG/DuckDB mirror纯 CLI云端 SaaS单文件转换
速度100× ccusage(预索引 SQLite FTS5)每次重头解析 JSONL——
全文搜索✅ FTS5❌✅❌
跨项目持久化✅❌✅❌
团队 dashboardpg push❌✅(收费)❌
Fork / subagent 处理✅ DAG-aware❌部分❌
数据是否外传否(默认 loopback)否是否

差异化护城河

  • 生态护城河:20+ agent 行业领先;新增 agent 只需 parser/<agent>.go + taxonomy.go 几条,扩展成本低。
  • 信任护城河:Wes McKinney 品牌信用(pandas/Arrow 几十年可信赖度)。
  • 技术护城河:DAG 解析、PG/DuckDB 镜像、Tauri 桌面端等工程深度难快速复制。

竞争风险

  1. 被通用 observability 平台侵蚀(最大风险):Langfuse / Helicone 增加 agent 适配器会切走”团队付费”那块市场。
  2. 被 IDE 厂商整合基础功能:Cursor / Anthropic 自己的 /usage 做到 80% 体验,开发者可能不再需要额外工具——但跨 agent 不会被 IDE 厂商解决。
  3. 被 LLM 厂商官方工具替代:Anthropic / OpenAI / Google 自己做跨 agent 统计——可能性低,因为这些厂商互相竞争。
  4. 自研方向:Issue #108 讨论分布式演化,1-2 年后可能需要 multi-host aggregator。

生态定位

全 agent 生态的”中央会话日志聚合层 + 本地优先观测台”。不抢 LLM observability 全栈(Langfuse / Helicone 的战场)、不抢 IDE 体验(Cursor / Zed 的战场)、不抢 LLM 应用市场;专做”开发者自己使用的可见性”——缝隙但很深。

套利机会分析

  • 信息差:项目由 pandas/Arrow 创始人主导,4 个月到 1,586 stars 仍处于快速上升期,相对 Langfuse 等头部 observability 知名度仍小,存在早期跟进窗口。
  • 技术借鉴(最直接的价值):上面 7 个可复用模式(硬接口多后端、Primary + mirror、DAG 切分、fsnotify 预算、skip cache 迁移、调本机 agent CLI、TerminationStatus 状态机)都可以直接搬到自己的项目。
  • 生态位:填补了”20+ coding agent 的本地统一观测”这个空格子——Langfuse 不覆盖 agent session、ccusage 不跨 agent、IDE 不跨项目。
  • 趋势判断:agent 数量只会增加不会收敛(Anthropic / OpenAI / Google 三家互不兼容),跨 agent 观测需求会随生态碎片化持续放大;本地优先 + 数据不出本机的定位在合规/隐私敏感场景有结构性优势。

风险与不足

  • bus factor = 1:Wes 占 79.7% commit,单核心维护者风险——但 Wes 圈(pandas/Arrow 用户)的接受度高。
  • 0.x 版本未稳定:v0.32.1 仍在快速迭代(52 个 release / 3.7 个月),schema 和 CLI 都可能 break change;生产环境依赖要锁版本。
  • PG 后端工程债:Issue #439 显示 PG 镜像层是社区高频踩坑区,schema 演进与 SQLite 主库一致性是当前最受关注的工程债。
  • Onboarding UX 摩擦:Issue #562 显示默认安全策略(loopback + Host 校验 + 自动 auth)和”开箱即用”之间仍有摩擦。
  • Insight 副作用隔离:Issue #175 显示 AI Insights 需小心控制不在非 agent 工作目录执行——设计复杂但已闭环。

行动建议

如果你要用它

  • 如果你只用 Claude Code 一种 agent 且需要轻量成本统计:ccusage 更合适,零依赖心智更轻。
  • 如果你跨 2+ agent / 关心隐私 / 需要本地持久化:直接选 agentsview,从 ccusage 迁过来零成本。
  • 团队场景:用 pg push 把多个成员的 SQLite 聚到团队 PG,跑只读 dashboard。
  • 生产依赖:锁定具体 tag,0.x 阶段 schema 会变。

如果你要学它

按这个顺序读源码,效率最高:

  1. internal/db/store.go + internal/backendcontract/contract.go — 多后端抽象的硬接口模式(最值得学的设计)
  2. internal/parser/claude.go — DAG-aware 切分(500+ 行,读完一遍 agent 内部消息流怎么处理就懂了)
  3. internal/sync/watcher.go — fsnotify 资源预算退避(解决隐形 bug 的标准答案)
  4. internal/sync/engine.go + pg_sync_state 相关代码 — skip cache 持久化迁移位(理解”半中途失败 = 重试”范式)
  5. internal/insight/generate.go — 调本机 agent CLI 当推理后端(极简 AI 集成的范式)
  6. internal/db/schema.sql — 宽表反范式 + 触发器维护 stats

如果你要 fork 它

  • 加更多 agent 解析器(parser/<agent>.go + taxonomy.go 几条即可)
  • 接 Langfuse 做 eval(agentsview 是观测层、Langfuse 是 eval 层,互补)
  • 做 multi-host aggregator(Issue #108 已有人提)
  • 商业化:本地优先 + managed 同步 + 团队控制台

知识入口

资源链接
DeepWikihttps://deepwiki.com/kenn-io/agentsview(HTTP 403 但 URL 已被收录,浏览器可访问)
Zread.aihttps://zread.ai/kenn-io/agentsview(已收录,40+ 子页面)
官方文档https://agentsview.io + docs/ 目录(quickstart / usage / commands / configuration / architecture)
关联论文无(项目本身不是学术产出)
在线 Demo无(本地优先产品,提供 Desktop binary + Docker image 自行跑)

相关报告