
AgentsView Activity 报告实战指南从范围筛选、并发峰值到 v8 JSON 契约【免费下载链接】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 的Activity活动报告回答三个核心问题代理在什么时间运行、工作有多少重叠、这些工作花了多少钱。它基于带时间戳的会话活动与用量行构建默认包含一次性one-shot与自动化automated会话并支持按项目、模型、代理、机器或会话维度下钻。读完本文你将掌握 Activity 页面全部控件的使用方式、agentsview activity reportCLI 的完整参数与分页游标用法以及 schema version 8 报告的 JSON 契约与GET /api/v1/activity/report服务端 API 的对接细节。数据模型与三类会话划分Activity 报告的基础是把每个会话归入三个互斥类别这一划分贯穿摘要卡片、并发图、Breakdown 与 JSON 契约的每一处Interactive面向人类交互的会话Subagent委托型子会话例如 Claude Code 的 Task-tool 子代理Automated自动化运行的会话。从源码结构看分类逻辑集中在 internal/activity/activity.go 的SessionMeta.kind()IsSubagent优先于IsAutomated判定类别即subagent 即使其 prompt 命中自动化分类器也只计入 subagent 类别fork 会话回滚产生的对话分支则保留在 interactive 或 automated 类别中。Totals结构体的注释也明确约定了不相加总关系AutomatedSessions InteractiveSessions SubagentSessions Sessions成本与 agent-minutes 按同样三个分段各自汇总见 Totals 定义。Total Cost与agentsview usage daily在同一天、同时区下对账一致其前提是在汇总前先对跨相关会话重复出现的 usage 行去重——这与 Usage 页面采用同一套去重规则。去重实现位于 dedupUsage 与 UsageSurvivorSelection同一 Claudemessage_id request_id快照只保留输出 token 最多的幸存行完整快照可能来自更晚的转录但归因保留最早转录再按claude、sourceagent source UUID、usage三级去重键做首见去重。范围与筛选器页面工具栏使用与全站共享的范围选择器支持日历预设Day、Week、Month与Custom。Activity 页默认打开今天。只有当Settings Date ranges Link date ranges across pages启用时页面才采纳并对外发布共享范围若共享范围宽到 Activity 无法表达则不会被采纳。附加筛选器按维度收窄报告Project— 带输入联想typeahead的项目过滤器Agent— 下拉列出活动数据中出现的所有代理Machine— 下拉列出已同步的机器名Automation—All Sessions/Interactive/Automated。筛选与范围状态写入 URL 查询参数preset、date、from、to、window_days、project、agent、machine、automation这让任意报告视图可以被直接分享和收藏。范围解析引擎在 internal/activity/query.go 中值得了解其边界约束最大范围一年maxRange 365 * 24 * time.Hour最大桶数2000见 ResolveQuery空闲间隔上限固定为300 秒defaultGapCap 300.0会话内两条消息之间的活跃时间最多向后延伸 5 分钟避免长空闲被计为 agent 活跃若范围末端进入未来ResolveQuery会把EffectiveEnd钳制到当前时刻并置Partial: true页面因此标记该报告为**部分partial**并展示as of时间。桶bucket尺寸支持覆盖值5m、15m、1h、1d、1w白名单见 allowedBucketSpec。未指定时按范围长度自动选择不超过 36 小时用 5 分钟桶不超过 14 天用 1 小时桶不超过 90 天用 1 天桶更长用 1 周桶见 ResolveBucket。分钟/小时桶是固定时长窗口日/周桶则按当地日历边界ISO 周一切分以吸收夏令时偏移BuildBuckets。摘要卡片报告顶部的摘要卡片展示Interactive peak— 同一时刻活跃的交互式对话最大数量并附报告时区下的峰值时刻Active— 范围墙钟内的活跃时间另附空闲时间Agent-minutes— 并发代理的合计活跃分钟数Sessions— 会话总数附 interactive / subagent / automated 与 untimed 会话明细Projects与Models— 范围内去重计数Total Cost— 选中会话归因到本范围的活动成本可用时为权威上报总额否则为目录价估算。JSON 层对应totals块active_minutes、idle_minutes、agent_minutes、sessions、untimed_sessions、distinct_projects、distinct_models、output_tokens、cost以及三个不相交分段automated_agent_minutes/interactive_agent_minutes/subagent_agent_minutes与对应*_cost分段之和等于合计Totals 结构。untimed 会话即使某会话没有可用的带时间戳活动timing 不可用只要存在 usage 行它仍可以携带成本只是不计入 agent-minutes 与 Breakdown 的分钟维度。Concurrency 并发图Concurrency图是单一时间轴上的堆叠柱状图是本页的核心可视化每个桶是一根柱分段为蓝色Interactive、紫色Subagents、橙色Automated按该顺序自基线堆叠在共享标尺上柱高是该桶的合并并发峰值combined peak每个分段则是合并峰值发生那一刻该类别的数量因此各分段之和恒等于柱高图上方图例命名各分段右侧标签给出全范围的合并峰值柱状图下方的条带标记所有会话的活跃/空闲桶。注意interactive 并发统计的是重叠的面向人对话数并不度量人类注意力。悬停一个桶可查看时间范围、合并峰值时的堆叠拆分、合并峰值、各类别在桶内的独立峰值、agent-minutes、输入/输出 token 与成本。当某类别的独立峰值发生在与合并峰值不同的时刻时其独立峰值可以大于堆叠分段值——这在 v8 契约中体现为每桶独立的max_interactive_agents、max_subagent_agents、max_automated_agents字段而*_at_peak三字段专门描述合并max_agents峰值瞬间的拆分Bucket 结构。All-session overlay控件在柱上叠加一条覆盖全部三类的Tokens或Cost趋势线使用右侧独立标尺。桶下钻drill-down交互点击一个桶Sessions 表过滤为该时间槽内活跃的会话跨桶拖选可选一段范围键盘用户可用 Enter/Space 选中、Shift方向键扩展、Escape 清除再次点击同一桶或关闭表头的Active:徽标即可清除槽位过滤。下钻的实现不再让浏览器下载全部原始活动区间成员关系由构建图表的同一共享聚合器计算再以有界分页取回。对应的服务端端点是GET /api/v1/activity/report/{report_id}/sessions支持可选的零基半开区间参数bucket_start与bucket_end两个边界必须同时给出。Sessions 会话表Sessions表列出所有贡献过报告的会话行内容含会话标题、模型、项目、代理、agent-minutes、成本、活跃窗口active window。点击会话标题在转录查看器中打开该会话Project、Agent、Agent-min、Cost、Window列头可排序涉及时间的排序会把 untimed 会话排在末尾表初始最多 200 行排序、桶过滤与后续分页都在服务端执行单页上限 500 行加载指示器仅在表内显示取页期间报告摘要与图表保持可见subagent 会话带Subagent徽标其他自动化会话带Auto徽标。排序的默认排序agent-minutes 降序、untimed 最后、session ID 升序收尾在聚合器中固化buildSessionsTableFromDedupedUsage 末尾的sort.Slice以分钟数降序、SessionID升序兜底保证跨后端结果确定。Breakdown 分解面板Breakdown面板按Project、Model、Agent三个维度对活动排序在Agent-min与Cost两个指标间切换用堆叠条比较 interactive、subagent、automated 的贡献每个会话恰好贡献到一个分段与上文addKey的路由逻辑一致见 internal/activity/activity.go对当前指标无值的行在该视图中被省略所以只有成本的 untimed 会话会出现在Cost视图而不出现在Agent-min视图。权威总额按权重分摊项目、代理、会话、桶与报告各级合计在可用时采用权威会话总额。对多模型会话AgentsView 会把该总额按各 usage 行的目录价估算比例分摊到行上。因此按模型的成本是估算归因而非服务商上报的模型账单——但它们之和仍等于展示总额。实现见 AllocateUsageCostsContext某会话携带SessionCost权威总额时该结算取代其所有行估算再经export.AllocateCostByWeight按目录成本权重分配被分到的行CostSource标记为 reported。创建项目映射Worktree 清理解析器不识别的 worktree 布局可能把分支或 worktree 目录名暴露为项目。Project 分解中的每一行都链接到 Data 页面上该项目映射编辑器会列出该项目观测到的会话文件夹预览文件夹路径 → 项目规则对全档案的影响一步原子地应用 worktree project mapping 规则。注意清理始终针对完整档案求值当前 Activity 范围与筛选不会带入。Activity Insight页面底部的Activity Insight区展示已存在的全局daily_activityinsight仅当它恰好覆盖已解析的日期范围时。若服务端可写可直接用 Claude、Codex、Copilot、Gemini 或 Kiro 从同一面板生成新 insight。Open in Generated insights链接会打开 Generated insights 标签页并预填同一范围。当所连服务器无法运行代理 CLI 时生成入口禁用。CLI 与 API网页端调用GET /api/v1/activity/report同一报告可通过 CLI 获取参数在 cmd/agentsview/activity.go 的ActivityReportConfig中定义agentsview activity report --preset day --date 2026-06-20 agentsview activity report --preset week --date 2026-06-20 --json agentsview activity report --preset custom \ --from 2026-06-20T14:00:00Z \ --to 2026-06-20T18:00:00Z \ --bucket 15m agentsview activity report --preset month --date 2026-07-01 --json \ --sessions-limit 200 --sessions-sort cost --sessions-direction desc完整参数集参数说明--presetday/week/month/custom缺省且无 from 时默认 day--datepreset 的锚定日期YYYY-MM-DD缺省为当地时区今天--from/--tocustom 范围的 RFC3339 边界二者必须成对--timezoneIANA 时区名缺省本地时区--bucket5m/15m/1h/1d/1w缺省按范围自动选择--project/--agent/--machine维度过滤--json以格式化 JSON 输出到 stdout--no-sync/--offline跳过同步 / 离线直读数据库模式--sessions-limit会话页大小--sessions-sort/--sessions-direction会话排序列与方向--sessions-cursor/--sessions-report-id分页游标与配套 report_id--sessions-bucket-start/--sessions-bucket-end按桶区间取页大报告在 daemon 与直读数据库两种模式下都会向 stderr 输出进度阶段与已处理行数打印逻辑见 newActivityProgressPrinter而 JSON stdout 始终是一份机器可读文档。用--sessions-cursor配合返回的sessions_next_cursor请求后续页daemon 模式下同时传入配套的report_id作为--sessions-report-id以便在范围或 partial 范围于两次命令之间推进时保持原始生成generation不变。--offline下同一套分页参数可用直读模式的签名游标携带原始已解析范围与筛选随后确定性地重算该代报告再选取下一页。JSON 契约schema version 8agentsview activity report --json与/api/v1/activity/report均输出schema version 8二者使用同一 schema 版本并同步变更。报告包含有界的首页会话、sessions_total、sessions_next_cursor与签名的report_id将后续页绑定到该报告不再包含旧的intervals数组Report 结构 中Intervals字段已标json:-。v8 的关键变化会话计数、agent-minutes、成本与并发均按 interactive / subagent / automated 三类拆分三个类别计数之和等于totals.sessionstoken 与总成本口径不变每个桶携带独立的max_interactive_agents、max_subagent_agents、max_automated_agents而*_at_peak字段描述合并max_agents峰值瞬间的拆分报告包含interactive_peak、subagent_peak、automated_peak三个峰值对象各有独立计数与时间戳对应Peak{Agents, At}会话行含is_subagent在确定可见类别时优先于is_automated。SSE 进度流客户端可对报告路由发送Accept: text/event-streamCLI 的 HTTP 模式正是同时声明text/event-stream, application/json见 fetchHTTPActivityReport。流会依次发送加载会话、加载用量、扫描活动、收尾与完成阶段的progress事件最后发一个report事件未请求 SSE 的客户端在同一 URL 收到普通 JSON。两种形式都走长任务路由因此不受常规 30 秒 API 操作超时限制请求取消仍会停止数据库扫描。会话分页端点GET /api/v1/activity/report/{report_id}/sessions接受limit、cursor、sort、direction以及可选的零基半开区间bucket_start/bucket_end必须成对。普通页响应只含有界会话页需要报告元数据的无状态客户端可加include_reporttrueCLI 在传--sessions-report-id时会自动带上。排序始终以 session ID 升序收尾因此签名位置游标在缓存淘汰或 daemon 重启后依然确定。报告 token 携带已解析查询与粗粒度档案探针缓存条目空闲 15 分钟后过期且受条目数、行数与字节数上限约束缓存未命中时从 token 重算。若档案代际已变化响应置refresh_required并连同完整替换报告与首页一起返回而不是把新表配旧摘要。同步通知只会把仪表盘标记为 stale不会自动重新聚合。计费语义的版本边界v7 对计算出的用量应用了服务商级计费身份并保留上报成本行与自定义定价覆盖v6 与 v7 的成本不得按同一计费语义比较。输入与游标限制每个 project、branch、agent 或 machine 过滤器限 1,024 UTF-8 字节合计限 3,072 字节服务端在聚合前还会完整校验签名report_id的全编码形态含 JSON 转义与 base64 展开。游标校验在 CLI 侧可见于 decodeCLIActivitySessionCursor要求Version 3、Schema等于当前ActivityReportSchemaVersion、Offset 0且摘要digest与重算结果一致resolveActivityReport不一致时返回invalid sessions cursor。旧 CLI 兼容较老版本 CLI 不校验schema_version仍能解码 v7 纯 JSON 响应内嵌首页刻意保留旧默认排序agent-minutes 降序、untimed 最后、session ID 升序使其五行人类摘要保持兼容但它们无法请求后续页或消费进度。与其他版本化表面的关系Activity 报告 JSON、agentsview usage daily --json与agentsview export sessions --format json|ndjson是彼此独立的版本化表面。usage 与 activity 在 0.38 之前已输出schema_version: 1session-summary v1 契约随 0.37.1 发布0.38.0 与 0.38.1 输出了大幅修订的项目证据形态但仍标版本 1版本 2 修正了这些标记版本 3 引入精确微美元金额对象版本 4 增加了含完整请求定价区间与应用计数的已解析模型定价溯源——那两次过渡性发布不得当作 v1 兼容。消费方应要求预期的schema_version并忽略未知的增量字段这些命令不提供旧版本输出模式。共享报告块Activity 报告包含共享的报告级pricing与projects块。pricing.models以报告中的模型名为键每条目含聚合cost_source与显式resolutionspriced_model及input_cost_per_mtok、output_cost_per_mtok、cache_write_cost_per_mtok、cache_write_1h_cost_per_mtok、cache_read_cost_per_mtok等有效费率字段外加可用的bands与报告特有的application计数。每个含项目的报告行都有不透明project_keyprojects以该值为键并携带仅用于展示的display_label未知项目身份以省略identity的显式resolution表示脱敏与键推导见SanitizeProjectLabelsinternal/activity/activity.go。更多语义见 Token Usage Costs 的 JSON 契约章节、定价溯源pricing provenance与 Project Identity 说明。更多细节可参考 CLI Reference 中agentsview activity report条目与 Session API 中的 Activity report 小节后者覆盖完整 flag 列表与响应形态。【免费下载链接】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),仅供参考