三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

GitHub 开始按 Agent 分账:别把 Job、Session 与 Prompt 当成同一个指标

GitHub 开始按 Agent 分账:别把 Job、Session 与 Prompt 当成同一个指标
承接: Copilot Agent 会话流式审计实战:从 48 小时补数到脱敏告警闭环
调研日期:2026-08-08
本文目标:基于 GitHub Copilot Usage Metrics 新增的 Agent App 字段,建立可复查的多 Agent 采用度口径;清楚区分 Job 启动、Session、Prompt 与结果质量,避免把可计数活动误写成生产率结论。

2026-08-07,GitHub 为 Copilot Usage Metrics API 增加了 Agent App 活动的按 Agent 拆分。企业、组织及其用户级的 1 日和 28 日报告中,新增可选的 totals_by_3rd_party_agent 数组;已识别的 Agent App 会按稳定的 agent_id 聚合。官方公告给出的直接价值是:团队终于可以把不同 Agent 的采用情况拆开观察,而不是把所有工作都塞进一个模糊的活动桶。

这是一个很容易被误读的进展。看到活动数量上升,不代表代码质量上升;看到 Session 变少,也不一定代表效率变差;更不能把 Agent 的 Job 启动次数与人类在 IDE 中发出的 Prompt 相加后,宣布“总工作量”。正确的起点是先建立数据字典、时间窗口和失败解释,再决定指标能支持哪些治理动作。

适用前提:你的企业或组织已启用 Copilot usage metrics policy,且负责人员拥有相应的 Metrics 查看权限。示例只展示读取报告的最小流程,不应把下载链接、原始 NDJSON、用户标识或访问令牌提交到代码库。


一、先把四类计数拆开:它们不是同一个单位

新增字段关注的是“已识别 Agent App 的服务端作业活动”,并不是所有 Copilot 或所有 Agent 的统一工时表。先把最重要的字段放在一张表中:

字段或概念

它实际计数什么

适用范围

不能据此断言什么

totals_by_3rd_party_agent

每个已识别 Agent 的活动条目

无相关活动时整个字段会省略

未识别 Agent 完全不存在

agent_id

Agent 的稳定标识

跨报表周期用于分组和关联

Agent 的展示名称或厂商策略永不变化

agent_name

Agent 的显示名称

适合仪表盘显示

跨周期主键

嵌套 user_initiated_interaction_count

用户发起的 Agent App Job 启动数

每次 Job 开始计一次

人类发出的所有 Copilot Prompt 数

session_count

Agent App Session 数

仅企业或组织聚合报告提供;用户级条目省略

每个用户的会话次数

顶层 user_initiated_interaction_count

其他受支持遥测中的显式 Prompt 总数

报告顶层

Agent App Job 启动数

两个约束尤其值得写进数据模型:

  1. 用 agent_id 分组,而不是 agent_name。显示名称可能变化;同一 Agent 的多个 App 集成也会被合并到一个 Agent 条目。
  2. 不要把两个同名交互计数相加。嵌套字段是 Agent App Job start,顶层字段是其他遥测里的显式 Prompt;它们的触发路径不同,官方明确说不能互换或求和。

所以,“本周某 Agent 有 150 次 Job”只能说明这个受管范围内出现了 150 次用户发起的作业启动。它不能单独证明 150 个任务完成、150 次代码变更正确,或 150 次调用都比人工更快。


二、先选对报告粒度,再谈仪表盘

Usage Metrics 同时提供 1 日和 28 日报告。1 日报告适合发现刚上线的策略或集成是否产生可见活动;28 日报告适合查看一个完整窗口内的聚合总量。要判断“是否在多个日期持续出现”,不能只看一份 28 日用户报告:它是该窗口的一条聚合记录,必须保留连续的 1 日用户报告再按日期计算。

目标问题

推荐报告

为什么

新 Agent 是否真的被试点成员启动

用户级 1 日报告

可以按用户级记录检查是否出现对应 Agent 条目

一个 Agent 是否有稳定使用而非偶发点击

连续 28 份用户级 1 日报告

逐日记录目标 Agent 是否出现,才能计算活跃天数分布

某个周期的总采用量

28 日用户级报告

一条记录汇总窗口内的活动,适合期间比较,不能还原每日出现情况

企业或组织层面有多少 Agent Session

聚合 1 日或 28 日报告

session_count 只在聚合条目中提供

新旧 Agent 是否同时被采用

用户级报告按 agent_id 汇总

避免按可变显示名称比较

