十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AgentsView stats 命令实战:基于本地会话档案的窗口级工作区分析

AgentsView stats 命令实战:基于本地会话档案的窗口级工作区分析 AgentsView stats 命令实战基于本地会话档案的窗口级工作区分析【免费下载链接】agentsviewLocal-first session search, analytics, insights, and token use statistics for coding agents, supporting Claude Code, Codex, and more than 20 other agents.项目地址: https://gitcode.com/GitHub_Trending/ag/agentsviewagentsview stats是 AgentsView 在 0.23.0 引入的顶层 CLI 命令用于对本地会话档案做窗口级window-scoped的工作区分析。默认输出人类可读的摘要也可以输出 JSON 供脚本和下游工具消费。本文围绕 docs/stats.md 展开结合 stats.go 与 session_stats_types.go 的源码完整讲解它的报告构成、过滤参数、数据边界、Git/PR 聚合与代码归因机制帮助你既能把命令跑起来也能读懂每一行输出的来源。注意agentsview stats处于实验状态Experimental。人类可读输出并不稳定JSON 输出也可能在未来版本变化建议以防御性方式解析。报告内容一次命令覆盖 11 类分析面agentsview stats从本地档案中汇总出多类信息各小节与 JSON 块一一对应Session totals会话总量— 总会话数、人类与自动化会话的划分、总消息数、总用户消息数。源码中sessions_all可完整分解为sessions_human sessions_automation sessions_subagentsubagent 既不计入人类也不计入自动化桶保证总量可拆解见 StatsTotalsSession archetypes会话原型— automation、quick、standard、deep、marathon 五个桶外加主原型primary与人类作用域主原型primary_humanSession shape会话形态— 平均时长、用户消息数、峰值上下文、每轮工具调用数的均值分布Velocity速度— 轮次周期turn cycle、首响时间first response的 p50/p90/均值以及每小时活跃消息数Tool / model / agent mix— 工具类别 Top 排名以及按模型和 Agent 划分的 token 与会话占比Claude-only 可选小节— 缓存经济学cache economics、plan-mode 采用率、subagent 活跃度、技能计数仅当窗口内存在兼容数据时出现Temporal activity时间活动— 按 UTC 小时分桶的活跃桶以及报告时区Git outcomes— 对包含会话工作目录的仓库统计 commit 数、增删行数LOC、文件变更数以及可选的 PR 统计Session outcomes— 聚合计数、等级分布grade distribution、工具重试率、每会话压缩compaction次数、编辑抖动edit churn。原始的四种结果见 Session Intelligence被折叠为三桶successcompleted、failureabandoned或errored、unknownunknown加任何未识别值该折叠同时作用于人类摘要与 JSON 的outcomes块Code attribution代码归因— 可选的、来自 Cursor 等主机本地归因源的 AI 代码作者率数据。计算管线在源码中的落地从 GetSessionStats 的实现看管线先解析时区与窗口边界再对同一窗口做两次会话加载一次仅 root 会话驱动分布、速度、时长等形态指标避免无信号的短 subagent 会话拉偏统计另一次含 subagent驱动 token/会话总量这类增量统计因为 subagent 的花费是真实支出。随后按顺序填充各区块总量与原型 → 分布 → 速度 → 工具/模型 mix → Agent 组合 → 缓存经济学 → 时间分布 → 结果 → 采用率最后按需计算 Git 结果。JSON 输出的schema_version当前锁定为 2类型注释明确了版本策略允许新增字段和语义收紧不改变字段形状但不可兼容的形状变化或桶边界变动必须升版本见 session_stats_types.go 头部注释。消费者应通过特定字段是否存在来检测能力而不是仅依赖版本号。自动化作用域is_automated 是权威自 0.25.0 起agentsview stats以每个会话存储的is_automated值作为人类/自动化划分的权威依据。该分类驱动会话总量、原型、scope_human分布以及人类作用域的agent_portfolio字段by_sessions_human、by_messages_human、by_tokens_human、primary_human。scope_all则始终包含所选窗口内的全部会话。一个细节user_messages.scope_human这一分布会省略用户消息少于 2 条的会话因为人类桶集从 2 条用户消息起算但这些会话仍按其is_automated值计入scope_all与会话总量。这与 analytics.go 中的normalizeAutomatedScope/automatedScopePredicate一致human作用域对应is_automated 0automated对应is_automated 1all不加谓词。用法与完整参数表docs/stats.md 给出的三个典型用法# 最近 28 天的人类可读摘要 agentsview stats # 固定日期区间的 JSON 输出 agentsview stats --format json --since 2026-04-01 --until 2026-04-15 # 收窄到单个 Agent 与单个项目 agentsview stats --agent claude --include-project my-app文档列出的基础标志如下--since支持28d这类紧凑时长或YYYY-MM-DD日期--agent留空为all表示不限定 Agent标志默认值说明--formathuman输出格式human或json--jsonfalse--format json的别名--since28d窗口起点紧凑时长如28d或YYYY-MM-DD日期--untilnow窗口终点YYYY-MM-DD--agentall限定单个 Agent或保持all--include-project可重复的项目白名单--exclude-project可重复的项目黑名单--timezonelocal时间报告使用的时区结合 registerStatsFlags 的注册代码当前源码中还额外提供以下文档未列出的标志实际使用时可以一并参考标志默认值说明--include-one-shotfalse包含一次性会话默认排除--include-automatedfalse包含自动化会话默认排除--include-git-outcomesfalse包含 Git 派生结果统计commit、LOC、文件数--include-github-outcomesfalse通过gh包含 GitHub PR 结果统计隐含--include-git-outcomes一个值得注意的实现细节CLI 层把--agent all转换成空字符串再传给 db 层因为 db 层把任何非空 Agent 都当作字面过滤条件见 newStatsCommand 中的注释这样all 语义才能正确覆盖所有 Agent 的会话。数据范围档案数据与主机本地数据是两回事会话派生统计汇总的是本地 AgentsView 档案中选定窗口内的数据。当命令与本地 SQLite daemon 通信时daemon 从同一份档案作答如果回退到直接只读打开 SQLite则直接读取档案文件对应 openStatsService 中transportHTTP tr.ReadOnly分支走openReadOnlyDB的直连路径。代码归因是例外它不是同步过来的会话数据。当code_attribution.sources中存在 Cursor 源时它会实时读取响应 stats 请求的主机上的 Cursor 归因数据库——默认~/.cursor/ai-tracking/ai-code-tracking.db或环境变量AGENTSVIEW_CURSOR_ATTRIBUTION_DB指定的路径读取逻辑见 cursor_attribution.go。这意味着 Cursor 源是机器本地的不会跨已同步机器聚合不会推送到 PostgreSQL无法从 PostgreSQL 只读服务中获取由于 Cursor 归因库无法表达项目过滤带项目过滤的 stats 会返回一个带status: unsupported_filter的 Cursor 源而不是静默报告零归因。归因源的读取细节LoadCursorAttribution 按[from, to)时间窗口查询scored_commits表统计计分 commit 数、增删行、Tab 行、Composer 行、人工行、空行和conversation_summaries表按模型/模式分组计数。数据库文件不存在时返回unavailable而非报错这保证了在无 Cursor 的机器上 stats 命令依然完整可用。人类可读输出的小节结构默认人类输出按命名小节组织取决于窗口内可用数据你看到的是其中的子集Totals、Archetypes、Session shape、Velocity、Tool mix、Model mix、Agent portfolioCache economics、AdoptionClaude-only可选Temporal、Outcome statsGit可选、OutcomesCode attribution可选可选小节的省略规则当 AgentsView 无法从窗口内的会话推导出任何仓库时Git 结果统计被省略当窗口没有兼容数据时Claude-only 小节被省略。从 printStatsHuman 的实现看各可选小节由 nil 指针字段驱动CacheEconomics、Adoption、OutcomeStats、Outcomes、CodeAttribution非 nil 才打印零会话窗口则只打印一行 no sessions in window 提示而不是满屏零值。输出渲染使用errWriter包装写入器遇到管道破裂或短写时首个错误被记住并短路渲染而不是静默截断输出。JSON 输出结构与消费建议JSON 输出当前以schema_version标记版本源码锁定为 2顶层划分为如下块window、filters、totals、distributions、archetypes、velocity、tool_mix、model_mix、agent_portfolio、temporal、generated_at可选块还可能包括cache_economics、adoption、outcome_stats、outcomes、code_attributioncode_attribution.sources列出对本次 stats 请求作出贡献的归因源每个源携带provider、scope、status、可选warnings以及提供程序特定的metrics。Cursor 源当前使用scope: machine_local。当前源状态取值有available、empty、unavailable、error、unsupported_filter五种。消费时的三条纪律源自文档且与 printCodeAttributionSource 的分支处理一致在把缺失指标或零计数解读为零 AI 代码活动之前先检查该源的warnings若 Agent 过滤排除了 Cursor则 Cursor 源会被整体省略若没有任何源贡献整个code_attribution块被省略。尽管 JSON 已带版本号仍建议将其视为实验性、可增量演进的接口预期未来会出现新字段、新可选块和格式调整。Git 与 PR 聚合agentsview stats通过会话的工作目录发现 git 仓库然后对每个仓库中配置的 author 聚合 Git 活动包括commit 数、增删行数、变更文件数。PR 计数是可选的使用面向 CLI 的 GitHub token 来源解析优先级见 resolveGitHubToken若设置了AGENTSVIEW_GITHUB_TOKEN优先使用它这是一个应用作用域的机密否则尝试执行gh auth token带 5 秒超时两个来源都没有 token 时PR 计数被省略而不是报告为零。这个区分在 JSON 输出中很关键PR 字段缺失表示未配置 GitHub 查询而不是已配置但查到零个 PR。对应地StatsOutcomeStats中PRsOpened/PRsMerged是指针类型nil 即代表未配置。源码注释还解释了为何 token 只能走环境变量或gh早期基于标志传 token 的路径已被移除避免 token 出现在 argv 中可被ps/proc/cmdline看到也常被 CI 日志和崩溃上报器捕获。与 Session Intelligence 的关系Session Intelligence 是单会话层面查看健康分、结果判定和信号明细。而agentsview stats是聚合层面不逐条解释单个会话而是对整个档案在一个窗口上求摘要。两者共享底层的会话分类与信号体系如结果判定的四值模型但消费方式完全不同——前者回答这个会话发生了什么后者回答这段时间我的 Agent 工作负载长什么样。如果你要在 CI 或周报脚本里消费 stats 数据建议先用--format json固定--since/--until再按字段存在性而非字段缺失即零的原则解析。小结agentsview stats以本地会话档案为数据源输出 11 类分析面人类/JSON 双格式实验性接口需防御性解析is_automated自 0.25.0 起是人类/自动化划分的唯一权威scope_human与scope_all的口径差异如用户消息少于 2 条的会话被人类桶省略需要留意除会话档案外的数据Cursor 代码归因是机器本地的实时读取不参与跨机同步项目过滤下会以unsupported_filter状态显式标注Git/PR 聚合依赖会话工作目录推导仓库与AGENTSVIEW_GITHUB_TOKEN/gh auth token字段缺失与数值为零有严格语义区别。相关源码入口stats.goCLI 与渲染、session_stats.go统计管线、session_stats_types.goJSON 模式定义、cursor_attribution.goCursor 归因读取以及 stats_test.go行为验证。【免费下载链接】agentsviewLocal-first session search, analytics, insights, and token use statistics for coding agents, supporting Claude Code, Codex, and more than 20 other agents.项目地址: https://gitcode.com/GitHub_Trending/ag/agentsview创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表