Repository navigation
重庆大学AI训练营+202524131076T+指针分析代码透视助手 #3149
Fangyjj
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
重庆大学AI训练营+202524131076T+指针分析代码透视助手
面向程序静态分析方向的多智能体助手:检索专业知识库讲解指针分析与 Tai-e 框架原理,并对 Java / C/C++ / Python 代码做静态缺陷勘察,输出风险分级与修复建议。技术准确性与表达易懂性兼顾,既服务研究者,也服务初学者。
目录
项目与文件
复现本作品所需的全部文件:
项目概述
基于 Nexent 构建的多智能体系统,覆盖"概念讲解"与"代码勘察"两类场景:
两类场景由一个主智能体统一入口,自动判断意图并分派给对应的专家子智能体处理。
项目定位
设计上面向两类受众分层:以 Tai-e 官方文档与论文级资料保证技术准确性;以流程图、三层结构(结论 → 原理 → 示例)与生活化类比降低理解门槛。
系统架构
主智能体 + 双子智能体分诊协同,降低单体上下文压力、职责清晰、可扩展:
flowchart TD U[用户] --> D[主智能体:代码透视调度官<br/>判断意图并分派,不直接作答] D -->|概念 / 原理问题| A[子智能体:指针分析部分] D -->|具体代码分析| B[子智能体:代码风险勘察部分] A --> KB[(Tai-e 专业知识库)] B --> T1[terminal:读本地文件] B --> T2[analyze_text_file:读上传文件] B --> T3[analyze_image:读代码截图] A --> RA[原理讲解 + 类比 + 流程图 + 原文引用] B --> RB[风险分级 + 数据流图 + 修改前后对比]功能详解
1. 知识库检索问答(RAG)
回答指针分析 / Tai-e 相关概念前,强制检索"指针分析专业知识库",基于检索到的原文组织答案并标注引用来源;知识库无相关内容时明确声明,不凭记忆编造。覆盖上下文敏感性、指针流图(PFG)、堆抽象、Tai-e 参数(如 cs:1-obj)、核心 API 与相关顶会论文等内容。
2. 多语言代码缺陷勘察
支持 Java、C/C++、Python,识别的缺陷类型包括:
每个风险点输出:缺陷类型命名、严重程度分级(🔴 高 / 🟡 中 / 🟢 低)、"修改前 / 修改后"代码对比,以及基于静态分析原理的成因说明。
3. 多模态输入
.txt/.md后缀后上传)。4. 多智能体协同分诊
主智能体根据问题意图自动分派:概念问题交"指针分析部分",代码问题交"代码风险勘察部分";混合问题先分析代码、再引导深入原理;意图不明确时主动澄清。
5. 自动可视化
每次回答输出 Mermaid 流程图或数据流图,可视化调用关系、数据流向与分析流程,复杂机制可直观呈现。
6. 个性化讲解与学习路线
按用户水平(新手 / 研究者)调整讲解深度与术语密度;面向新手额外给出循序渐进的学习路线。
7. 结构化输出
概念讲解统一采用"结论 → 原理 → 示例"三层表达;代码分析统一输出"风险 → 分级 → 修复 → 小结",便于阅读与采纳。
8. 可靠性与边界控制
超出知识库或聚焦语言(Tai-e / Java)范围时明确声明,并给出权威参考方向(如 SVF、Clang Static Analyzer),不臆造结论。
项目亮点
演示示例
① 概念问答:检索知识库、引用原文、自动画图
② 代码勘察:多语言、风险分级、修复对比
③ 多智能体分诊:一次提问自动派单
技术栈
使用方式
.java/.cpp/.py等请先改后缀为.txt或.md,内容不变)。部署与运行
如需在 Nexent 上运行本作品:
knowledge_base内文档。agents/下三个 JSON。适用边界
开源说明
所用 Tai-e 文档遵循 Apache 2.0 许可,已转为 Markdown 用于知识库构建。
All reactions