核心用法
gitlab-agent-profile 是一款面向 GitLab 生态的自动化技能,用于构建和维护 Agent 的静态贡献档案。该技能通过 glab CLI 和 Python3 脚本,定期抓取指定项目的合并请求与提交记录,生成三类输出:SVG/WebP 可视化图表、JSON 证明文件,以及分类统计摘要。
运行流程包含每日例行检查:验证 GitLab 认证有效性 → 执行 update-profile-stats.py → 若资产变更则提交推送。用户可通过环境变量精细控制输出路径、目标项目范围、统计周期(默认12个月)及人机身份标识。
显著优点
1. 透明化协作度量:将 Agent 贡献细分为"Owner 主导""Agent+人工复核""Agent 自主"三类,辅以贡献积分算法(MR 按规模加权,直接 commit 按 0.2 分计),为人机协作效能提供可量化依据。
2. 零依赖外部服务:完全基于 GitLab API 与静态文件,图表为自包含 SVG,JSON 证明可独立校验,符合可复现审计需求。
3. 灵活的项目范围:支持短名自动扩展(如 ci-tools → xrow-public/ci-tools),便于批量管理多仓库组织。
潜在缺点与局限性
- 标签依赖的准确性:MR 分类重度依赖
type::fix/feature及size::*标签,团队若标签使用不规范将导致统计失真。 - Conventional Commit 回退逻辑单一:无标签时仅识别
fix:/feat:前缀,对refactor:、perf:等类型完全忽略。 - 硬编码过滤规则:
skip:、chore:、docs:、revert等提交前缀被硬性排除,可能误过滤有价值的贡献。 - Owner 直接 commit 识别局限:依赖作者/提交者用户名匹配与 MR 合并提交排除,在复杂 rebase 场景下可能漏判。
适合人群
- 采用 GitLab 作为代码托管的 AI Agent 研发团队
- 需向利益相关方展示人机协作透明度的技术管理者
- 追求贡献可审计、可量化的开源/企业内部 Agent 项目
常规风险
| 风险类别 | 说明 |
|---------|------|
| Token 泄露 | `GITLAB_TOKEN` 为全功能 Personal Token,需限制 scope 为 `read_api`、`read_repository` 最小权限 |
| 仓库污染 | 脚本每日自动提交,若配置错误可能产生大量无意义 commit,建议启用分支保护 |
| 数据隐私 | JSON 证明包含原始 MR 元数据,公开仓库部署时需脱敏处理 |
| 评分操纵 | 贡献积分算法公开后,存在通过刻意拆分 MR 刷分的可能 |
技术依赖
glab(GitLab CLI)python3+ 图表生成库(matplotlib/plotly 等,由脚本内部管理)- 目标仓库需启用 Git LFS(若 WebP 文件较大)