xLabel/AutoPatch-J

GitHub: xLabel/AutoPatch-J

AutoPatch-J 是一款基于 ReAct 与 Tree-sitter 的 Java 安全智能补丁代理,自动化发现并修复漏洞。

Stars: 0 | Forks: 0

# AutoPatch-J AutoPatch-J 是一款专为 Java 项目设计的极简 AI 代码补丁智能体。它采用 **ReAct (Reasoning and Acting)** 模式,能够自主扫描代码漏洞、理解上下文并生成高质量的极简修复补丁。 ## 核心特性 - **ReAct 智能决策**: 能够自主思考、调用工具、观察结果并进行自我修正。 - **三级质量门禁**: 1. **物理校验**: 确保补丁的“查找-替换”逻辑在目标文件中唯一匹配。 2. **语法校验**: 基于 Tree-sitter 确保生成的 Java 代码符合语法规范。 3. **语义验证**: 自动触发静默重扫,验证漏洞是否真正被消除。 - **极致交互体验**: - 输入 `@` 符号触发 IDE 级的类、方法和路径实时补全。 - 漂亮的 Rich 终端渲染,包含 Diff 高亮和浮动动作面板。 - 非阻塞门禁,支持在补丁审核期间持续对话反馈。 - **混合式 RAG**: 基于符号索引和句柄管理,支持长对话记忆且极度节省 Token。 - **工程化底座**: 统一配置中心,全局资源与项目状态严格隔离。 ## 交互效果展示 当你请求 Agent 修复漏洞时,你会看到类似下方的精美终端反馈: ╭────────────────── AutoPatch-J: AI-Powered Java Security Expert ──────────────────╮ │ 输入 /help 查看命令,使用 @ 符号绑定上下文。 │ ╰──────────────────────────────────────────────────────────────────────────────────╯ 当前项目: E:\AutoPatch-J\examples\demo-repo [Agent 思考中...] ... (Agent 正在生成极简修复补丁) ... 预览: src/main/java/demo/UserService.java ────────────────────────────────────────── @@ -15,4 +15,5 @@ public void login(String username, String password) { - if (password.equals("123456")) { + if ("123456".equals(password)) { // 登录逻辑 } ─────────────────────────────────────────────────────────────────────────────────── ╭────────────────────────────── 补丁待审核 (PENDING) ──────────────────────────────╮ │ 文件: src/main/java/demo/UserService.java │ │ 统计: +1行 -1行 校验: Java 语法校验通过 │ │ │ │ 意图: 将易触发空指针的 equals 调用改为常量在前的安全写法。 │ │ ──────────────────────────────────────── │ │ apply 🚀 应用此补丁并执行三级语义校验 │ │ discard 🗑️ 丢弃此草案并清理缓冲区 │ │ <文本> 💬 直接输入反馈让 Agent 重新生成 │ ╰──────────────────────────────────────────────────────────────────────────────────╯ [PENDING] autopatch-j> apply ➜ 正在应用补丁至 src/main/java/demo/UserService.java... ✔ 补丁物理应用成功! ➜ 正在执行语义验证(重新扫描)... ✔ 语义校验通过:规则 [java.correctness.nullable-equals] 已在该位置消失。 autopatch-j> _ ## 项目架构 (V2.1) src/autopatch_j/ ├── cli/ # 交互表现层 (主程序、自动补全、Rich 渲染) ├── core/ # 核心服务 (持久化、代码抓取、索引、补丁引擎、验证) ├── tools/ # 模型工具适配器 (Scan, Edit, Search, Read, Detail) ├── scanners/ # 扫描器驱动 (Semgrep 等底层封装) ├── validators/ # 语法校验器 (基于 Tree-sitter 的 Java 校验) ├── config.py # 全局配置中心 (环境变量、默认值统一收口) ├── paths.py # 物理路径映射 (全局资源与项目隔离逻辑) ├── __init__.py └── __main__.py # CLI 程序入口 ## 快速开始 ### 1. 环境准备 设置环境变量(支持 OpenAI 兼容接口): export LLM_API_KEY="your-api-key" export LLM_MODEL="gpt-4o" ### 2. 安装与运行 pip install -e . autopatch-j ### 3. 典型交互流程 在 CLI 中输入以下指令: /init # 初始化环境并建立项目索引 扫描项目中的安全问题 # 触发 Agent 调用扫描工具 帮我修复 F1 处的漏洞 # 针对特定 ID 进行修复 apply # 在预览面板中确认并应用补丁 ## 开发者指导 请参阅 [AGENTS.md](AGENTS.md) 了解详细的协作规则和开发约定。 ## 演示仓库 我们在 `examples/demo-repo` 提供了一个可运行的示例,用于快速体验完整的扫描与修复闭环。
标签:AI安全, Chat Copilot, Diff高亮, GHAS, IDE补全, Java安全, JS文件枚举, ReAct, SEO: AI代码修复, SEO: Java安全补丁, SEO: 自动化漏洞修复, Token优化, Tree-sitter, 三级门禁, 代码修复, 代码正确性, 句柄管理, 持续对话反馈, 极简修复, 混合式RAG, 物理校验, 符号索引, 终端渲染, 统一配置中心, 自动化补丁, 语义验证, 语法校验, 质量门禁, 资源隔离, 逆向工具, 长对话记忆, 静默重扫, 非阻塞门禁, 项目状态管理