使用说明
体系结构概述
该系统是一个本地存储库助手,用于更安全的人工智能辅助代码规划。
该架构故意简单:
- 代码库在本地被扫描和索引
- 结构和参考数据存储在本地SQLite数据库中
- Python服务读取该数据库并计算上下文或风险
- MCP服务器公开这些服务
- 人工智能代理在提出或做出更改之前调用这些工具
- 在实施开始之前,有人批准了计划
主要组件
1.存储库扫描程序
扫描程序遍历本地存储库并查找支持的源文件。
责任:
- 验证回购根
- 忽略垃圾目录
- 仅保留受支持的文件
- 导出回购相对路径
- 导出文件URI
- 导出模块路径
- 计算文件哈希值和元数据
- 商店
RepoRecord和FileRecord
输出:
- SQLite中的本地文件清单
2.AST提取层
AST层解析Python文件并提取结构图数据。
责任:
- 创建模块节点
- 创建类节点
- 创建函数和方法节点
- 创造
contains边缘 - 创造
imports边缘 - 创造
inherits边缘 - 存储声明范围和符号元数据
输出:
- 存储在SQLite中的结构图
3.图形存储层
图存储层是持久化和查询的基础。
责任:
- 升级节点
- 翻转边缘
- 干净地替换一个文件的图形状态
- 按节点ID查询
- 按限定名查询
- 查询传入和传出边
- 查询父子关系
输出:
- SQLite中的持久局部图
4.上下文构建器
上下文构建器读取图形数据并组装一个有用的以符号为中心的视图。
责任:
- 加载一个符号
- 查找父符号
- 查找子符号
- 负载输入和输出边缘
- 计算结构摘要
- 计算新鲜度摘要
- 计算置信度摘要
- 公开引用摘要占位符或实际值
输出:
SymbolContext
5.LSP参考丰富
这一层添加了AST本身无法提供的语义使用信息。
责任:
- 为符号选择最佳声明位置
- 向Python语言服务器请求参考
- 地图将位置返回给内部符号
- 创造
references边缘 - 推导
referenced_by通过反向查询 - 计算参考计数和分布
输出:
- SQLite中的参考图扩充
6.风险引擎
风险引擎将图形事实转化为确定性风险输出。
责任:
- 检查目标
- 检查参考文献
- 检查跨文件和跨模块的影响
- 检查公共表面启发式
- 检查继承参与情况
- 检查新鲜度和信心
- 发出问题代码
- 计算分数
- 计算决策
输出:
- 机器友好型风险结果
7.MCP服务器
MCP服务器向代理公开确定性工具。
责任:
- 注册工具
- 验证输入
- 调用内部图、上下文、参考和风险服务
- 返回结构化输出
- 返回结构化错误
输出:
- 代理可以安全查询的工具界面
8.观看模式
监视模式在文件更改时保持本地图形的新鲜。
责任:
- 观察文件更改
- 消除噪音事件
- 更新已更改的文件元数据
- 重新提取AST结构
- 替换文件图
- 使过时的引用无效
- 保持图形足够新鲜,以便以后进行MCP调用
输出:
- 随着时间的推移,更新本地SQLite图
9.代理工作流层
这不是数据库或服务器层。 这是真正的操作流程。
责任:
- 草案
- 调用MCP工具
- 根据确定性的发现修改计划
- 等待人类的批准
- 然后才开始实施
输出:
- 更安全的人工门控编码工作流程
数据流
数据流应该如下所示:
- 扫描本地仓库文件。
- 文件记录存储在SQLite中。
- AST提取构建结构节点和边。
- 结构图存储在SQLite中。
- LSP富集增加
references边缘。 - 从SQLite读取上下文和风险服务,并计算更高级别的输出。
- MCP工具将这些输出暴露给代理。
- 代理在提出或进行代码更改之前使用这些输出。
- 在实施之前,人类会批准。
简短版本:
Local repo
-> Scanner
-> AST extraction
-> SQLite graph
-> Context / LSP / Risk services
-> MCP tools
-> Agent
-> Human approval
-> Implementation