🔬 CodeGraph × Hermes Skills 知识库深度分析

把技能文件夹当成知识库来管理 — CodeGraph 对未来 Harness 优化的价值评估

📅 2026-06-24 · 🛠 CodeGraph CLI (local) · 📂 ~/.hermes/skills/


93
技能目录 (SKILL.md)
139
已索引文件
2,823
知识图谱节点
6,702
关系边
7.32
索引体积 (MB)
3.3s
索引耗时
📑 目录
  1. 研究背景与方法
  2. 技能文件夹全景:900 个文件的知识资产
  3. CodeGraph 索引结果:代码层的知识图谱
  4. 关键发现一:last30days 的「中心化枢纽」架构
  5. 关键发现二:submit() 的影响分析 — 27 个符号的涟漪效应
  6. 关键发现三:跨技能代码复用网络
  7. 关键发现四:渲染引擎的复杂度热点
  8. Harness 优化推演:技能即知识库的管理范式
  9. 结论与建议

一、研究背景与方法

Hermes Agent 的技能系统 (~/.hermes/skills/) 是一个混合知识库:既包含 Markdown 格式的 Harness Engineering 理论文档(原则、模式、检查清单),也包含 Python/Shell 脚本形式的可执行工具。本研究使用 CodeGraph — 一个基于 tree-sitter 的语义代码智能平台 — 对技能文件夹进行完整的知识图谱构建与分析。

CodeGraph 核心能力:

研究方法:

  1. ~/.hermes/skills/ 执行 codegraph init -i 全量索引
  2. 通过 codegraph status 获取全局统计
  3. 对高扇入符号(如 submit())执行 callersimpact 分析
  4. 对关键子系统(render 引擎、pipeline 架构)执行语义搜索
  5. 结合 Harness Engineering 框架进行优化推演

二、技能文件夹全景:900 个文件的知识资产

技能目录总计 900 个文件,分布在 93 个技能子目录中:

文件类型数量占比角色
Markdown (.md)56963.2%知识文档:原则、模式、检查清单、章节
Python (.py)13214.7%可执行脚本:数据处理、API 调用、渲染
Shell (.sh)141.6%部署脚本:Cloudflare Pages、环境配置
YAML (.yaml)40.4%配置文件
其他(模板、数据等)18120.1%HTML 模板、JSON 数据、图片等

Python 脚本分布热力图

技能目录.py 文件数复杂度说明
last30days/scripts/66极高完整的深度研究引擎:pipeline、渲染、多源聚合
creative/comfyui/16ComfyUI 工作流执行器 + 批量处理
book-to-skill/scripts/14书籍提取器:HTML/EPUB/PDF 解析链
productivity/11Google Workspace、PowerPoint、OCR 工具
red-teaming/godmode/4越狱测试脚本
creative/pixel-art/4像素艺术生成
其他 12 个技能17单文件工具脚本

三、CodeGraph 索引结果:代码层的知识图谱

$ codegraph init -i
◆ Scanning files — 139 found
◆ Parsing code — done
◆ Resolving refs — done
● 2,823 nodes, 6,702 edges in 3.3s

节点类型分布

节点类型数量占比含义
function1,23343.7%函数定义 — 知识图谱的核心实体
import69224.5%导入声明 — 模块依赖关系
variable49817.6%变量声明 — 配置常量与状态
method1966.9%类方法 — 面向对象结构
file1354.8%文件节点 — 模块级入口
class662.3%类定义 — 核心抽象
constant30.1%常量声明
图谱密度指标: 6,702 条边 / 2,823 个节点 = 平均度 4.75。这说明代码模块之间存在密集的调用与引用关系,绝非松散的独立脚本集合。

四、关键发现一:last30days 的「中心化枢纽」架构

last30days 技能包含 66 个 Python 文件,占全部索引文件的 47.5%。CodeGraph 揭示了一个高度模块化的内部架构:

