# agent-radar · 全球智能体开源应用追踪 持续追踪全球 AI Agent 开源应用,输出**深度分析文章**(发布在 [blog.apescale.com](https://blog.apescale.com) 可巴蒂栏目), 并**镜像源码**到 `gitinbox` 组织做代码级跟踪。 设计原则:**每新增一个项目,边际成本递减,横向对比能力自动增强。** 所有项目共用同一套五维 schema,因此对比矩阵、赛道图、总纲索引都能由脚本自动生成, 人只需要做「研判与写作」这部分不可替代的工作。 --- ## 收录标准 满足任一即可收录,但会标注不同 `status`: | status | 含义 | 判定 | | --- | --- | --- | | `active` | 持续追踪 | 有实际影响力,或技术路线有代表性,值得长期跟进 | | `watch` | 观察中 | 早期项目,方向有意思但尚未验证 | | `archived` | 归档 | 停更 / 被收购 / 路线变更 | **不收录**:纯模型权重、纯数据集、无公开代码的论文复现、营销型空壳仓库。 --- ## 目录结构 ``` agent-radar/ ├── README.md # 本文件 ├── schema/ │ ├── project.schema.yaml # 五维档案字段定义 + 枚举(也是脚本的骨架生成源) │ └── license-tiers.yaml # 许可证成色分级 → 镜像可见性规则 ├── data/ │ ├── registry.yaml # 收录总表,驱动批量抓取 │ ├── projects/.yaml # 每项目一份五维档案 │ └── snapshots/.jsonl # 指标时间序列(追加式,一行一天) ├── articles/ │ ├── 00-overview.md # 总纲文源文(含矩阵占位符,由脚本回填) │ └── .md # 项目深度文源文 ├── templates/project-article.md # 文章固定章节模板 ├── scripts/ # 抓取 / 生成 / 镜像 / 发布脚本 └── site/index.html # 静态总览页 ``` --- ## 五维档案 每个项目一份 `data/projects/.yaml`,字段定义见 `schema/project.schema.yaml`: | 维度 | 回答的问题 | | --- | --- | | `identity` | 它是谁、谁在做 | | `business` | 它靠什么活着、为谁活着 | | `scenario` | 它在什么场合被用、产出什么 | | `tech` | 它怎么做到的、抽象在哪一层 | | `ecosystem` | 它的社区动能(多数由脚本自动刷新) | | `risk` | 它的坑在哪、宣称与实测的落差 | > `risk.claim_vs_reality` 是最不该留空的字段。它逼着每篇分析去核实 > 「项目方宣称 vs 实际状态」,防止文章退化成 README 复读。 --- ## 许可证分级 → 镜像可见性 **新增项目时的第一判断项。** 规则见 `schema/license-tiers.yaml`: | 级 | 判定 | 成色 | 镜像可见性 | | --- | --- | --- | --- | | L1 | MIT / Apache-2.0 / BSD / ISC / GPL / MPL | 完全开源 | `public` | | L2 | AGPL / SSPL / BUSL / Elastic-2.0 | 有限开源 | `public`(档案标注限制) | | L3 | NOASSERTION + 自定义 source-available | 源码可得、非开源 | **`private`** | | L4 | 无 LICENSE / proprietary | 不可得 | 不镜像,仅存链接 | 定错级的代价:L3 项目被公开镜像,等于替对方做了一次未经授权的公开分发。 --- ## 新增一个项目的 SOP ```bash # 1. 建档(自动抓许可证并定级 L1-L4) python3 scripts/new_project.py --repo owner/name # 2. 手工填档案五维度 —— 重点填 risk.claim_vs_reality $EDITOR data/projects/.yaml # 并把它加进 data/registry.yaml # 3. 刷新指标 python3 scripts/fetch_stats.py --id # 4. 镜像源码(按许可证等级自动决定 private / public) bash scripts/mirror_sync.sh --id # 5. 成文(套 templates/project-article.md) $EDITOR articles/.md # 6. 发布到 emlog(可巴蒂 sid=17),emlog_id 会自动回写档案 python3 scripts/publish_emlog.py --article # 7. 回填总纲并更新总纲文 python3 scripts/build_matrix.py python3 scripts/publish_emlog.py --article 00-overview # 8. 入库 git add -A && git commit -m "track: " && git push ``` ### ⚠️ 更新总纲文时必读 emlog 的 update 接口**不传 `--content` 就会清空正文**。 `publish_emlog.py` 已内置保护(update 前先 `detail` 取回全文), 但如果你手工调 emlog 脚本更新总纲,**必须先 detail 再 update**。 --- ## 脚本一览 | 脚本 | 作用 | 降级行为 | | --- | --- | --- | | `new_project.py` | 建档 + 自动判许可证等级 | API 失败时生成未定级骨架,要求人工填 | | `fetch_stats.py` | 抓指标 + 累积时间序列快照 | 无 `GITHUB_TOKEN` 则匿名降级;当日缓存;失败沿用上次快照并标 `stale` | | `build_matrix.py` | 生成对比矩阵 + 赛道图 / 象限图 | 项目 <4 个出分层图,≥4 个才出象限图 | | `mirror_sync.sh` | 源码镜像同步 | 大仓(>300MB)提示并支持 treeless clone 降级 | | `publish_emlog.py` | emlog 发布 / 更新 | update 前强制取回全文防空内容 | --- ## 已知约束 - **GitHub API 限额**:无 `GITHUB_TOKEN` 时匿名限额 60 次/小时。 项目数超过约 20 个后批量刷新会受限,建议配置 token。 - **磁盘占用**:源码镜像是全量裸仓。10 个量级约需数 GB, 大仓可用 `--filter=blob:none` 做 treeless 镜像。 - **象限图阈值**:样本 <4 个时象限图没有统计意义,此阶段只出赛道分层图。