aaravshah1311/Agent-2-Beta

GitHub: aaravshah1311/Agent-2-Beta

一个由 Google Gemini 驱动的自托管自主 AI 智能体,集成了编码助手、终端控制、安全测试与持久化记忆功能。

Stars: 22 | Forks: 1

⚡ Agent-2-Beta

一个由 Google Gemini 驱动的自托管自主 AI 开发智能体 —
集编码助手、终端智能体、安全测试和持久记忆于一体的单一界面。

概述安装运行API 密钥CLI故障排除专业版贡献

## 🚀 概述 **Agent-2-Beta** 是一个由 Google Gemini 驱动的自托管自主 AI 智能体。它提供两种运行模式: | 模式 | 入口点 | 描述 | |------|-------------|-------------| | 🌐 **Web UI** | `agent2web.py` | 浏览器界面 — 工作区、多标签终端、Three.js 3D 欢迎页、实时流式传输 | | ⚡ **CLI** | `agent2cli.py` | 原生终端智能体 — 与 Web UI 具有相同的大脑、工具和记忆 | 两种模式共享相同的 **8 个智能体工具**、持久化记忆引擎以及基于 `.env` 的 API 密钥轮换。 ## ✨ 核心功能 | | 功能 | 描述 | |-|---------|-------------| | 🗂️ | **工作区** | Claude Projects 风格的上下文 — 路径浏览器、工作区级别记忆、框架检测 | | 🤖 | **8 个智能体工具** | Shell, read_file, write_file, scan_project, multi_edit_files, web_search, save_memory, emit_plan | | 📝 | **多文件编辑** | 自主在多个文件中进行精确的查找与替换修补 | | 🧠 | **持久化记忆** | 跨会话的全局、工作区范围及自动提取的记忆 | | 💻 | **多标签终端** | 实时流式传输、stdin 注入、↑↓ 命令历史记录、两阶段终止 | | 🔑 | **API 密钥轮换** | 支持多个密钥,配额用尽时自动轮换,固定密钥,单密钥使用统计 | | 🔒 | **安全测试** | 自主漏洞扫描、逻辑缺陷检测 (XSS/SQLi)、内置 nmap、metasploit 工作流 | | 🌐 | **网络搜索** | DuckDuckGo 即时解答 — 无需额外的 API 密钥 | | ✏️ | **消息编辑** | 编辑任何历史消息并从该点重新运行智能体 | | ⏹️ | **停止生成** | 随时取消正在运行的智能体 | | 📎 | **文件附件** | 附加代码、图像、PDF 作为上下文 | | ▶️ | **一键运行** | 点击任意工具块上的 ▶,即可在活动终端中立即运行该命令 | | 🎨 | **3D 欢迎屏幕** | Three.js — 神经粒子、环面纽结、旋转线框、八面体 | | 📦 | **项目自动设置** | 检测框架 → 安装依赖 → 自动运行项目 | ## 🖼️ 截图
Agent2 Web Interface Agent2 Installation

Left: Web Interface  •  Right: Installation & Setup


Agent2 CLI

Agent2 CLI — Rich UI, key rotation, ↑↓ history, and all 8 tools in the terminal

