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 复制代码
# 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/
bash 复制代码
# 一键执行整条流水线
make all

2.3 流水线状态管理

流水线要支持"断点续跑"------某一步失败不用重跑全部:

json 复制代码
// 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 统一配置

用一份配置文件管理所有工具参数:

yaml 复制代码
# 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 采集脚本示例

bash 复制代码
#!/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 工具链方案文档

markdown 复制代码
# 蒸馏工具链方案

## 目标
将仓库蒸馏流程固化为可重复执行的自动化流水线。

## 架构
四层架构:采集 → 分析 → 提炼 → 输出

## 流水线
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 落地:仓库演进后,重新运行工具链即可更新虚拟人知识

五、小结

这一篇的核心收获:

  1. 四层架构:采集、分析、提炼、输出,层间用标准数据格式解耦。
  2. 流水线设计:Makefile 编排 + 断点续跑,仓库演进后可重复执行。
  3. 工具集成:统一 config.yaml 管理 git/gh/cloc/madge/jscpd 等工具。
  4. 输出工具链方案:一份可落地的自动化蒸馏流水线方案。

下一篇,我们进入虚拟人世界: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)

相关推荐
艾伦_耶格宇2 小时前
【DOCKER容器实战】-3 ElasticSearch + Kibana
elasticsearch·docker·jenkins
夏贰四2 小时前
管控数据加载调度如何规避任务冲突?数据加载运维监控体系该如何搭建?
java·大数据·运维
BYSJMG3 小时前
计算机毕业设计选题推荐:基于大数据的心脏病风险数据可视化与分析(Hadoop+Spark+PySpark)
大数据·hadoop·信息可视化·数据分析·spark·课程设计
长谷深风1113 小时前
好的 Tool Schema,不是字段越全越好
java·大数据·人工智能·ai agent·agent工作流·智能体设计·ai产品设计
sel_93 小时前
【Docker】Docker 安装与使用详解:从零搭建到日常实战
人工智能·深度学习·算法·docker
TMT星球3 小时前
网易发布2026Q2财报:净收入301亿元,创新驱动长青矩阵稳健增长
大数据
huanqiuworld3 小时前
中策大数据实力如何?从数据、真实性到服务的五维综合评价
大数据
AcaDesign5 小时前
国家/省部市级科技奖答辩PPT_科技进步奖_自然科学奖_技术发明奖|WordinPPT
大数据·人工智能·科技·powerpoint
小淮AI11 小时前
国际教育课程的本土化探索:以枫叶教育三十年为观察样本
大数据·人工智能