xianyu-sheng/SmartBench
GitHub: xianyu-sheng/SmartBench
基于多智能体辩论与证据验证机制的通用 AI 代码诊断平台,支持 14 种语言的零幻觉代码分析。
Stars: 2 | Forks: 1
SmartBench — 通用代码诊断平台
多智能体辩论 + 证据验证 + 工具执行 = 值得信赖的诊断
SmartBench 绝不修改您的代码。 它只负责分析、诊断和提供建议 — 完全由您掌控。
## 什么是 SmartBench? SmartBench 是一款 **基于 LLM 的代码诊断工具**,通过结构化的多智能体辩论和**零幻觉证据验证**来分析任何代码库。 AI 做出的每一项断言都必须引用确切的文件路径和行号 — 这些信息在生成最终报告之前都会经过磁盘验证。 ``` $ smartbench ╔══════════════════════════════════════════════╗ ║ SmartBench — Universal Code Diagnosis ║ ║ AI-powered analysis for any codebase ║ ╚══════════════════════════════════════════════╝ Step 1/4 — Where is your code? Step 2/4 — Configure LLM API keys Step 3/4 — Analyzing your project... Step 4/4 — What would you like to diagnose? [Proposer] → [Verifier] → [Critique] → [Judge] → Report ``` ## 工作原理 ``` ┌─────────────┐ │ SmartBench │ └──────┬──────┘ │ ┌────────────────────┼────────────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Phase 1 │ │ Phase 4 │ │ Phase 5 │ │ Fingerprint │ │ Code Graph │ │ Debate │ │ (zero LLM) │ │ + RAG Index │ │ Engine │ └──────────────┘ └──────────────┘ └──────┬───────┘ │ ┌─────────────────────────────┤ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ Proposer │──▶│ Critique │─▶│ Judge │ │ (方案提出) │ │ (交叉审查) │ │ (最终仲裁) │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ │ ▼ ▼ ▼ ┌──────────────────────────────────────┐ │ Verifier (Zero LLM) │ │ Disk I/O check on every claim │ └──────────────────────────────────────┘ ``` ### 反幻觉保证 每次诊断都会经过**三层验证**: 1. **文件存在性** — 根据磁盘检查引用的文件路径 2. **行号准确性** — 引用的行号必须与实际源码匹配 3. **调用链完整性** — 通过代码图验证函数之间的关系 未通过验证的断言在进入最终报告前会被**标记并降级**。 ## 快速开始 ``` # 安装 pip install -e . # 设置 API key(至少需要一个) export DEEPSEEK_API_KEY=sk-your-key # 运行 smartbench # Interactive 4-step wizard smartbench --quick # Auto-detect everything smartbench check # Check available diagnostic tools ``` ### CLI 参考 | 命令 | 描述 | |---|---| | `smartbench` | 交互式向导:项目 → API 密钥 → 检测 → 诊断 | | `smartbench --quick` | 非交互模式,使用环境变量中的 API 密钥 | | `smartbench quick --project ./my-repo` | 对特定项目进行快速诊断 | | `smartbench diagnose --project ./my-repo --symptoms "slow queries"` | 针对性诊断 | | `smartbench check` | 显示当前目录下可用的诊断工具 | ## 支持的语言与框架 ### 14 种语言 Python · Go · Rust · C · C++ · Java · Kotlin · JavaScript · TypeScript · Ruby · Swift · C# · Zig · 混合项目 对 Python、Go、JavaScript、TypeScript 和 Rust 提供基于 Tree-sitter 的精准解析(其他语言使用正则表达式作为回退方案)。 ### 自动检测 20+ 种框架 FastAPI · Flask · Django · Gin · Echo · Fiber · Express · NestJS · Next.js · React · Vue · Spring Boot · Axum · Actix · gRPC · 以及更多 ## 架构 ``` smartbench/ ├── cli/ # CLI (104-line main, wizard, phases, display) ├── llm/ # Provider registry + API client (8 providers, retry logic) ├── detector/ # Zero-LLM project fingerprinting ├── graph/ # AST code graph (tree-sitter + regex), 14 languages ├── rag/ # Vector indexing (3-tier: transformers → TF-IDF → hash) ├── verifier/ # Evidence verification (disk I/O, zero LLM) ├── engine/ # Multi-agent debate engine (Proposer → Critique → Judge) ├── diagnostics/ # 30+ pluggable diagnostic tools └── prompts/ # Dynamic prompt factory (language-specific guidance) ``` ## 核心功能 ### 多智能体辩论引擎 三个专门角色对每次诊断进行辩论: | 角色 | 职责 | |---|---| | **Proposer(提议者)** | 分析代码上下文,提出修复建议并附带确切的文件路径和行号 | | **Critique(审查者)** | 对抗性审查 — 寻找反例、缺失的上下文和误报 | | **Judge(裁决者)** | 将辩论记录综合成最终报告,并进行共识评分 | ### 证据验证(无 LLM 参与) 所有断言均通过**确定性的磁盘 I/O** 进行验证 — 不涉及任何 LLM: - 根据文件系统检查文件路径 - 根据源码验证行号 - 评分裁定:`verified`(已验证) / `partial`(部分验证) / `hallucinated`(幻觉) - 跟踪并报告幻觉率 ### 代码图 + RAG - **AST 级代码图**:函数、类、调用边、导入 - **三级 embedding**:sentence-transformers → TF-IDF → 字符哈希(自动降级) - **向量存储**:SimpleVectorStore(默认)或 ChromaDB(可选) - **语义搜索**:针对已索引的代码库进行自然语言查询 ### 诊断工具执行 工具会被**真正执行** — 而不仅仅是建议。执行结果会被注入到辩论上下文中: | 策略 | 执行的工具 | |---|---| | `performance_analysis` | py-spy、pprof、perf、flamegraph 建议 | | `security_scan` | bandit、gosec、cargo-audit、npm audit 建议 | | `correctness_audit` | ruff、mypy、go vet、clippy 建议 | | `architecture_review` | 代码图循环检测、耦合分析 | ### 8 种 LLM 提供商 根据模型名称自动检测。感知角色的路由机制:为 Proposer / Critique / Judge 分配不同的模型。 DeepSeek · OpenAI · Anthropic · GLM · 豆包(Doubao) · Moonshot · 通义千问(Qwen) · Ollama (本地) ## 诊断策略 | 策略 | 侧重点 | |---|---| | `performance_analysis` | CPU、内存、I/O 性能分析;热点路径识别 | | `correctness_audit` | Bug 检测、边缘情况、错误处理缺口 | | `architecture_review` | 设计模式、耦合度、内聚性、模块化 | | `security_scan` | 注入、密钥泄露、依赖项漏洞 | | `hotspot_analysis` | 高频变动文件、复杂度、Bug 密度 | ## 配置 ### 环境变量 ``` export DEEPSEEK_API_KEY=sk-... # DeepSeek export OPENAI_API_KEY=sk-... # OpenAI export ANTHROPIC_API_KEY=sk-... # Anthropic # ……或其他 8 个受支持的 providers 中的任意一个 ``` ### 可选依赖 ``` pip install -e ".[dev]" # pytest, ruff pip install -e ".[graph]" # tree-sitter for precise AST parsing pip install -e ".[rag]" # sentence-transformers + ChromaDB ``` ## 测试 ``` pytest tests/ -v # 266 tests (unit + integration + CLI + E2E) ruff check smartbench/ # Lint check (clean) ``` ## 常见问题 **问:SmartBench 会修改我的代码吗?** 不会。只读分析。结果输出到单独的报告中。 **问:它如何防止 AI 幻觉?** LLM 声称的每个文件路径和行号都会由无 LLM 验证器根据磁盘进行校验。幻觉断言会被标记并降级。 **问:它可以在 CI 中运行吗?** SmartBench 支持非交互模式:使用环境变量中的 API 密钥运行 `smartbench quick --project .`。JSON 输出模式即将推出。 **问:我需要 GPU 吗?** 不需要。Embedding 引擎会自动从 sentence-transformers 降级为 TF-IDF 或字符哈希。LLM 调用都发往远程 API。完全兼容 CPU。 **问:费用是多少?** 取决于您的 LLM 提供商。本地运行 (Ollama):免费。DeepSeek:约 $0.01/次。典型的诊断过程会进行 4 次 LLM 调用(策略分析 + 3 轮辩论)。 ## 许可证 [MIT](LICENSE) © Xianyu Sheng用 ❤️ 为开源 AI 智能体社区构建
标签:AI风险缓解, 逆向工具