last30days/scripts/lib/ — 核心引擎模块图 ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │ pipeline.py │───▶│ render.py │───▶│ html_render │ │ (主编排器) │ │ (文本渲染) │ │ (HTML渲染) │ └──────┬──────┘ └──────────────┘ └──────────────┘ │ ├──▶ reddit.py ├──▶ hackernews.py ├──▶ reddit_keyless.py ├──▶ github.py ├──▶ reddit_listing.py ├──▶ polymarket.py ├──▶ reddit_rss.py ├──▶ youtube_yt.py ├──▶ bird_x.py ├──▶ tiktok.py ├──▶ competitors.py ├──▶ providers.py └──▶ fanout.py └──▶ resolve.py 辅助模块: schema.py, categories.py, dedupe.py, env.py, http.py, relevance.py, signals.py, snippet.py, skill_meta.py, planner.py

pipeline.py 是整个系统的中枢,它编排了 15+ 个数据源模块的并行采集、相关性过滤和渲染输出。这是一个完整的 ETL 引擎,而非简单的脚本。

五、关键发现二:submit() 的影响分析 — 27 个符号的涟漪效应

CodeGraph 的 impact 分析揭示了 ComfyRunner.submit() 方法的惊人影响范围:

⚠️ 变更 submit() 将影响 27 个符号,横跨 5 个独立技能:

这意味着 submit() 实际上是一个跨技能的 HTTP 请求基础设施,被多个技能的 HTTP 客户端复用。从 Harness Engineering 视角看,这是一个典型的「隐式共享依赖」— 任何对该函数的修改都需要跨技能回归测试。

受影响技能受影响函数数风险等级
last30days/scripts/lib/17
creative/comfyui/scripts/5
red-teaming/godmode/scripts/2
其他(resolve.py 等)3

六、关键发现三:跨技能代码复用网络

CodeGraph 的调用者分析揭示了一个此前未被显式记录的跨技能复用网络

66 个类定义揭示了领域建模深度

类名所在技能领域角色
ComfyRunnercreative/comfyuiComfyUI API 客户端
WorkflowRunErrorcreative/comfyui工作流错误处理
ReasoningClientlast30days推理模型客户端
GeminiClientlast30daysGemini API 客户端
OpenAIClientlast30daysOpenAI API 客户端
XAIClientlast30daysxAI/Grok API 客户端
OpenAIAuthlast30days认证管理
HTTPErrorlast30daysHTTP 错误处理
_HTMLTextExtractorbook-to-skillHTML 解析器
ExtractionErrorbook-to-skill提取错误处理
HTTPResponsecreative/comfyuiHTTP 响应封装
_StripSensitiveOnRedirectSessioncreative/comfyui安全重定向处理

这些类定义表明技能系统已经超越了「简单脚本」阶段,进入了领域建模层次 — 有完整的错误处理、认证管理、多 Provider 客户端抽象。这正是 Harness Engineering 中「制度资产化」的体现。

七、关键发现四:渲染引擎的复杂度热点

render 关键词的语义搜索返回了 10+ 个渲染函数,揭示了 last30days 的输出层是一个高度分化的渲染引擎:

函数位置功能
render_compactrender.py:95紧凑型文本报告
render_for_htmlrender.py:190HTML 报告生成
render_for_html_comparisonrender.py:222对比型 HTML 报告
render_comparison_multirender.py:574多实体对比报告
render_comparison_multi_contextrender.py:754多实体上下文对比
render_fullrender.py:788完整报告
render_contextrender.py:932上下文渲染
render_htmlhtml_render.py:346HTML 渲染引擎
render_html_comparisonhtml_render.py:366HTML 对比渲染
_render_badgerender.py:48徽章组件
复杂度信号: 仅渲染层就有 10+ 个变体函数,说明输出格式的多样化需求正在驱动代码膨胀。这是 Harness Engineering 中「上下文治理」需要关注的热点 — 如果未来需要新增输出格式(如 PDF、PPTX),渲染层将成为变更的高风险区域。

