Dying-Ember/KGFlow
GitHub: Dying-Ember/KGFlow
基于 Neo4j 知识图谱的多 Agent 代码分析工具链,将源码转化为图谱后实现影响分析、架构门禁和并行开发安全判定的自动化工作流。
Stars: 0 | Forks: 0
# KGFlow — Knowledge Graph Assisted Development Workflow
将项目代码转换 Neo4j 知识图谱,并通过多 Agent 协作实现 Code Review、影响分析、并行开发安全判定和架构门禁的 CLI 工具链。
## 核心能力
git diff → changed_methods → Gate 并行判定 → 审计门禁 → 结论
│
项目源码 ─→ AST 解析 ─→ Neo4j 图谱 │
↑ │
代码变更 ──────────────────┘
| 能力 | 工具 | 说明 |
|------|------|------|
| 图谱生成 | `generate_knowledge_graph.py` | 用 Python `ast` 模块解析源码,生成 Cypher 导入脚本 |
| 增量对比 | `diff_kg.py` | 比较两次生成结果,输出节点/边增量 + 变更归因 |
| 影响分析 | `query_kg.py impact` | 输入方法,输出调用链、配置引用、测试覆盖 |
| 并发判定 | `query_kg.py check-parallel` | 两层 Gate 判断两个子任务能否并行开发 |
| 调用链 | `query_kg.py call-chain` | 上溯调用者/下追被调用者 |
| 架构检查 | `query_kg.py cross-layer` | 检测层间依赖违规(如 engine → app)|
| 变更映射 | `query_kg.py resolve-changes` | git diff → KG Method 节点映射 |
| 工件校验 | `validate_artifacts.py` | L1 结构 + L2 枚举 + L3 Neo4j 交叉引用 |
## 快速开始
### 1. 环境准备
| 依赖 | 版本 | 用途 |
|------|------|------|
| Python | >= 3.13 | 运行环境 |
| [uv](https://docs.astral.sh/uv/) | 最新 | 包管理 |
| [Neo4j](https://neo4j.com/download/) | 5.x | 图数据库(bolt://localhost:7687)|
| 被分析项目 | — | 你的源码(默认: `D:\PythonProgramming\1\Automation-Inspection`)|
### 2. 安装
git clone https://github.com/Dying-Ember/KGFlow.git
cd KGFlow
uv sync
### 3. 验证 CLI
一键验证:生成图谱 → CI 覆盖度检查 → 退出。
uv run python tools/generate_knowledge_graph.py --ci
如果看到 `CI coverage check: PASS`,说明解析引擎正常工作。
### 4. 配置 MCP Server(Agent 工作流)
在 `.claude/settings.local.json` 中写入:
{
"mcpServers": {
"kgflow": {
"command": "uv",
"args": ["run", "python", "tools/mcp_server.py"],
"env": {
"KGFLOW_NEO4J_PASSWORD": "your-neo4j-password"
}
}
}
}
完成后重新启动 Claude Code。 spawned 的任何 sub-agent/teammate 会自动继承 `kgflow_*` 这一组 typed tools。
### 5. 上手体验
#### 方式 A — 人手调 CLI(适合调试)
# 影响范围分析
uv run python tools/query_kg.py impact \
--methods '["FeishuClient._get_token"]' --depth 3
# 增量对比(需要至少两个存档)
uv run python tools/diff_kg.py --from-latest 2 --to-latest 1
# 工件校验(输出 JSON)
uv run python tools/validate_artifacts.py --json artifacts/
#### 方式 B — Agent 自动编排(核心工作流)
在 Claude Code 中 spawn **Lead**,给一个开发需求。全自动执行:
你(人类): @spawn lead
需求:给 InnoShareEngine.run 加超时重试
Lead → Tech Lead → Impact Analyst(查影响范围)
→ 拆任务 → 门禁判定 → 你确认
→ Sub-Dev × N(并行实现)
→ Auditor + KG Ops(审计 + 更新图谱)
详细角色分工见下方[多 Agent 工作流](#多-agent-工作流)和 `.claude/agents/` 下的 prompt。
### 6. 用 `--json` 拿结构化输出
所有工具支持 `--json` 参数,供脚本和 CI 消费:
uv run python tools/generate_knowledge_graph.py --json
uv run python tools/validate_artifacts.py --json artifacts/
uv run python tools/import_neo4j.py --dry-run --json # 仅校验,不修改数据库
错误输出到 stderr,格式统一:`{"error": true, "code": "...", "detail": "..."}`。
凭据从环境变量注入(`KGFLOW_NEO4J_*`),不硬编码。
## 项目结构
Automation-Insight-KGFlow/
├── tools/
│ ├── generate_knowledge_graph.py ← 主入口:解析 + 生成 + 存档
│ ├── import_neo4j.py ← Cypher 文件导入 Neo4j
│ ├── query_kg.py ← 7 个子命令的 Neo4j 查询工具
│ ├── diff_kg.py ← Run-to-run 增量对比 + 变更归因
│ ├── validate_artifacts.py ← L1+L2+L3 工件校验
│ ├── mcp_server.py ← FastMCP Server(10 typed tools)
│ ├── config.py ← kgflow.toml 配置加载
│ ├── errors.py ← 结构化 JSON 错误码
│ ├── neo4j_config.py ← Neo4j 凭据(环境变量)
│ ├── ast_parser.py ← AST 解析引擎(legacy)
│ └── cypher_generator.py ← Cypher 格式化 + 元信息
├── .claude/agents/
│ ├── lead.md ← 人机接口 Agent prompt
│ ├── tech-lead.md ← 技术编排 Agent prompt(checkpoint 循环)
│ ├── impact-analyst.md ← 影响分析 Agent prompt
│ ├── sub-dev.md ← 子任务实现 Agent prompt
│ ├── auditor.md ← 审计 Agent prompt
│ └── kg-ops.md ← 图谱维护 Agent prompt
├── artifacts/schemas/ ← 6 种工件 JSON Schema
├── output/ ← 生成的 .cypher 文件 + 存档
├── pyproject.toml
└── README.md
## 图模型(Schema 定义)
**节点类型:** Module, Class, Method, Function, CallSite, Condition, ErrorType, Signal, ConfigFile, ConfigSection, WorkerThread, ExternalSystem, KGMetadata
**关系类型:** IMPORTS, DEFINES_CLASS, OWNS_METHOD, COMPOSES, INHERITS, CALLS_METHOD({confidence}), CONTAINS_CALL, HANDLES_ERROR, RAISES, CHECKS_CONDITION, EMITS_SIGNAL_IN, READS_CONFIG, DEPENDS_ON, TESTS, MOCKS
节点/边的实际数量取决于被分析项目的规模。可通过 `kgflow_diff` 查看不同 run 之间的增量变化。
## 多 Agent 工作流
Phase 1 (Tech Lead 编排)
Tech Lead → spawn Impact Analyst → artifacts/impact_report.json
→ 拆任务 → artifacts/plan_tasks.json
→ checkpoint 退出,等待人类确认
Phase 2 (Tech Lead 重生)
读 checkpoint → Gate 1/2/3 判定 → artifacts/change_intent.json
→ checkpoint 退出
Phase 3 (Tech Lead 重生)
读 checkpoint → spawn Sub-Dev × N → 合并 diff
→ checkpoint 退出
Phase 4 (Tech Lead 重生)
读 checkpoint → spawn Auditor + KG Ops → 检查结果
→ checkpoint 退出 → Lead 汇报给人类
## 版本
- Generator: 2.0.0
- Schema: 1.0.0
## 开发状态
Phase Status Items
─────────────────────────────────────────────────────
P0: 核心工具链 ✅ 100% 7 CLI tools + parser + cypher gen
P0: Extractor 框架 ✅ 100% base.py + registry + python_extractor (regression 0 diff)
P1: tree-sitter 查询 ✅ 100% 12 .scm files (python/javascript/go, 249 lines)
P1: 多语言验证 ✅ 100% JavaScriptExtractor (JS/TS/JSX, 1056 lines)
P2: kgflow.toml 配置 ✅ 100% 项目级配置 + 多 root 支持
P2: Coverage 指标 ✅ 100% CI 阈值 + 解析质量统计
P3: CLI 标准化 ✅ 100% --json, argparse, env var creds, structured errors
P3: 多角色 Agent 编排 ✅ 100% 6 agent prompt + checkpoint 循环 + 失败升级协议
P3: MCP Server ✅ 100% 10 typed tools via FastMCP
## 设计文档
完整设计方案: [kg-workflow-design.md](./kg-workflow-design.md)
标签:AST解析, CodeReview, Cypher查询, DevSecOps, GitDiff, Neo4j, Python, WebSocket, 上游代理, 云安全监控, 代码分析, 代码图谱, 代码审查, 依赖分析, 凭证管理, 变更归因, 增量分析, 多智能体, 安全判定, 工件校验, 并发安全, 影响分析, 技术架构, 数据管道, 无后门, 架构门禁, 研发效能, 自动化payload嵌入, 调用链分析, 软件工程, 逆向工具, 静态分析