“风暴、重构、实时。” — Neural Storm Graph 的哲学。

这是一个基于Storm Skeleton协议的超模块化实时关系图引擎。它专为动态上下文提取和AI内存结构化而设计,避免了传统仪表盘的臃肿。

核心特性(Features)

  • 实时图谱(Real-time Graph):通过语义抽象即时构建关系图。
  • 🦴风暴骨架(Storm Skeleton):实现最大性能和无限 AI 上下文迭代的绝对最低限度执行框架。
  • 🛡️彻底无感(Zero-Bloat):严格专注于内存映射和节点逻辑。没有 UI 开销。
  • 🎯实时定位(Real-time Positioning):光标感知上下文引擎——准确知道你在代码库中的位置。

目录结构 (Structure)

<span style="background-color:#151b23"><span style="color:#f0f6fc"><span style="color:#f0f6fc"><span style="background-color:#151b23"><code>neural-storm-graph/
├── core/
│   ├── __init__.py          # 包入口
│   ├── storm_skeleton.py    # 风暴骨架引擎(调度、推理、骨架扫描)
│   └── realtime_graph.py    # 实时网络流与关系节点提取算法
├── test_storm.py            # 完整测试套件 (45 tests)
├── requirements.txt
└── README.md
</code></span></span></span></span>

功能矩阵(特征矩阵)

Storm Skeleton — 骨架引擎

API 功能 复杂度
skeleton_scan() 极速正则重建扫描,对 SyntaxError 完全容错 O(文件)
deep_scan() AST精确模式,自动降级到正则 O(文件数 × AST)
storm_center() 风暴中心多维定位(关键词+中心度+复杂度+时间) O(符号)
decompose() DAG依赖推理+循环检测+体系任务ID O(V+E)
impact_analysis() BFS 影响范围分析 O(V+E)
file_overview() 单文件概要 O(1)
get_snippet() 符号源码 O(1)

实时图谱 — 实时图谱 + 定位

API 功能 复杂度
locate() 实时定位(符号+调用者+被调用者+兄弟+面包碎片) O(n) 文件符号
locate_symbol() 通过FQN直接定位 在)
trace_call_chain() 上游下游调用链追踪 O(V+E)
update_file() 增量单文件更新 + 积分计算 + 事件通知 O(1)
batch_update() 批量增量更新 O(文件)
heatmap() 文件热力图(变更频率+引用密度+时间) O(文件)
search_symbols() 模糊符号搜索 + 类型/文件过滤 O(符号)
dependency_graph() 文件级依赖图(BFS展开) O(V+E)
export_graph() 导出全量节点+边(JSON,前置可视化用) O(V+E)
export_mermaid() 导出美人鱼流程图(Markdown嵌入) O(V+E)
on_change()/off_change() 文件变更事件订阅/取消 O(1)

快速入门

from core import StormSkeleton, RealtimeGraph
from core.realtime_graph import CursorPosition

# 1. 骨架扫描
skeleton = StormSkeleton("/path/to/your/project")
report = skeleton.skeleton_scan()
print(f"Scanned {report['files_scanned']} files, "
      f"{report['total_symbols']} symbols in {report['scan_time_ms']}ms")

# 2. 风暴中心定位 — 找到项目中最相关的核心节点
center = skeleton.storm_center("修复限流中间件")
for node in center["top_nodes"][:5]:
    print(f"  {node['fqn']} (score: {node['total']})")

# 3. DAG 依赖推理
dag = skeleton.decompose("重构用户服务")
print(f"Decomposed into {dag['total_nodes']} nodes, cycles: {dag['cycles']}")

# 4. 实时图谱 + 光标定位
graph = RealtimeGraph(skeleton)
ctx = graph.locate(CursorPosition("src/middleware.py", 42))
print(f"Symbol: {ctx.symbol.name if ctx.symbol else 'N/A'}")
print(f"Callers: {len(ctx.callers)}, Callees: {len(ctx.callees)}")
print(f"Breadcrumb: {' > '.join(ctx.breadcrumb)}")

# 5. 增量更新 + 事件监听
graph.on_change(lambda c: print(f"[CHANGE] {c.file}: +{len(c.added)} -{len(c.removed)}"))
change = graph.update_file("src/middleware.py")

# 6. 热力图
for entry in graph.heatmap()[:5]:
    print(f"  {entry['file']}: heat={entry['heat']}")

# 7. 调用链追踪
chain = graph.trace_call_chain("src/main.py::App.run", direction="both")

# 8. 导出 Mermaid 图
print(graph.export_mermaid(rel_path="src/main.py"))

零依赖(零依赖)

纯Python stdlib实现,无需安装任何外部包。Python >= 3.10。

测试(测试)

python -m pytest test_storm.py -v   # 45/45 tests, < 1s

设计哲学(Philosophy)

  • 正则优先,AST辅助:重构扫描用正则——即使文件有语法错误也不中断。AST仅在需要精确调用链时启用。
  • 增量优先:单文件变更O(1)更新,不触发全量重建。
  • 事件驱动:文件变更 → 积分计算 → 回调通知。
  • 多维评分:风暴中心不是简单的文本搜索,而是结合关键词、中心度、复杂度、时间的四维评分。

清晰除一切华而不实的构成层,保留最纯粹的数据引擎心脏。风暴即思考,图谱即记忆。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