10-Git 仓库蒸馏术:从代码仓库到 OpenClaw 虚拟人-蒸馏工具链
·
10 蒸馏工具链:自动化蒸馏流水线
这是《Git 仓库蒸馏术:从代码仓库到 OpenClaw 虚拟人》系列的第 10 篇。前 9 篇我们手工完成了蒸馏的每一步:盘点、挖掘、分析、提炼、建模。这一篇把这些步骤固化成一条自动化流水线——蒸馏工具链。手工蒸馏一次可以,但仓库会持续演进,蒸馏必须能重复执行。
一、工具链架构:采集、分析、提炼、输出
蒸馏工具链分四层,对应蒸馏流程的四个阶段:
┌─────────────────────────────────────────────┐
│ 输出层:知识产物(画像/报告/文档/图谱) │
├─────────────────────────────────────────────┤
│ 提炼层:模式提炼 / ADR 生成 / 图谱构建 │
├─────────────────────────────────────────────┤
│ 分析层:结构分析 / 历史挖掘 / 依赖分析 │
├─────────────────────────────────────────────┤
│ 采集层:git 数据 / issue / PR / 代码 │
└─────────────────────────────────────────────┘
| 层级 | 职责 | 对应前篇 | 工具 |
|---|---|---|---|
| 采集层 | 拉取原始数据 | 03 盘点、06 文档 | git、gh CLI、cloc |
| 分析层 | 分析结构/历史/依赖 | 04 挖掘、05 分析 | madge、jscpd、git log |
| 提炼层 | 提炼模式/决策/图谱 | 07 模式、08 决策、09 图谱 | 自研脚本 |
| 输出层 | 生成知识产物 | 各篇产出物 | 模板引擎 |
核心设计原则:每一层只依赖下一层,层与层之间通过"标准数据格式"解耦。
二、流水线设计:从仓库到知识产物的自动化流程
2.1 流水线阶段
[仓库] → [采集] → [分析] → [提炼] → [输出] → [知识产物]
↑ │
└────────────── 仓库演进后重新执行 ──────────────┘
每个阶段有明确的输入输出:
| 阶段 | 输入 | 处理 | 输出 |
|---|---|---|---|
| 采集 | 仓库 | git/gh/cloc 拉取 | 原始数据(JSON) |
| 分析 | 原始数据 | madge/jscpd/git log | 分析结果(JSON) |
| 提炼 | 分析结果 | 模式/ADR/图谱脚本 | 知识单元(JSON) |
| 输出 | 知识单元 | 模板渲染 | 知识产物(MD/图谱) |
2.2 流水线编排
用 Makefile 或脚本编排各阶段:
# Makefile
.PHONY: all collect analyze refine output
all: output
# 采集层
collect:
bash scripts/collect.sh > data/raw.json
# 分析层
analyze: collect
python scripts/analyze.py data/raw.json > data/analysis.json
# 提炼层
refine: analyze
python scripts/refine.py data/analysis.json > data/knowledge.json
# 输出层
output: refine
python scripts/render.py data/knowledge.json output/
# 一键执行整条流水线
make all
2.3 流水线状态管理
流水线要支持"断点续跑"——某一步失败不用重跑全部:
// pipeline-state.json
{
"last_run": "2026-08-17T10:00:00",
"stages": {
"collect": { "status": "done", "output": "data/raw.json" },
"analyze": { "status": "done", "output": "data/analysis.json" },
"refine": { "status": "failed", "error": "ADR-004 缺少理由" },
"output": { "status": "pending" }
}
}
三、常用工具集成
3.1 工具清单
把前几篇用到的工具统一集成:
| 工具 | 用途 | 阶段 | 安装 |
|---|---|---|---|
git |
历史/元信息采集 | 采集 | 内置 |
gh |
issue/PR 拉取 | 采集 | brew install gh |
cloc |
代码量统计 | 采集 | brew install cloc |
tree |
目录结构 | 采集 | brew install tree |
madge |
依赖分析 | 分析 | npm i -g madge |
jscpd |
重复检测 | 分析 | npm i -g jscpd |
dependency-cruiser |
架构规则 | 分析 | npm i -g dependency-cruiser |
networkx |
图谱构建 | 提炼 | pip install networkx |
3.2 统一配置
用一份配置文件管理所有工具参数:
# config.yaml
repo:
path: "."
exclude_dirs: ["node_modules", ".git", "dist", "build"]
collect:
cloc: true
tree_depth: 3
gh_org: "myorg"
gh_repo: "myrepo"
analyze:
madge_extensions: ["ts", "tsx", "vue"]
jscpd_min_lines: 5
jscpd_min_tokens: 50
refine:
adr_dir: "docs/adr"
pattern_dir: "patterns"
graph_output: "knowledge-graph.json"
output:
template_dir: "templates"
output_dir: "output"
3.3 采集脚本示例
#!/bin/bash
# scripts/collect.sh
# 采集层:拉取所有原始数据
REPO_DIR="${1:-.}"
cd "$REPO_DIR"
echo "=== 采集 git 元信息 ==="
{
echo "{\"total_commits\": $(git rev-list --count HEAD),"
echo "\"first_commit\": \"$(git log --reverse --format='%ai' | head -1)\","
echo "\"last_commit\": \"$(git log -1 --format='%ai')\","
echo "\"contributors\": $(git shortlog -sne | wc -l | tr -d ' '),"
echo "\"branches\": $(git branch -r | wc -l | tr -d ' '),"
echo "\"tags\": $(git tag | wc -l | tr -d ' ')}"
} > data/git-meta.json
echo "=== 采集代码规模 ==="
cloc . --exclude-dir=node_modules,.git,dist,build --json > data/cloc.json 2>/dev/null
echo "=== 采集 issue/PR ==="
gh issue list --state all --limit 500 --json number,title,body,labels > data/issues.json
gh pr list --state merged --limit 500 --json number,title,body > data/prs.json
echo "采集完成"
四、输出工具链方案
4.1 工具链方案文档
# 蒸馏工具链方案
## 目标
将仓库蒸馏流程固化为可重复执行的自动化流水线。
## 架构
四层架构:采集 → 分析 → 提炼 → 输出
## 流水线
make all 一键执行,支持断点续跑。
## 工具清单
(见上文工具清单表)
## 配置
统一 config.yaml 管理所有参数。
## 目录结构
distill-toolchain/
├── Makefile
├── config.yaml
├── scripts/
│ ├── collect.sh
│ ├── analyze.py
│ ├── refine.py
│ └── render.py
├── templates/
│ ├── adr.md.j2
│ ├── pattern.md.j2
│ └── report.md.j2
├── data/ # 中间数据(raw/analysis/knowledge)
└── output/ # 最终知识产物
## 使用方式
1. 配置 config.yaml(仓库路径、工具参数)
2. 运行 make all
3. 查看 output/ 下的知识产物
## 扩展性
- 新增分析工具:在 analyze.py 中注册
- 新增输出模板:在 templates/ 中添加
- 支持多仓库:config.yaml 支持多仓库配置
4.2 工具链的用途
工具链是蒸馏流程的工程化底座:
- 给 11 虚拟人机制:工具链产出的知识产物,是虚拟人 memory 的输入
- 给 12 蒸馏产物→虚拟人:工具链让"仓库→虚拟人"的转化可重复执行
- 给 13 落地:仓库演进后,重新运行工具链即可更新虚拟人知识
五、小结
这一篇的核心收获:
- 四层架构:采集、分析、提炼、输出,层间用标准数据格式解耦。
- 流水线设计:Makefile 编排 + 断点续跑,仓库演进后可重复执行。
- 工具集成:统一 config.yaml 管理 git/gh/cloc/madge/jscpd 等工具。
- 输出工具链方案:一份可落地的自动化蒸馏流水线方案。
下一篇,我们进入虚拟人世界:[11 OpenClaw 虚拟人机制:persona、memory、skills](11-Git 仓库蒸馏术:从代码仓库到 OpenClaw 虚拟人-OpenClaw虚拟人机制.md)——了解虚拟人的三要素,为"把蒸馏产物变成虚拟人"做准备。
上一篇:[09 知识图谱构建:连接知识节点](09-Git 仓库蒸馏术:从代码仓库到 OpenClaw 虚拟人-知识图谱构建.md)
下一篇:[11 OpenClaw 虚拟人机制:persona、memory、skills](11-Git 仓库蒸馏术:从代码仓库到 OpenClaw 虚拟人-OpenClaw虚拟人机制.md)
更多推荐
所有评论(0)