DanielDeshmukh/autobots

GitHub: DanielDeshmukh/autobots

一款基于 NVIDIA NIM 驱动的去中心化模型智能体集群 CLI 工具,通过分层路由编排实现自动化代码编写、测试与修复的软件开发流程。

Stars: 5 | Forks: 0

Autobots Banner

Version Python

Autobots 是一个 Python CLI,用于针对目标代码库运行结构化、需审批的编码集群。它会检查目标项目自带的 context 文件,生成分阶段的计划,通过分层的模型集群路由实现工作,并执行带有验证、修复和回滚循环的自主任务。 ## 目录 - [概述](#overview) - [功能](#features) - [架构](#architecture) - [安装说明](#installation) - [配置](#configuration) - [CLI 命令](#cli-commands) - [NVIDIA 模型注册表](#nvidia-models-registry) - [执行模式](#execution-modes) - [Context 架构](#context-architecture) - [跨平台使用](#cross-platform-usage) - [环境变量](#environment-variables) - [故障排除](#troubleshooting) - [开发](#development) - [许可证](#license) ## 概述 Autobots 通过将多个 AI 模型编排为分层集群来改变您的开发工作流: 1. **Optimus**(指挥集群) — 规划和统筹任务 2. **UltraMagnus**(后端集群) — 实现后端逻辑和 API 3. **Jazz**(前端集群) — 创建 UI 组件和视觉元素 4. **RedAlert**(安全集群) — 审查代码的安全性和正确性 5. **Ratchet**(修复集群) — 修复验证失败和 Bug 6. **Perceptor**(检索集群) — 处理文档解析和 RAG 7. **Bumblebee**(媒体集群) — 处理语音、音频和视频 8. **Ironhide**(仿真集群) — 运行物理和优化任务 9. **Wheeljack**(科学集群) — 处理分子和研究任务 ## 功能 - **Context 注入** — 读取 `context/` 文件并将项目文档注入到模型 prompt 中 - **阶段规划** — 生成具有依赖关系和验收标准的实现路线图 - **模型路由** — 基于任务关键词智能选择集群 - **多根目录文件写入** — 写入 `src/`、`app/`、`lib/`、`tests/`、`docs/`、`scripts/` - **验证命令** — 自动运行测试、linter 和构建命令 - **自动修复** — 通过验证驱动的修复循环实现自愈执行 - **会话管理** — 持久化的 checkpoint、可恢复的运行和审计追踪 - **可配置模式** — 监督、里程碑或完全自主执行 - **回滚支持** — 写入前快照,`autobots undo` 可恢复更改 - **响应流式传输** — 模型调用期间的实时字符计数器 - **预检诊断** — 执行前的健康检查(API、git、配置、依赖项) - **结构化错误** — 带有可操作建议的上下文错误消息 - **测试门控** — 在提交前使用 `autobots gate` 运行测试 - **Git 集成** — 阶段完成后自动提交 - **配置验证** — `autobots config validate` 检查 TOML 设置 - **Shell 自动补全** — bash、zsh 和 fish 的 Tab 补全 - **Context 预算** — 当 prompt 接近模型限制时发出警告并截断 - **插件系统** — 用于自定义扩展的 before/after 钩子 - **技能市场** — 内置 FastAPI、Django、React、Next.js 的技能包 - **NVIDIA 技能** — 将 17 项 NVIDIA 特有技能注入到集群 prompt 中(RAG、cuOpt、cuDF、Dynamo、Holoscan、CUDA-Q) - **Web Dashboard** — 在 8080 端口提供实时状态 - **丰富的状态输出** — 进度条、预计时间、分支信息 - **Explain 命令** — `autobots explain P2-T3` 显示审计追踪详情 - **使用统计** — `autobots stats` 显示总计、平均、成本 - **Verbose 模式** — `--verbose` 标志记录发送给模型的完整 prompt ## 架构 ``` autobots/ ├── cli.py # CLI entry point (20+ commands) ├── bootstrap.py # Project profiling and context filename contract ├── config.py # TOML + env config with validation ├── catalog.py # Cluster definitions and model registry ├── workspace.py # Target workspace safety and locking ├── errors.py # Structured error classes ├── costs.py # Token/cost estimation ├── git_utils.py # Git auto-commit integration ├── preflight.py # Doctor health checks ├── onboarding.py # Interactive setup wizard ├── completions.py # Shell tab completion ├── context_budget.py # Context window management ├── plugins.py # Plugin/hook system ├── marketplace.py # Skill pack marketplace ├── dashboard.py # Web dashboard ├── diff.py # Snapshot comparison ├── router/ │ ├── core.py # Main routing orchestration │ ├── models.py # Data models (ClusterPlan, PhaseRecord, etc.) │ ├── planning.py # Cluster assignment and model selection │ ├── stages.py # Stage execution (streaming, retry, verbose) │ └── phases.py # Phase reading and status management ├── executor/ │ ├── autonomy.py # Autonomous execution engine │ ├── modes.py # Execution modes (supervised, milestone, autonomous) │ ├── state.py # Session state, audit trail, and rollback manager │ ├── commands.py # Command validation and execution │ ├── gate.py # Test-then-commit gate │ └── validation.py # Validation result handling ├── planning/ │ ├── core.py # Plan generation │ ├── scanner.py # Repository scanning │ └── synthesis.py # Phase synthesis ├── skills/ │ ├── loader.py # Skill pack loading │ ├── cluster_prompts.py # Cluster-specific system prompts │ └── nvidia/ # 17 NVIDIA-specific skill files │ ├── agent-skills.md │ ├── rag-blueprint.md │ ├── dynamo-router.md │ ├── skill-evolution.md │ └── ... # (17 total skill files) └── utils/ └── retry.py # Exponential backoff decorator ``` ## 安装说明 ### 前置条件 - Python 3.11 或更高版本 - NVIDIA API Key(用于模型执行) ### pip 安装 ``` pip install autobot-swarm ``` ### 开发安装 ``` git clone https://github.com/DanielDeshmukh/autobots.git cd autobots python -m pip install -e . --no-build-isolation ``` ## 配置 ### API Key 设置 ``` # 选项 1:.env file echo NVIDIA_API_KEY=your_key_here > .env # 选项 2:Environment variable $env:NVIDIA_API_KEY = "your_key_here" ``` ### 配置文件 在您的项目根目录或 `$HOME` 中创建 `.autobots.toml` 或 `autobots.toml`: ``` [autobots] model_selection_profile = "balanced" # balanced, speed, or quality parallel_planning = false disable_live_catalog = false safety_branch = "autobots-safety" default_mode = "supervised" # supervised, milestone, autonomous milestone_threshold = 3 max_verification_attempts = 3 temperature = 0.2 max_tokens = 4096 # 可选:custom model registry # model_registry_path = "./my-registry.json" # 可选:额外的 custom clusters # [autobots.extra_clusters] # MyCluster = ["nvidia/custom-model-1"] ``` ## CLI 命令 所有命令都会自动从当前工作目录检测目标项目。 | 命令 | 描述 | |---------|-------------| | `autobots init` | 检查目标项目中的 context 文件 | | `autobots init --interactive` | 交互式设置向导 | | `autobots plan` | 生成实现路线图 | | `autobots run [task]` | 以自主模式执行阶段 | | `autobots resume` | 从上一个 checkpoint 恢复 | | `autobots engage` | 带有启动屏幕的交互模式 | | `autobots status` | 带有进度条的丰富状态展示 | | `autobots explain ` | 显示阶段/任务的审计追踪 | | `autobots stats` | 使用统计和成本 | | `autobots undo` | 回滚到上一个快照 | | `autobots snapshots` | 列出可用快照 | | `autobots diff` | 将工作区与快照进行对比 | | `autobots logs` | 查看审计追踪 | | `autobots doctor` | 预检健康检查 | | `autobots catalog` | 浏览 NVIDIA 模型注册表 | | `autobots config validate` | 验证 TOML 配置 | | `autobots completions` | 生成 Shell 自动补全 | | `autobots marketplace` | 浏览技能包 | | `autobots dashboard` | 启动 Web Dashboard | | `autobots validate-models` | 测试 NVIDIA API 连通性 | | `autobots publish` | 构建并发布到 PyPI | ### Plan 选项 | 标志 | 描述 | |------|-------------| | `--goal "text"` | 设置规划目标 | | `--append` | 追加新阶段而不是替换 | | `--dry-run` | 预览而不写入文件 | ### Run 选项 | 标志 | 描述 | |------|-------------| | `--supervised` | 每个阶段需手动批准(默认) | | `--milestone` | 每 N 个阶段批准一次 | | `--autonomous` | 完全自主执行 | | `--verbose` | 记录发送给模型的完整 prompt | ## NVIDIA 模型注册表 Autobots 包含一个带有 9 个集群的综合模型注册表: | 集群 | 角色 | 模型数 | 关键词 | |---------|------|--------|----------| | **Optimus** | 指挥与路由 | 9 | plan, roadmap, phase, orchestrate | | **UltraMagnus** | 后端与架构 | 12 | backend, api, database, service | | **RedAlert** | 安全与防护 | 10 | security, auth, guardrail, validation | | **Jazz** | 前端与创意 | 11 | ui, ux, css, image, visual | | **Ratchet** | 调试与修复 | 10 | debug, fix, refactor, patch, repair | | **Perceptor** | 检索与解析 | 11 | ocr, rag, embedding, document | | **Bumblebee** | 通讯与媒体 | 9 | speech, voice, translation, audio | | **Ironhide** | 物理与仿真 | 8 | simulation, physics, autonomous | | **Wheeljack** | 科学专家 | 7 | science, molecule, protein, quantum | ## NVIDIA 技能 Autobots 将 **17 项 NVIDIA 特有技能**注入到集群 system prompt 中。这些是来自 NVIDIA 官方技能库的精简知识文档,为 RAG、部署、优化等提供领域专业知识。 ### 始终加载的技能(Tier 1) | 技能 | 集群 | 描述 | |-------|------------|-------------| | `agent-skills.md` | Optimus, UltraMagnus | NemoClaw agent 技能架构和调度模式 | | `autonomous-agent-research.md` | Optimus, Wheeljack | 自主研究工作流:假设 → 连线 → 启动 → 评估 | | `session-memory.md` | Optimus, Jazz | 持久的工作会话记忆和 checkpoint 策略 | | `skill-evolution.md` | 所有集群 | 自我改进协议:反思任务,提出技能更新 | | `safety-policy.md` | Ironhide | Nemotron 安全策略分类法和结构化安全审查 | | `rag-blueprint.md` | UltraMagnus, Optimus | NVIDIA RAG Blueprint 架构(Milvus、embedding、reranking) | | `rag-eval.md` | Jazz | 使用 RAGAS 指标和 benchmark 工具进行 RAG 评估 | | `dynamo-deployment.md` | UltraMagnus, Wheeljack | Dynamo Kubernetes 配方和部署模式 | | `dynamo-router.md` | UltraMagnus, Optimus | Dynamo 路由模式(round-robin、KV-aware、least-loaded) | | `retrieval.md` | UltraMagnus, Bumblebee | 文档检索 pipeline(PDF、图像 OCR、音频转录) | ### 条件性技能(Tier 2) 当检测到 roadmap 关键词时自动加载: | 技能 | 加载条件 | 描述 | |-------|-------------|-------------| | `nemotron-customize.md` | fine-tuning, training | Nemotron 模型定制(SFT、DPO、RLHF) | | `cuopt-routing.md` | routing, scheduling | cuOpt 车辆路由 API(VRP、TSP、PDP) | | `cuopt-optimization.md` | optimization, LP/MILP/QP | cuOpt 数值优化(GPU 加速) | | `cudf.md` | pandas, dataframe | cuDF GPU DataFrame(pandas 加速) | | `neautomodel-recipe.md` | training at scale | NeMo Automodel 分布式训练配方 | | `kubernetes-infra.md` | Kubernetes, K8s | 物理 AI 基础设施设置(MicroK8s、OSMO) | | `holoscan.md` | video, edge AI | Holoscan SDK 视频分析 pipeline | | `cudaq.md` | quantum computing | CUDA-Q 量子电路模拟 | ## 执行模式 ### 监督模式(默认) ``` autobots run --supervised ``` - 每个阶段之前都需要批准 - 人类对执行进行完全控制 ### 里程碑模式 ``` autobots run --milestone ``` - 每 N 个阶段后需要批准(可配置) - 在自主性和控制之间取得平衡 ### 自主模式 ``` autobots run --autonomous ``` - 无审批门槛,执行速度最快 ## Context 架构 Autobots 期望在 `context/` 下有六个目标项目自带的 context 文件: | 文件 | 用途 | |------|---------| | `architecture.md` | 项目架构和结构 | | `conventions.md` | 代码风格、命名、格式化规则 | | `testing-strategy.md` | 测试框架、覆盖率、模式 | | `security-auth.md` | 安全和认证说明 | | `roadmap.md` | 包含目标和验证的阶段定义 | | `progress-tracker.md` | 阶段状态跟踪(autobots 会更新此项) | 这些文件会被注入到模型 prompt 中,以便生成的代码符合您项目的模式。 ## 跨平台使用 ### Windows ``` pip install autobot-swarm $env:NVIDIA_API_KEY = "your_key" cd C:\path\to\your\project autobots init autobots plan autobots run ``` ### macOS / Linux ``` pip install autobot-swarm export NVIDIA_API_KEY="your_key" cd /path/to/your/project autobots init autobots plan autobots run ``` ## 环境变量 | 变量 | 描述 | 默认值 | |----------|-------------|---------| | `NVIDIA_API_KEY` | 用于模型访问的 NVIDIA API key | 必填 | | `AUTOBOTS_MODEL_SELECTION_PROFILE` | 模型选择:balanced/speed/quality | balanced | | `AUTOBOTS_ENABLE_PARALLEL_PLANNING` | 启用并行工作流 | false | | `AUTOBOTS_DISABLE_LIVE_CATALOG` | 仅使用捆绑的模型 | false | | `AUTOBOTS_SAFETY_BRANCH` | 必需的 git 分支名称 | autobots-safety | | `AUTOBOTS_DEFAULT_MODE` | 默认执行模式 | supervised | | `AUTOBOTS_MILESTONE_THRESHOLD` | 每次批准的阶段数 | 3 | `AUTOBOTS_MAX_VERIFICATION_ATTEMPTS` | 重试限制 | 3 | ## 故障排除 ### 缺少 NVIDIA API Key ``` RuntimeError: NVIDIA_API_KEY is missing. Cannot execute the swarm. ``` **解决方案**:在 `.env` 或环境变量中设置 `NVIDIA_API_KEY`。 ### Context 设置不完整 ``` Command: run Missing: roadmap.md, progress-tracker.md ``` **解决方案**:在 `context/` 中创建列出的文件,然后运行 `autobots plan`。 ### 安全分支检查失败 ``` Execution blocked. Switch to autobots-safety branch. ``` **解决方案**:`git checkout -b autobots-safety` ### 命令策略违规 ``` Command not in safety whitelist: rm -rf / ``` **解决方案**:Autobots 会拦截危险命令。请使用安全的替代方案。 ### 无 Checkpoint 时尝试恢复 ``` No checkpoint found. Use 'autobots run' to start fresh. ``` **解决方案**:使用 `autobots run` 开始新的运行。 ## 开发 ### 运行测试 ``` # 所有 tests python -m pytest tests/ -v # 特定的 test file python -m pytest tests/test_phase_9_config.py -v # With coverage python -m pytest tests/ --cov=autobots --cov-report=html ``` ### 项目结构 ``` autobots/ ├── autobots/ # Main package (35 modules) ├── skills/ # Skill injection system ├── utils/ # Utilities (retry decorator) ├── tests/ # Test suite (465 tests) ├── integration/ # Integration tests (10 tests) ├── setup.cfg # Package configuration └── README.md # This file ``` ## 许可证 MIT 许可证 — 详情请参阅 [LICENSE](LICENSE)。 ## 版本历史 | 版本 | 日期 | 变更 | |---------|------|---------| | 0.1.9 | 2026-06-09 | NVIDIA 技能:将 17 个技能文件注入到集群 prompt 中(RAG、cuOpt、cuDF、Dynamo、Holoscan、CUDA-Q),基于 roadmap 的条件加载,实时目录发现 | | 0.1.8 | 2026-06-09 | 优先功能:回滚、流式传输、预检、引导、错误、门控、git、配置验证、补全、context 预算、插件、市场、dashboard、diff、日志、成本、丰富状态、explain、统计、verbose | | 0.1.7 | 2026-06-08 | PyPI 描述更新 | | 0.1.6 | 2026-06-08 | 迈向 A+++ 的指南:重试、安全子进程、日志记录、engage 屏幕 | | 0.1.5 | 2026-06-08 | 任务 ID 注册表、publish 命令、技能注入 | | 0.1.4 | 2026-06-08 | 移除了由 Autobots 创建的 context 文件 | | 0.1.1 | 2026-05-15 | 阶段 9-10:配置、错误处理、失败测试 | | 0.1.0 | 2026-05-14 | 阶段 1-8.5:核心功能 | ## 致谢 - 使用 [NVIDIA NIM](https://developer.nvidia.com/nim) 构建以实现模型访问 - 由 [Rich](https://github.com/Textualize/rich) 提供终端 UI 支持 - 使用 [OpenAI](https://openai.com) 兼容的 API 接口
标签:NVIDIA NIM, Python, Python安全, 人工智能, 代码审查, 代码生成, 文档结构分析, 无后门, 智能体集群, 渗透测试工具, 用户模式Hook绕过, 自动化软件开发, 逆向工具