Impact AI 是一款 VS Code / Cursor 扩展插件。你配置「待分析分支 + 对比起点 commit」后,它会采集该分支在起点之后的独有变更,结合可选的需求清单与项目知识(Skills),利用 AI 自动分析改了什么、波及哪里、该测什么,最终输出一份按需求组织的结构化影响报告(Markdown 或交互式 HTML)。
解决的痛点
| 痛点 | Impact AI 的做法 |
|---|---|
| 大版本 diff 看不完 | 按「变动点 / 模块」聚合变更,分层阅读;大变更集启用工具辅助深挖,而非一次性灌入全文 diff |
| 不知道影响范围(爆炸半径) | 追踪 API、路由、字段、上下游调用链,在报告中写清入口 / 出口与兼容性 |
| 测试不知道测什么 | 按需求维度输出影响范围表、界面/接口测试用例与回归提示 |
| 需求与代码变更对不上 | 支持导入需求清单;结合 commit 线索与代码验证,将变更归并到对应需求章节 |
| 前后端 / 多仓库割裂 | 单任务可关联多个 Git 仓库,跨仓库追 API、路由与跳转链路,报告仍按需求归并 |
| 手工写测试文档耗时长 | 一次分析生成完整报告,支持多轮追问补充;大报告自动分片合成 |
设计架构
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ 配置任务 │────▶│ Git 采集 │────▶│ 变动点 / diff │
│ 分支对+需求 │ │ 变更集 │ │ 索引与工具上下文 │
└─────────────┘ └──────────────┘ └────────┬────────┘
│
┌──────────────┐ ┌──────────▼────────┐
│ 报告 .md/.html│◀────│ LLM + Skills │
│ 按需求分章 │ │ + 工具 / MCP │
└──────────────┘ └────────┬───────────┘
│
┌─────────────────────┘
▼
┌──────────────────────┐
│ ① 证据 L1-L4 │
│ ② 大纲自检 → 补全 │ ← 最多 4 轮,未收敛告警
│ ③ 并发生成+逐章审查 │ ← 最多 3 路并发,每章 LLM 审查
│ ④ 合并后静态收尾 │ ← 占位符/语法/结构检查
└──────────────────────┘
分析引擎内部按逻辑角色分工(同一模型、不同相位):探勘者 → 归并者 → 规划者 → 校验者 → 写作者。
Loop Engineering:分析流程拆为「证据采集 → 结构覆盖 → 并发生成+逐章审查 → 静态收尾」四层闭环,并用逻辑角色分工。环② 最多 4 轮自检;环③ 章节 并发生成(最多 3 路),每章内嵌 LLM 质量审查,合并后纯静态收尾;技能多时由内部路由自动筛选,对用户无感。
核心能力
分支级变更分析
- 分析范围:
git diff {对比起点 commit}..{待分析分支 tip},仅分析该分支独有变更 - 支持本地仓库与远端 Git(扩展内缓存 clone,无需业务仓库在当前工作区)
- 自动推断对比起点,也可手动填写 SHA/tag
需求驱动的报告
报告以需求为唯一组织维度。每条需求包含:
| 章节 | 内容 |
|---|---|
| 变更说明 | 3~8 条业务能力要点(业务语言,无代码路径) |
| 影响范围 | 后端 · 受影响 API(路径、字段、兼容性) 前端 · 受影响界面(路由、功能点、关联 API) 业务与回归影响 |
| 软件规格 | 运行时、浏览器、中间件等版本约束 |
| 建议测试用例 | 接口用例覆盖影响范围表中的 API 与字段 |
| 风险与回归提示 | 最多 3 条关键风险 |
未匹配到需求清单的独立能力,由 AI 归纳为 AUTO-xx 需求章节。
AI 分析引擎
- 调用可配置的 LLM(OpenAI 兼容 API / Anthropic / Azure / 自定义)
- 本地工具:变动点地图、
inspect_change_point、get_diff_*、search_code、list_commits等 - Skills:内置 / 全局 / 项目级
SKILL.md;分析时自动选用,无需手动选择 - MCP:可连接外部 MCP 服务(如代码图谱),扩展分析能力
- 大版本优化:变动点索引 + 工具预算控制;超长报告分片按需求章节 并发生成(最多 3 路)
- 覆盖度自检:大纲生成后按变动点分片并发审查,最多 4 轮审计‑补全‑复核,未收敛时告警
- 逐章质量审查:每个 worker 内嵌 LLM 审查+修复(短文本,无截断风险),合并后纯静态规则收尾
- 报告质量终审:非分片路径保留 LLM 整篇审查-修复循环(最多 2 轮),超限降级输出
- 多轮会话:分析后可继续追问,保留上下文摘要
- Agent 自动学习:跨任务沉淀分析 Playbook,使 Agent 越用越准
项目管理
- 侧边栏面板管理任务:添加项目、配置分支、录入/导入需求、运行分析
- 单任务可绑定多个关联仓库(如前端 + 后端)
- 需求支持手工录入或 Excel/CSV 导入(列映射)
- 报告输出 Markdown 或交互式 HTML
快速上手
环境要求
- VS Code 1.80+ 或 Cursor
- Git 2.30+(系统已安装并在 PATH 中可用)
- LLM API Key(OpenAI 兼容接口)
典型流程
- 打开侧边栏 Impact AI → 项目 面板
- 点击 + 本地(分析当前工作区 Git 仓库)或 + 远端(填写仓库地址)
- 选择基准分支与待分析分支,自动推断或手动填写对比起点 commit
- (可选)录入或 Excel 导入需求清单
- 在设置页配置 API Key 与模型
- 点击 ▶ 运行分析
快捷键:
Ctrl+Shift+R(macOS:Cmd+Shift+R)一键运行分析。
命令面板
| 命令 | 快捷键 |
|---|---|
Impact AI: 运行分析 |
Ctrl+Shift+R / Cmd+Shift+R |
Impact AI: 打开控制台 |
— |
Impact AI: 分析追问 |
— |
Impact AI: 取消分析 |
— |
Impact AI: 打开设置 |
— |
Skills(项目知识)
分析时 AI 会自动选用与本次变更相关的技能,无需手动指定。维护技能只需在对应目录编写 SKILL.md:
| 层级 | 路径 | 用途 |
|---|---|---|
| 内置 | 随扩展打包 | 如报告写作规范 |
| 全局 | .impact/skills/ |
工作区级分析技能 |
| 项目/任务 | .impact/{taskId}/skills/ |
任务或成员仓库专属知识 |
数据存储
所有任务数据位于工作区 .impact/ 目录(建议加入 .gitignore)。远端仓库 clone 缓存位于扩展内部存储。报告保存在 .impact/{taskId}/reports/ 下。
常见问题
| 现象 | 处理 |
|---|---|
| 提示未配置 API Key | 打开 Impact AI 设置页填写 Key |
| 「不是 Git 仓库」 | 确认任务关联的路径有效,或重新 clone 远端仓库 |
| 分析无变更 | 检查对比起点 commit 是否正确;确认待分析分支在起点之后有 commit |
| 大版本分析较慢 / 工具用尽 | 调高 impact.tools.maxCallsPerSession;确保 tools.enabled 为 true |
| 改了插件代码不生效 | npm run watch + Extension Development Host 窗口 Reload |
| F5 无反应 | 确认打开的是 impact-ai 工程根目录,且 dist/extension.js 存在 |
| 分析过程中想停下来 | 点击面板中的取消按钮,或执行 Impact AI: 取消分析 命令 |