是否应该扩大、暂停或训练试点

28 日量化趋势加人工样本

指标提供信号,任务质量仍需人审

读取前先核对权限与开关。官方 REST 文档要求开启 Copilot usage metrics policy;企业端通常需要企业所有者、账单经理或已授予 View Enterprise Copilot Metrics 的角色,组织端也需要相应的组织权限。细粒度令牌应仅授予读取 Copilot metrics 的最小权限,且专用于报告拉取。

不要把组织级与企业级的返回形状想当然视为完全相同。当前文档对具体字段、用户级与聚合级的可用性有区别;尤其是在组织级聚合视图中,应以你当天实际拿到的 schema 为准,而不是只依赖早期公告或他人的截图。


三、用最小权限取回 1 日报告

下面以组织的用户级 1 日报告为例。GitHub CLI 会使用本机已有的安全登录状态,因此命令中不出现令牌。请在受控终端中运行,并将 ORG 与 DAY 替换为真实值。

ORG=your-organization DAY=2026-08-07 gh api \ --method GET \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2026-03-10" \ "/orgs/$ORG/copilot/metrics/reports/users-1-day?day=$DAY"

该请求返回的是报告下载链接和报告日期,不是整份指标内容本身。下载链接为限时签名链接,适合在受控的采集作业中短暂使用,不适合写入 Git、Issue、聊天记录或长期日志。只处理 API 返回的完整已处理报告日;不要因为当天报告尚未生成、链接过期或采集作业失败就填充零值。对于 28 日窗口,可改用 users-28-day/latest 端点取得期间聚合;企业范围则使用 enterprises 下对应的 reports 路径。若要计算每日持续采用度,则连续拉取并留存 28 份 users-1-day 报告。完整端点、权限与响应定义应以 GitHub REST API 文档为准。

报告拉取后,先把字段规范化为只含聚合分析所需列的临时数据集。下例假定 report.ndjson 是已经在受控存储中下载的报告文件:

jq -c ' (.totals_by_3rd_party_agent // [])[] | { agent_id: .agent_id, agent_name: .agent_name, job_starts: .user_initiated_interaction_count, session_count: (.session_count // null) } ' report.ndjson

这里的空数组有明确含义:某条记录没有已识别的 Agent App 活动时,字段可能被省略。不要强行填成“所有 Agent 都是 0”,更不要把“未识别或未上报”解释为“团队完全没有使用任何 Agent”。

为了让报表审阅者一眼看出计数边界,可保留如下的示意记录。数值仅用于说明字段层级,不代表真实组织数据:

{ "user_initiated_interaction_count": 137, "totals_by_3rd_party_agent": [ { "agent_name": "Example Coding Agent", "agent_id": "example-coding-agent", "user_initiated_interaction_count": 12 } ] }

上面的 137 与 12 没有加法关系。第一项是顶层显式 Prompt 计数,第二项是特定 Agent App 的 Job start。只有在数据字典明确了不同事件的来源、去重方式和业务问题后,才可以把它们放在同一张分析图中比较趋势。


四、为多 Agent 试点建立“可回答问题”的指标契约

先确定你要用数据做什么,再写公式。一个适合早期试点的最小契约可以只回答四个问题:

决策问题

建议指标

计算口径

需要配套的人类证据

试点是否真的开始使用

活跃采用者数

出现目标 agent_id 的去重成员数

成员是否完成接入与培训

使用是否持续

28 日活跃天数分布

从连续 28 份 1 日报告中,计算每个 agent_id 出现的报告日数量

是否只是一次演示或临时故障处置

用户启动后是否形成会话

聚合 Job start 与 Session 的趋势

同一报告粒度内分别查看,不强行一一对应

代表性任务是否需要多轮协作

是否应扩大范围

增长趋势加任务样本

仅比较相同人群、相同时间窗口

代码审阅、测试、返工与安全事件复盘

最后一行最重要。采用度指标可以帮助发现“谁在用什么”,但无法替代质量证据。若要讨论实际工程价值,至少还要从独立系统取证,例如:PR 是否被人工合并、测试是否通过、故障是否减少、审阅返工是否下降,以及用户是否明确反馈某类任务更适合或不适合交给 Agent。

建议将个人数据最小化:

  • 对组织级决策,默认输出按 agent_id、团队或已批准的最小群组聚合后的趋势,而不是公开个人排名。
  • 对用户级报告设置明确用途、访问期限和审计记录;它应服务于接入障碍排查和培训改进,不应成为单一绩效指标。
  • 将原始 NDJSON、下载链接和转换后的分析数据分开存放;前两者只保留在受控存储中,仓库只保存查询定义与无敏感的聚合结果。