## 🧱 项目结构 ``` agent2/ ├── run.py ← Universal launcher — setup, run, manage keys ├── agent2web.py ← Web UI entry point ├── agent2cli.py ← CLI agent entry point ├── .env ← API keys (auto-created on first run) ├── agent2.db ← SQLite database (auto-created) └── agent2/ ├── __init__.py ├── config.py ← Platform detection, models, modes, constants ├── database.py ← SQLite helpers + schema + migrations ├── memory.py ← Memory engine (auto-extract, workspace-scoped) ├── tools.py ← 8 tool implementations ├── keys.py ← KeyRotator: rotation, pinning, usage tracking ├── terminal.py ← stream_command, stdin, kill, stop events ├── agent.py ← system_prompt, context builder, run_agent loop ├── routes.py ← All /api/* REST endpoints ├── sockets.py ← All Socket.IO event handlers └── ui.py ← HTML/CSS/JS single-page frontend (89 KB) ``` ## ⚙️ 安装说明 ### 1 — 克隆 ``` git clone https://github.com/aaravshah1311/Agent-2-Beta.git cd Agent-2-Beta ``` ### 2 — 运行启动器 ``` python run.py ``` `run.py` 将自动: - ✅ 创建虚拟环境 - ✅ 安装所有依赖(`flask`, `flask-socketio`, `google-genai`, `rich`, …) - ✅ 提示输入您的 Gemini API 密钥并将其保存到 `.env` - ✅ 启动 Web 服务器 ## ▶️ 运行模式 ### `agent2` 命令 — 所有参数一览 初始安装后,`agent2` 命令将被全局添加到您的 PATH 中。 ``` agent2 setup + start Web UI (default) agent2 --web setup + start Web UI agent2 --cli setup + start CLI agent agent2 --addapi add / manage API keys agent2 --reset wipe venv and reinstall everything agent2 --uninstall completely remove Agent2 and its venv agent2 -h show this help menu ``` ### 🌐 Web UI ``` agent2 # 或明确指定 agent2 --web ``` 打开 → **http://localhost:1311** ### ⚡ CLI Agent ``` agent2 --cli ``` 或者首次设置后直接调用: ``` # macOS / Linux venv/bin/python agent2cli.py # Windows venv\Scripts\python agent2cli.py ``` ## 🔑 管理 API 密钥 ### 通过 `agent2` — 推荐 ``` agent2 --addapi ``` 引导您以交互方式添加密钥并将其保存到 `.env`。 密钥将存储为 `GEMINI_API_KEY`、`GEMINI_API_KEY_2`、`GEMINI_API_KEY_3` …,并在其中一个耗尽配额时**自动轮换**。零停机时间 — 下一个请求将立即使用新密钥。 ### 在 CLI 会话中 ``` /addapi ``` 无需离开会话即可粘贴新密钥 — 立即保存到 `.env` 并在下次调用时生效。 ### 重置所有内容 ``` agent2 --reset ``` 清除 `venv/` 并重新安装所有依赖。在包损坏或 Python 升级时使用。 ### 完全卸载 ``` agent2 --uninstall ``` 移除虚拟环境和生成的文件,保持源代码不变。 ## 🗂️ 首次运行 — 工作区设置 (Web UI) 1. 打开 **http://localhost:1311** 2. 点击侧边栏中的 **+ Create Workspace** 3. 输入名称并选择性填入项目路径 — 留空则自动创建文件夹 4. 点击工作区 → **New Chat** → 开始工作 每个聊天都属于一个工作区。智能体始终知道您的项目路径、检测到的框架以及累积的工作区记忆。 ## ⌨️ CLI 命令参考 | 命令 | 描述 | |---------|-------------| | `/help` | 显示所有命令 | | `/addapi` | 将 Gemini API 密钥添加到 `.env` | | `/keys` | 显示当前 API 密钥状态及使用情况 | | `/model [name]` | 切换模型 (`2.5-flash-lite` · `2.5-flash` · `2.5-pro` · `3.1-*`) | | `/mode [name]` | 切换模式 (`fast ⚡` · `pro ★` · `thinking 🧠`) | | `/clear` | 清除当前对话并重新开始 | | `/shrink` | 手动总结并缩减历史记录 | | `/clearhistory` | 清除消息历史记录 | | `/history` | 显示最近 10 条消息 | | `/memory` | 列出所有已保存的记忆及其重要性得分 | | `/addmem ` | 手动保存记忆 | | `/scan [path]` | 扫描并分析整个项目目录、技术栈和结构 | | `/run ` | 直接运行 shell 命令 | | `/read ` | 读取并显示文件内容 | | `/search ` | 通过 DuckDuckGo 进行网络搜索(无需密钥) | | `/exit` · `Ctrl+C` | 退出 | ## 🧪 安装检查清单 - [ ] 已安装 Python 3.10+ - [ ] `python run.py` 已无误完成 - [ ] Gemini API 密钥已保存至 `.env` - [ ] Web UI → 服务器在 **http://localhost:1311** 启动,已创建首个工作区 - [ ] CLI → 提示符 `you [no-ws|2.5-flash-lite|★]>` 出现 ## 🤖 可用模型 | 密钥 | 模型 | 分组 | |-----|-------|-------| | `2.5-flash-lite` | Gemini 2.5 Flash Lite | 2.5 | | `2.5-flash` | Gemini 2.5 Flash | 2.5 | | `2.5-pro` | Gemini 2.5 Pro | 2.5 | | `3.1-flash-lite` | Gemini 3.1 Flash Lite | 3.1 | | `3.1-flash` | Gemini 3.1 Flash | 3.1 | | `3.1-pro` | Gemini 3.1 Pro | 3.1 | ## ⚡ 推理模式 | 模式 | 最大 Token 数 | 最适合 | |------|-----------|----------| | ⚡ Fast | 2 048 | 快速回答、简单命令 — 成本最低 | | ★ Pro | 8 192 | 大多数任务 — 速度与质量的平衡 | | 🧠 Thinking | 16 384 | 复杂推理、架构、疑难 Bug *(仅限 2.5 / 3.1)* | ## 🛠️ 技术栈 | 层级 | 技术 | |-------|-----------| | 后端 | Python 3.10+, Flask, Flask-SocketIO | | AI 引擎 | Google Gemini (`google-genai`) | | 数据库 | SQLite (标准库 `sqlite3`) | | 终端 | `subprocess.Popen` — 实时 stdout 流式传输 | | Web 前端 | 原生 JS, xterm.js, marked.js, highlight.js, Three.js | | 3D 场景 | Three.js r128 — 粒子、环面纽结、二十面体、八面体 | | CLI UI | Rich — 面板、Markdown、语法高亮、加载动画 | | 记忆 | 每次回复后通过后台 Gemini 调用进行自动提取 | | 网络搜索 | DuckDuckGo Instant Answer API — 无需密钥 | ## 🔒 安全测试工作流 Agent-2-Beta 专为安全研究和 CTF 工作量身定制: ``` portscan 10.10.1.1 enumerate http://target:8080 with gobuster run sqlmap on http://target/login?id=1 check for open ports on localhost scan for vulnerabilities on 192.168.1.0/24 brute force SSH on 10.10.1.5 with hydra ``` 支持:`nmap`、`nikto`、`gobuster`、`ffuf`、`sqlmap`、`hydra`、`metasploit`、 `searchsploit`、`theharvester`、`binwalk`、`strings`、`volatility` 等。 ## 📌 故障排除 | 问题 | 解决方案 | |---------|----------| | `No API keys configured` | 执行 `python run.py --addapi` 或在 CLI 中输入 `/addapi` | | 密钥配额耗尽 | 密钥会自动轮换。添加更多密钥:`python run.py --addapi` | | 模型返回空响应 | 切换至 **2.5 Flash Lite**:`/model 2.5-flash-lite` | | 终端不显示输出 | 刷新浏览器标签页并重新连接 | | Windows 上找不到 `python` | 使用 `py run.py` 或从 Microsoft Store 安装 | | 端口 1311 已被占用 | 将 `agent2web.py` 中的 `port=1311` 更改为其他端口 | | venv 损坏 / import 错误 | 执行 `python run.py --reset` — 清除并重新干净安装 | | CLI 加载动画卡住 | 按下 `Ctrl+C` — 取消请求并返回提示符 | | 未安装 `rich` | 执行 `python run.py --reset` — `rich` 包含在安装列表中 | | 想要完全从头开始 | 执行 `python run.py --uninstall`,然后执行 `python run.py` | ## 🚀 Agent-2-Pro **Agent-2-Pro** 是 Agent-2-Beta 的专业级演进版本 — 集真正的**软件工程师**和**强硬渗透测试员**于一体的智能体。
| | Agent-2-Beta | Agent-2-Pro | |-|:---:|:---:| | 工作区 | ✅ | ✅ | | 8 个智能体工具 | ✅ | ✅ 扩展版 | | 记忆引擎 | ✅ | ✅ 高级版 | | 多标签终端 | ✅ | ✅ | | **AI 模型** | 6 ✅ | 15 ✅ | | **从单个提示词生成完整项目** | ❌ | ✅ | | **软件工程模式** | ❌ | ✅ | | **DeepDive — 任务分解** | ❌ | ✅ | | **强硬渗透测试** | ❌ | ✅ | | **QA 及自动化测试生成** | ❌ | ✅ | | **项目空间** | ❌ | ✅ |
### 专业版核心功能亮点 **🏗️ 软件工程模式** 分析您的提示词,构思完整的解决方案,并通过一系列精确、自我纠错的步骤设计出完整的多文件项目。一个提示词 → 生产级代码库。 **🎯 DeepDive** 将单个复杂任务分解为多个专注的子任务,精准解决每一个子任务,然后组装最终结果。在难题上具有显著更高的准确性。 **🔴 强硬渗透测试** 远超基础扫描 — 完整的杀伤链自动化:侦察 →枚举 → 利用 → 后渗透 → 报告生成,尽在一次会话中完成。 **🧪 QA 模式** 自动为其构建或提供的任何代码库生成单元测试、集成测试和边缘情况覆盖。 ### 获取 Agent-2-Pro 📧 **联系方式:** [aaravprogrammers@gmail.com](mailto:aaravprogrammers@gmail.com) 🐙 **GitHub:** [github.com/aaravshah1311](https://github.com/aaravshah1311) ### 如何贡献 1. **Fork** 本仓库 2. **创建** 功能分支 git checkout -b feature/your-feature-name 3. **进行** 更改并使用清晰的信息提交 git commit -m "feat: add your feature description" 4. **Push** 到您的 fork 仓库 git push origin feature/your-feature-name 5. **发起** 针对主分支的 Pull Request ### 我们期待的内容 - 🐛 **错误修复** — 特别是 Windows/Mac/Linux 上的边缘情况 - 🌐 **新工具** — 额外的智能体能力 - 🎨 **UI 改进** — 前端优化、可访问性 - 📚 **文档** — 更清晰的解释、更多示例 - 🔒 **安全工作流** — 新的渗透测试自动化模式 - ⚡ **性能** — 更快的启动速度、更低的内存消耗、更好的流式传输 - 🌍 **可移植性** — 针对不同平台或 Python 版本的改进 ### 准则 - 保持更改集中 — 每个功能/修复对应一个 PR - 遵循每个文件中现有的代码风格 - 在提交前至少在一个平台上进行测试 - 在 PR 中添加简短描述,说明 *内容* 和 *原因* ### 报告问题 发现 Bug 或有功能建议?[提交一个 issue](https://github.com/aaravshah1311/Agent-2-Beta/issues) — 请附上您的操作系统、Python 版本以及具体的错误信息。 ## 👤 作者 **Aarav Shah** [![GitHub](https://img.shields.io/badge/GitHub-aaravshah1311-181717?style=flat&logo=github)](https://github.com/aaravshah1311/) [![Portfolio](https://img.shields.io/badge/Portfolio-aaravshah1311.is--great.net-0ea5e9?style=flat)](https://aaravshah1311.is-great.net) [![Email](https://img.shields.io/badge/Email-aaravprogrammers%40gmail.com-EA4335?style=flat&logo=gmail)](mailto:aaravprogrammers@gmail.com) **Rudra Marathe** [![GitHub](https://img.shields.io/badge/GitHub-RudraDelete26-181717?style=flat&logo=github)](https://github.com/RudraDelete26/) [![Portfolio](https://img.shields.io/badge/Portfolio-rudraxdelete.is-great.net-0ea5e9?style=flat)](https://rudraxdelete.is-great.net) [![Email](https://img.shields.io/badge/Email-rudranmarathegpsagb%40gmail.com-EA4335?style=flat&logo=gmail)](mailto:rudranmarathegpsagb@gmail.com) **Naitik Soni** [![GitHub](https://img.shields.io/badge/GitHub-Naitiksoni--123-181717?style=flat&logo=github)](https://github.com/Naitiksoni-123/) [![Email](https://img.shields.io/badge/Email-naitiksoni1417%40gmail.com-EA4335?style=flat&logo=gmail)](mailto:naitiksoni1417@gmail.com)
**⭐ 如果 Agent-2-Beta 能帮助您构建或破解项目,请给本仓库点个 Star。**
专为开发者、安全研究人员以及任何希望拥有一个能真正干活的 AI 的人而打造。
标签:AI智能体, Flask, Python, Web界面, 无后门, 编程助手, 自主智能体, 逆向工具