八、Harness 优化推演:技能即知识库的管理范式

基于 CodeGraph 的分析结果,结合 Harness Engineering 的框架,推演以下优化方向:

1. 技能依赖图谱化 — 从「文件目录」到「知识图谱」

当前技能管理是基于文件系统的扁平目录结构。CodeGraph 证明了技能之间存在密集的隐式依赖(2,823 节点、6,702 边)。建议:

2. 共享基础设施显式化 — 解决「隐式复用」风险

submit() 的 27 个下游符号暴露了一个架构问题:关键基础设施函数被散布在技能脚本中,没有统一的版本管理和变更通知。建议:

3. 技能复杂度治理 — 分级管理策略

CodeGraph 揭示了技能之间的巨大复杂度差异(last30days 有 66 个 .py 文件 vs 大多数技能只有 1 个)。建议采用分级治理:

复杂度等级文件数管理策略示例
L1 简单1-3 个 .py直接维护,无需额外治理find-nearby, academic-research
L2 中等4-10 个 .py定期 impact 分析,关注跨技能依赖godmode, powerpoint, pixel-art
L3 复杂11-20 个 .py需要架构文档 + 测试覆盖comfyui, book-to-skill, productivity
L4 极高20+ 个 .py独立子项目管理 + CI/CD + 代码评审last30days (66 files)

4. Harness Engineering 知识图谱化 — 理论到实践的闭环

技能文件夹中的 Markdown 文档(569 个 .md 文件)是 Harness Engineering 的理论资产,而 Python 脚本(132 个 .py 文件)是实践资产。CodeGraph 目前只能索引代码层,但两者之间的映射关系是高价值目标:

理论层 (569 .md) 实践层 (132 .py) ┌─────────────────────┐ ┌─────────────────────┐ │ harness-engineering │──映射──▶ │ last30days/pipeline │ │ · 五层架构 │ │ · 实际编排实现 │ │ · Query Loop │ │ · 数据采集循环 │ │ · 十条原则 │──映射──▶ │ creative/comfyui │ │ · 工具权限分级 │ │ · 权限控制实践 │ │ verification-gate │──映射──▶ │ book-to-skill │ │ · 验证门控 │ │ · 验证脚本实现 │ │ compression-monitor │──映射──▶ │ last30days/render │ │ · 上下文治理 │ │ · 输出预算管理 │ └─────────────────────┘ └─────────────────────┘

未来如果能构建「理论-实践双向索引」,就能实现:给定一个 Harness 原则,自动定位所有实现该原则的技能脚本;给定一个脚本,自动关联它体现的 Harness 原则。这将是技能管理从文件系统升级到知识图谱的关键一步。

九、结论与建议

核心结论:CodeGraph 对 Hermes 技能知识库的分析揭示了三个关键洞察:
  1. 技能不是孤立脚本,而是密集耦合的代码网络 — 2,823 个节点、6,702 条边证明技能之间存在大量隐式依赖
  2. 关键基础设施函数(如 submit())的影响范围远超预期 — 27 个符号横跨 5 个技能,任何修改都需要跨技能回归测试
  3. 技能复杂度分层管理是必要的 — last30days 的 66 个文件已经是一个完整的子项目,需要独立治理

推荐行动项

优先级行动工具/方法预期收益
P0submit() 等共享函数抽取为显式公共库CodeGraph impact 分析定位所有调用者消除隐式耦合,降低变更风险
P0为 last30days 建立独立的 CI/CD 流程66 个 .py 文件需要自动化测试保护最复杂的技能子系统
P1定期运行 codegraph sync 保持索引更新cron job 或 file watcher实时掌握技能图谱变化
P1构建技能复杂度分级看板CodeGraph status + 脚本统计分级治理,资源聚焦
P2探索理论-实践双向索引Markdown ↔ Python 映射关系Harness 知识图谱化
P2渲染引擎重构(10+ 变体函数合并)策略模式 + 模板引擎降低输出层复杂度