五、用“1 日健康检查 + 每日留样 + 28 日聚合”做渐进决策

一套低噪声的运行节奏可以分为三段:

阶段

看什么

允许的动作

不该做什么

上线后第 1 天

目标 agent_id 是否出现、字段是否按预期省略或返回

修复权限、策略、采集脚本与培训入口

用一天数据评价人或采购效果

第一周

每日已处理报告中的 Job start 异常尖峰或完全缺失

排查重复触发、集成故障、报告延迟或试点覆盖问题

把峰值直接当作效率提升

第一个完整 28 日窗口

连续 1 日报告计算的采用持续性,加上 28 日聚合、不同 Agent 重叠和代表性任务样本

决定扩展试点、补培训、收紧范围或下线集成

用活动数替代质量、成本或风险评审

如果多个 Agent 在同一团队并行试点,比较时必须固定人群和时间窗口。不要用“新 Agent 的前三天”对比“旧 Agent 的全部历史”,也不要因为一个 Agent 被用于更长、更复杂的任务就把更高 Job 数判成更差体验。指标是提出问题的入口,不是自动裁决。

当报表出现异常时,按下面顺序排查通常更快:

  1. 确认 Copilot usage metrics policy、角色权限与报告日期是否正确。
  2. 确认目标 Agent 是否属于已识别 Agent App;无法识别的活动不会出现在该数组中。
  3. 确认报告日已经处理完成且采集作业没有漏跑;缺失报告不是零活动。
  4. 确认当前查看的是用户级还是聚合级报表,避免把缺失的 session_count 当作零。
  5. 核对 agent_id 是否稳定,避免因显示名称变化导致同一 Agent 被拆成两条趋势。
  6. 再结合任务样本与人类反馈判断这是集成问题、培训问题还是实际不适配。

六、六个常见误区

1)按 agent_name 做长期分组

显示名称可以变化。仪表盘展示用名称,数据仓库关联、趋势比较和告警规则都应该使用 agent_id。

2)把嵌套 Job start 与顶层 Prompt 相加

它们名称相似,事件来源不同。相加会制造一个没有清晰业务含义的“总互动数”,也会误导后续预算或采用判断。

3)把用户级缺少的 session_count 填成 0

用户级 Agent App 条目本来就不提供这个字段。缺失意味着“该层级不可用”,不是“用户没有 Session”。

4)把字段省略理解为绝对没有 Agent 使用

该数组只覆盖已识别 Agent App。没有数组可能表示没有已识别活动,也可能意味着某类集成不在这一统计范围内;需要结合产品配置和其他审计来源解释。

5)把 Job 数量当成开发质量或个人绩效

一个高质量的长任务可能只启动一次,一个调试失败的任务也可能反复启动很多次。活动指标不包含正确性、审阅结果、安全影响或业务价值。

6)把签名下载链接和原始报告塞进仓库

限时链接仍可能暴露受控数据访问路径;原始报告也可能包含用户级活动。代码库应保存采集说明、字段定义和脱敏聚合,而不是敏感原始材料。


结语

按 Agent 拆分 Usage Metrics 的意义,在于让多 Agent 治理终于拥有一条可复查的采用度证据链:用稳定 agent_id 观察不同 Agent,用 Job start 解释用户是否启动任务,用聚合 Session 观察会话形态,再把这些信号与人工审阅、测试和风险复盘连接起来。

正确的下一步不是立刻排名“哪个 Agent 最好”,而是先为一个小试点写清数据契约:看哪些字段、按什么窗口、由谁读取、缺失如何解释、什么额外证据才允许扩大范围。这样得到的报表才能服务于技术决策,而不是把一串活动数字伪装成生产率结论。


来源与延伸阅读

  • Copilot usage metrics API adds agent app activity:GitHub 官方公告,发布于 2026-08-07;说明按 Agent 聚合、字段含义、报告范围与重要限制。
  • Data available in Copilot usage metrics:当前字段定义,包含 Agent App、CLI、Copilot app 与活动维度的口径。
  • REST API endpoints for Copilot usage metrics:1 日与 28 日报告端点、权限、时间窗口与下载链接行为。

CSDN 标题:

标签:AI Agent · GitHub Copilot · 多智能体 · 可观测性 · 数据治理 · 工程效能

← 返回列表