Document Knowledge Graph engine for chip specs — like codegraph for docs.
Project description
DocGraph
面向芯片 Spec 的文档知识图谱引擎 — 让 Spec-driven 芯片开发 Agent 真正用得上 spec。
DocGraph 把 PDF/Word/Excel/Markdown 形态的芯片 spec 文档解析为 L0 无损版面、L1 可检索索引,并按需增强为 L2 实体图谱,通过 Web / MCP / CLI 暴露稳定、可追溯的查询接口。
灵感来源:codegraph —— 把代码索引为图后,agent 查询的精度和成本同时大幅改善。DocGraph 把同一套心智搬到芯片文档。
安装
PyPI 发布后可直接安装(当前尚未发布):
pip install docgraph-core
从源码参与开发:
git clone https://github.com/TTHNN-ld/docgraph.git
cd docgraph
python -m venv .venv && source .venv/bin/activate
python -m pip install --upgrade pip
pip install -e ".[dev]"
llm extra 只安装模型 provider;调用 LLM/VLM 前还需要按
启用 LLM 抽取 配置 provider、model 和 API key。
基础包自带 PyMuPDF。build 选中尚未安装的内置 parser 时,交互终端会询问是否
安装对应 extra;CI 等非交互环境不会擅自修改环境,而是自动尝试下一 parser。
首次使用可运行 docgraph setup 查看当前环境是否已准备好。需要提前安装推荐
parser 时,执行 docgraph setup parsers;需要在一次构建中明确授权补装依赖时,
使用 docgraph build --install-missing。
安装 parser 不等于预下载模型。Docling 在首次实际解析时由上游下载并缓存模型;
模型下载或初始化失败也会触发 parser 回退,并记录在 .docgraph/manifest.json。
当前 MinerU 接口仍是兼容旧版 magic-pdf 的 adapter,需显式执行
docgraph setup parsers --parser mineru;在升级到 MinerU 当前 API 前不作为推荐安装项。
5 分钟跑通
docgraph init # 在当前目录创建 .docgraph/
docgraph setup # 可选:检查 parser、LLM/VLM 和 embedding 环境
docgraph build # 解析 docs/**/*.pdf 和 spec/**/*.pdf,构建 L0/L1/L2
docgraph status # 节点/边/文档统计
docgraph doctor --strict # L0/L1 完整性 + L2 provenance/强结构检查
docgraph l2 audit --strict # L2 候选覆盖与 schema 质量审计
docgraph search "per_vector_misc" # 按名称查寄存器
docgraph search --kind clock "core" # 按类型查 clock 实体
docgraph inspect register freeze_reg # 查看寄存器详情 + bitfields
docgraph serve --mcp # 启动 MCP server,供 Claude Code 等 agent 调用
日常路径只需要 init → build。setup 是环境检查和准备入口,不是必经步骤;
--install-missing、--strict-parsers 和 --quality 保留给 CI 或质量门禁等专家场景。
三层数据架构
L0 Block — 原文无损镜像
每页的段落、表格(cells)、图、公式、阅读顺序、坐标和页码完整保留。
表格不允许丢成纯文本,图/公式保留渲染产物和原始证据。
L1 Chunk — 可寻址检索单元
章节、表格、图各自成 chunk,带稳定 ID 和 block_ids 回溯链。
支持 FTS5 全文检索 + 语义向量检索,按章节路径和页范围过滤。
L2 Node/Edge — 实体知识图谱(可选增强)
寄存器、bitfield、管脚、信号、接口、中断、memory_map、时钟、复位、
需求、时序参数等实体。每条标注抽取来源和可信度——
deterministic = 表格确定性抽取,可信;
vlm/llm = 模型抽取,需回到 L0 原文验证。
L2 缺失不影响信息获取,L1/L0 永远可直达。
芯片工程场景
| 阶段 | 典型任务 | 用到什么 |
|---|---|---|
| RTL 设计 | 模块边界、接口清单、寄存器 map、地址空间 | L2 register/memory_map/interface + L0 原表兜底 |
| DV 验证 | test plan、UVM RAL 建模、coverage item | L2 register/bitfield 精确字段 + L0 寄存器表 |
| 中后端 | STA/SDC 约束、CDC/RDC 检查、floorplan 集成 | L1 时钟/复位章节定位 + L0 结构图原文 |
| Bring-up | LTSSM debug、JTAG 可测性、中断状态观测 | L2 register + L1 figure/section 联合检索 |
当前强项:寄存器/bitfield 确定性抽取。从表格中提取的字段(bit range、access、reset value)agent 可直接使用,无需人肉对齐原表。
当前短板:时钟/复位实体覆盖率偏低(~15%),主要来自框图 VLM 抽取。相关场景 agent 需更多回退到 L1/L0 读原文。
详见 评测报告。
文档
Agent 使用模式
1. context(task, mode="auto") → 默认入口:小语料完整 L1,大语料透明检索视图
2. fetch_many(chunk_ids) → 批量取证:完整 L1 + 去重 L0 blocks + L2 candidates
3. search("per_vector_misc") → L2 加速:实体查(每条带 source_quality)
核心原则:MCP 提供透明、可解释、可继续展开的文档视图,不替 agent 写答案。L0 原文是权威,L1 chunk 是主要阅读材料,L2 实体是候选和加速索引。Agent 自己决定关注什么、相信什么、是否继续取证。
MCP 工具共 9 个(按层次):
| 层次 | 工具 | 作用 |
|---|---|---|
| 默认入口 | docgraph_context |
按语料规模返回完整 L1 或检索候选,公开覆盖范围、排序理由和游标 |
| L0 原文 | docgraph_fetch, docgraph_fetch_many |
单个或批量读取完整 chunk、L0 blocks 和相关 L2 candidates |
| L1 发现 | docgraph_search_chunks, docgraph_section |
关键词/语义搜 chunks + 章节树导航 |
| L2 提示 | docgraph_search |
实体查,每条标注 needs_source_check 和来源 |
| 图谱 | docgraph_neighbors |
邻域关系浏览 |
| 元信息 | docgraph_status, docgraph_files |
图谱统计和文档列表 |
评测结果
基于 2 份 PCIe spec(84 页)的代表性芯片工程 case,Baseline(直接读取 PDF)vs 当前 DocGraph MCP 对照:
| 场景 | DocGraph 表现 | 说明 |
|---|---|---|
| 寄存器/RAL 抽取 | ✅ 13 turns / 12 tools / 120.2s / $0.646 | Baseline 为 25 turns / 24 tools / 349.0s / $0.904;结构化表格任务收益明显 |
| 跨文档地址转换 | ✅ 9 turns / 8 tools / 196.7s / $0.719 | Baseline 为 17 turns / 14 tools / 188.5s / $0.510;DocGraph 成本略高,但证据覆盖更系统,且未突破页数预算 |
| Clock/Reset 验证 | ✅ 26 turns / 25 tools / 243.6s / $1.173 | Baseline 480s 超时;L2 覆盖不足时仍可依赖 L1 完成 |
关键结论:
- DocGraph 在表格式信息(register/bitfield/signal/interface)上有明确价值,确定性抽取可以直接提供 bit range、access、reset 等字段。
docgraph_context让小语料直接返回完整 L1,大语料自动切到检索候选,避免把 L2 当成唯一入口。docgraph_fetch_many能显著减少宽问题中逐条回到 L0 的工具往返。- Clock/reset 仍是实体覆盖短板,但当前 MCP 路径已经能通过 L1/L0 完成相关任务。
详见 自适应上下文评测报告 和 历史评测报告。
项目状态
Beta 可用 — L0/L1 已由 docgraph doctor --strict 做质量门禁;L2 已有 provenance、强结构校验、候选覆盖审计 docgraph l2 audit 和 golden 评估入口 docgraph l2 eval。
当前重点工作(M7 分层重构):
- 提升 clock/reset 实体覆盖率(从接口表确定性抽取,当前 ~15%)
- 填充 register 实体的 address/offset/access/reset 属性
- 更大规模文档集评测验证规模优势
License: Apache 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docgraph_core-0.1.0.tar.gz.
File metadata
- Download URL: docgraph_core-0.1.0.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e06bdd9d1a5f173a9678d4317ed2475a20ee0c852bd8ccb032fdbfb12e07e52b
|
|
| MD5 |
7cf24ed7e8fa8343883dcda1e78bcd6f
|
|
| BLAKE2b-256 |
5b05bbaac26184de4d06461d7e8053525bf88086a8743226c9d9dc366af5a015
|
File details
Details for the file docgraph_core-0.1.0-py3-none-any.whl.
File metadata
- Download URL: docgraph_core-0.1.0-py3-none-any.whl
- Upload date:
- Size: 256.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6a1cb645552e9fedd6d47ef30f48b43c3345fd5956e46903eb08fd4904514eb
|
|
| MD5 |
c908719192684d32b719c8cad7609350
|
|
| BLAKE2b-256 |
a80c32d877c679c65afbfa5ca553f6a051b40f61126f65288b8c3e4569fe559f
|