1 line
58 KiB
JSON
1 line
58 KiB
JSON
{"repo": "because66666/becode", "files": {"README.md": {"eabf54355d5041a2dc4f500346970670f74a19df": {"t": 1785746710.6676018, "n": 6401, "h": "5a1ea194b6eeb4f8", "c": "# BeCode — 双智能体编码工作流\n\n> 基于 LangChain 1.3+ 架构的双智能体协作编码系统,实现 **Coder Agent(编码)→ Reviewer Agent(审查)→ 反馈循环** 的自反馈系统。致力于通过提示词工程,让普通模型的编码能力和工程完成度获得提升。\n\n*建议选用模型上下文长度为1M的模型。成本敏感者慎用。*\n\n\n---\n\n## 作者有话说\n- *既然fable5代表着模型进步,会消解之前所做的所有跟提示词相关的工作,那么反推过来,能否通过编排和提示词控制,让现有模型达到那种高度?*\n- *当前BeCode的开发,除去第一次构建使用deepseek v4 flash驱动的Claude Code完成编码,为其提供了初始的文件编辑工具和命令运行工具。后面的迭代均使用BeCode自己进行开发(deepseek v4 flash驱动)。*\n- *少即是多。*\n\n## ✨ 特性\n\n| 特性 | 说明 |\n|------|------|\n| **双智能体协作** | Coder Agent 负责需求实现,Reviewer Agent 负责代码审查,形成闭环 |\n| **多轮迭代反馈** | 支持最多 N 轮(默认 10 轮)的「编码 → 审查 → 修复」循环,直至审查通过 |\n| **文件/命令操作** | 提供 `read_file`、`edit_file`、`bash_exec` 三大核心工具,安全可控 |\n| **联网搜索能力** | 集成 `web_search`(Bing 搜索)和 `web_fetch`(网页抓取),可查阅文档/资料 |\n| **Bash 安全防护** | 双层安全校验(静态规则 + LLM 语义审查),防止误执行危险命令 |\n| **会话持久化** | 每轮对话自动保存到 JSON 文件,支持断点续查 |\n| **终端 UI** | 基于 Rich 库的精美命令行界面,实时展示工具调用和智能体报告 |\n| **OpenAI 协议兼容** | 支持 OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等任意 OpenAI 兼容 API |\n\n---\n\n## 📦 项目结构\n\n```\n├── main.py # 入口文件\n├── .env # 环境变量配置(API Key / Model / 最大轮次)\n├── requirements.txt # Python 依赖\n├── CLAUDE.md # 工作记忆(约束 / 偏好 / 项目事实)\n├── sessions/ # 会话持久化目录(JSON)\n│\n├── src/\n│ ├── __init__.py\n│ │\n│ ├── agents/\n│ │ ├── coder_agent.py # Coder Agent — 需求实现智能体\n│ │ └── reviewer_agent.py # Reviewer Agent — 代码审查智能体\n│ │\n│ ├── core/\n│ │ ├── config.py # 配置管理(从 .env 加载)\n│ │ ├── llm_client.py # LLM 客户端封装(OpenAI 协议)\n│ │ ├── orchestrator.py # 工作流编排器(主循环)\n│ │ └── session_store.py # 会话持久化存储\n│ │\n│ ├── tools/\n│ │ ├── tools.py # 核心工具(read_file / edit_file / bash_exec)\n│ │ ├── bash_guard.py # Bash 命令安全防护(规则 + LLM 双层校验)\n│ │ └── web_search.py # 联网搜索工具(web_search / web_fetch)\n│ │\n│ └── ui/\n│ ├── console.py # 终端 UI(AgentConsole — Rich 渲染)\n│ ├── callbacks.py # LangChain 回调处理器(实时展示工具调用)\n│ └── collapsible.py # 输出分段管理器\n│\n├── web/ # 会话查看网页(纯前端,本地打开即用)\n│ ├── index.html # 单页应用入口\n│ └── assets/ # 本地化字体 + JS 库(不依赖 CDN)\n│\n└── .trae/plans/ # 开发计划文档\n```\n\n---\n\n## 🚀 快速开始\n\n### 1. 安装依赖\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. 配置环境变量\n\n编辑 `.env` 文件:\n\n```ini\n# LLM 配置(OpenAI 协议兼容)\nOPENAI_API_BASE=https://api.deepseek.com\nOPENAI_API_KEY=sk-your-api-key-here\nOPENAI_MODEL=deepseek-v4-flash\n\n# 工作流配置\nMAX_ITERATIONS=10\nSESSION_DIR=./sessions\n\n# 日志级别(WARNING 及以上显示到控制台)\nLOG_LEVEL=WARNING\n```\n\n支持任意 OpenAI 兼容 API(OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等)。\n\n### 3. 运行\n\n```bash\n# 方式一:直接传入需求\npython main.py \"创建一个 Python 脚本,实现斐波那契数列\"\n\n# 方式二:从文件读取需求\npython main.py --file prompt.txt\n\n# 方式三:交互式输入\npython main.py --interactive\n```\n\n### 可选参数\n\n| 参数 | 说明 |\n|------|------|\n| `-m`, `--model` | 覆盖 .env 中的模型名称 |\n| `--max-iterations` | 覆盖最大迭代轮数 |\n\n---\n\n## 🧩 工作流架构\n\n```\n┌──────────────┐ ┌──────────────┐\n│ Coder Agent │ ──→ │ Reviewer │\n│ (实现需求) │ │ Agent (审查) │\n└──────┬───────┘ └──────┬───────┘\n │ │\n │ ◄── FAIL ──── │\n │ + 反馈 │\n │ │\n └──── PASS ────────→ ✅ 完成\n```\n\n### 流程说明\n\n1. **用户输入需求** → 系统接收需求文本\n2. **Coder Agent** → 分析需求,使用工具(读文件、编辑文件、执行命令、联网搜索)实现代码\n3. **Coder 输出报告** → 描述实现内容、修改了哪些文件、运行结果\n4. **Reviewer Agent** → 阅读需求和 Coder 报告,使用相同工具验证实现是否完整正确\n5. **审查判定**:\n - **PASS** ✅ → 工作流完成,输出最终结果\n - **FAIL** ❌ → 提取详细反馈,返回第 2 步进入下一轮迭代\n6. **达最大轮次** → 输出未完成状态和已有成果\n\n---\n\n## 🛠 工具详解\n\n### 核心工具\n\n| 工具 | 功能 | 安全约束 |\n|------|------|----------|\n| `read_file` | 读取文件内容(支持行偏移/行数限制) | 仅限工作区目录 |\n| `edit_file` | 精确字符串替换编辑文件 | 仅限工作区目录,必须唯一匹配 |\n| `bash_exec` | 执行 Shell 命令 | **双层安全防护** |\n\n### 联网工具\n\n| 工具 | 功能 | 说明 |\n|------|------|------|\n| `web_search` | Bing 搜索引擎搜索(HTML 解析) | 本地访问和解析 |\n| `web_fetch` | 网页内容提取(BeautifulSoup) | 自动去除导航/脚本/样式 |\n\n### BashGuard 安全防护\n\n所有通过 `bash_exec` 执行的命令均经过 **双层安全校验**:\n\n1. **规则层** — 静态正则黑名单拦截(`rm -rf /`、`mkfs`、`dd`、`shutdown` 等)\n2. **LLM 审查层** — 调用独立 LLM 语义判断命令意图(安全/不安全)\n\n> 环境变量 `BASH_GUARD_LLM_DISABLED=1` 可跳过 LLM 审查层(用于测试或无 API Key 环境)。\n\n---\n\n## 📝 会话管理\n\n- 每次运行自动生成唯一会话 ID(8 位 UUID)\n- 每轮对话的智能体输出自动保存到 `sessions/session_{id}.json`\n- 会话文件包含:原始需求、每轮 Coder 报告、Reviewer 判定、时间戳\n\n---\n\n## 🌐 会话查看网页\n\n项目内置一个纯前端会话查看网页,用于浏览和回顾历史对话记录,无需启动后端服务。\n\n### 特性\n\n- **纯前端实现** — 基于 File System Access API 选择会话文件夹,默认路径提示 `%username%/.becode`\n- **本地持久化** — 通过 IndexedDB 保存目录句柄,刷新页面后无需重选文件夹\n- **Markdown 渲染** — 智能体报告支持完整 Markdown 渲染(marked.js + DOMPurify)\n- **工具调用折叠** — 默认折叠显示工具图标 + 名称 + 参数预览,可批量展开/折叠\n- **资产本地化** — 字体(Google Fonts woff2)和 JS 库均已下载到本地,不依赖 CDN\n- **中文化界面** — UI 说明文字均为中文,专有名词(BeCode、coder/reviewer 等)保留英文\n\n### 使用方式\n\n1. 使用 **Chrome 或 Edge 86+** 打开 `web/index.html`(直接双击文件即可)\n2. 点击顶部路径栏,选择会话文件夹(默认推荐 `%username%/.becode/sessions`)\n3. 左侧侧栏显示会话列表,支持按 ID 或需求关键词搜索\n4. 点击会话项,右侧详情区展示完整对话时间线、Markdown 报告和工具调用\n\n> 设计风格:白色主题 + 浅蓝副色,编辑型技术日志风格(Fraunces 衬线展示字 + DM Sans 正文 + JetBrains Mono 代码)。\n\n---\n\n## 🎨 终端 UI\n\n基于 Rich 库构建的友好命令行界面:\n\n- 🚀 **启动面板** → 显示会话 ID、模型、最大轮次\n- 📋 **需求展示** → 黄色边框 Panel 显示用户需求\n- 🤖 **智能体思考** → 绿色/品红色提示当前智能体工作状态\n- 💻 **工具调用** → 精简 3 行 Panel(工具名 → 参数 → 结果摘要)\n- 📝 **智能体报告** → Markdown 渲染的完整报告\n- 🎉 **审查判定** → 通过/未通过的可视化反馈\n- 📊 **最终统计** → 状态、轮次、上下文长度统计\n\n---\n\n## 🔧 依赖项\n\n| 依赖 | 版本 | 用途 |\n|------|------|------|\n| `langchain` | ≥ 0.3.0 | 智能体框架 |\n| `langchain-community` | ≥ 0.3.0 | 社区工具/模型 |\n| `langchain-openai` | ≥ 0.3.0 | OpenAI 协议 LLM 客户端 |\n| `python-dotenv` | ≥ 1.0.0 | .env 环境变量加载 |\n| `pydantic` | ≥ 2.0.0 | 数据模型 |\n| `pydantic-settings` | ≥ 2.0.0 | 配置管理 |\n| `requests` | ≥ 2.31.0 | HTTP 请求 |\n| `beautifulsoup4` | ≥ 4.12.0 | HTML 解析 |\n| `rich` | ≥ 13.0.0 | 终端 UI 渲染 |\n\n---\n\n## 📄 示例会话\n\n```bash\n# 1. 运行系统\npython main.py \"创建一个 hello.py,打印 'Hello Agent Workflow'\"\n\n# 2. 系统输出(精简)\n🚀 启动 会话ID: a1b2c3d4 | 模型: gpt-4o | 最大轮次: 10\n\n📋 用户需求\n创建一个 hello.py,打印 'Hello Agent Workflow'\n\n━━━ 第 1/10 轮 ━━━\n\n🤖 Coder Agent 思考中...\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n📝 Coder Agent 报告\n已创建 hello.py,运行输出: Hello Agent Workflow\n\n🔍 Reviewer Agent 思考中...\n📖 文件读取 | path=hello.py | 文件行数: 1\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n🔍 Reviewer Agent 报告\n✅ 审查通过!代码正确输出 \"Hello Agent Workflow\"。\n\n🎉 审查通过\n📊 统计信息 | 状态: ✅ 成功 | 轮次: 1 | 会话ID: a1b2c3d4 | Coder上下文: 0.5K\n\n📁 会话文件: ./sessions/session_a1b2c3d4.json\n```\n\n---\n\n## 📜 许可证\n\n本项目仅供学习和参考使用。\n\n---\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request。建议先在 Issue 中讨论设计方案。\n"}, "a935ede4c61811d86d9bf8ba454738f3a0d4d736": {"t": 1785767157.413434, "n": 6401, "h": "5a1ea194b6eeb4f8", "c": "# BeCode — 双智能体编码工作流\n\n> 基于 LangChain 1.3+ 架构的双智能体协作编码系统,实现 **Coder Agent(编码)→ Reviewer Agent(审查)→ 反馈循环** 的自反馈系统。致力于通过提示词工程,让普通模型的编码能力和工程完成度获得提升。\n\n*建议选用模型上下文长度为1M的模型。成本敏感者慎用。*\n\n\n---\n\n## 作者有话说\n- *既然fable5代表着模型进步,会消解之前所做的所有跟提示词相关的工作,那么反推过来,能否通过编排和提示词控制,让现有模型达到那种高度?*\n- *当前BeCode的开发,除去第一次构建使用deepseek v4 flash驱动的Claude Code完成编码,为其提供了初始的文件编辑工具和命令运行工具。后面的迭代均使用BeCode自己进行开发(deepseek v4 flash驱动)。*\n- *少即是多。*\n\n## ✨ 特性\n\n| 特性 | 说明 |\n|------|------|\n| **双智能体协作** | Coder Agent 负责需求实现,Reviewer Agent 负责代码审查,形成闭环 |\n| **多轮迭代反馈** | 支持最多 N 轮(默认 10 轮)的「编码 → 审查 → 修复」循环,直至审查通过 |\n| **文件/命令操作** | 提供 `read_file`、`edit_file`、`bash_exec` 三大核心工具,安全可控 |\n| **联网搜索能力** | 集成 `web_search`(Bing 搜索)和 `web_fetch`(网页抓取),可查阅文档/资料 |\n| **Bash 安全防护** | 双层安全校验(静态规则 + LLM 语义审查),防止误执行危险命令 |\n| **会话持久化** | 每轮对话自动保存到 JSON 文件,支持断点续查 |\n| **终端 UI** | 基于 Rich 库的精美命令行界面,实时展示工具调用和智能体报告 |\n| **OpenAI 协议兼容** | 支持 OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等任意 OpenAI 兼容 API |\n\n---\n\n## 📦 项目结构\n\n```\n├── main.py # 入口文件\n├── .env # 环境变量配置(API Key / Model / 最大轮次)\n├── requirements.txt # Python 依赖\n├── CLAUDE.md # 工作记忆(约束 / 偏好 / 项目事实)\n├── sessions/ # 会话持久化目录(JSON)\n│\n├── src/\n│ ├── __init__.py\n│ │\n│ ├── agents/\n│ │ ├── coder_agent.py # Coder Agent — 需求实现智能体\n│ │ └── reviewer_agent.py # Reviewer Agent — 代码审查智能体\n│ │\n│ ├── core/\n│ │ ├── config.py # 配置管理(从 .env 加载)\n│ │ ├── llm_client.py # LLM 客户端封装(OpenAI 协议)\n│ │ ├── orchestrator.py # 工作流编排器(主循环)\n│ │ └── session_store.py # 会话持久化存储\n│ │\n│ ├── tools/\n│ │ ├── tools.py # 核心工具(read_file / edit_file / bash_exec)\n│ │ ├── bash_guard.py # Bash 命令安全防护(规则 + LLM 双层校验)\n│ │ └── web_search.py # 联网搜索工具(web_search / web_fetch)\n│ │\n│ └── ui/\n│ ├── console.py # 终端 UI(AgentConsole — Rich 渲染)\n│ ├── callbacks.py # LangChain 回调处理器(实时展示工具调用)\n│ └── collapsible.py # 输出分段管理器\n│\n├── web/ # 会话查看网页(纯前端,本地打开即用)\n│ ├── index.html # 单页应用入口\n│ └── assets/ # 本地化字体 + JS 库(不依赖 CDN)\n│\n└── .trae/plans/ # 开发计划文档\n```\n\n---\n\n## 🚀 快速开始\n\n### 1. 安装依赖\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. 配置环境变量\n\n编辑 `.env` 文件:\n\n```ini\n# LLM 配置(OpenAI 协议兼容)\nOPENAI_API_BASE=https://api.deepseek.com\nOPENAI_API_KEY=sk-your-api-key-here\nOPENAI_MODEL=deepseek-v4-flash\n\n# 工作流配置\nMAX_ITERATIONS=10\nSESSION_DIR=./sessions\n\n# 日志级别(WARNING 及以上显示到控制台)\nLOG_LEVEL=WARNING\n```\n\n支持任意 OpenAI 兼容 API(OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等)。\n\n### 3. 运行\n\n```bash\n# 方式一:直接传入需求\npython main.py \"创建一个 Python 脚本,实现斐波那契数列\"\n\n# 方式二:从文件读取需求\npython main.py --file prompt.txt\n\n# 方式三:交互式输入\npython main.py --interactive\n```\n\n### 可选参数\n\n| 参数 | 说明 |\n|------|------|\n| `-m`, `--model` | 覆盖 .env 中的模型名称 |\n| `--max-iterations` | 覆盖最大迭代轮数 |\n\n---\n\n## 🧩 工作流架构\n\n```\n┌──────────────┐ ┌──────────────┐\n│ Coder Agent │ ──→ │ Reviewer │\n│ (实现需求) │ │ Agent (审查) │\n└──────┬───────┘ └──────┬───────┘\n │ │\n │ ◄── FAIL ──── │\n │ + 反馈 │\n │ │\n └──── PASS ────────→ ✅ 完成\n```\n\n### 流程说明\n\n1. **用户输入需求** → 系统接收需求文本\n2. **Coder Agent** → 分析需求,使用工具(读文件、编辑文件、执行命令、联网搜索)实现代码\n3. **Coder 输出报告** → 描述实现内容、修改了哪些文件、运行结果\n4. **Reviewer Agent** → 阅读需求和 Coder 报告,使用相同工具验证实现是否完整正确\n5. **审查判定**:\n - **PASS** ✅ → 工作流完成,输出最终结果\n - **FAIL** ❌ → 提取详细反馈,返回第 2 步进入下一轮迭代\n6. **达最大轮次** → 输出未完成状态和已有成果\n\n---\n\n## 🛠 工具详解\n\n### 核心工具\n\n| 工具 | 功能 | 安全约束 |\n|------|------|----------|\n| `read_file` | 读取文件内容(支持行偏移/行数限制) | 仅限工作区目录 |\n| `edit_file` | 精确字符串替换编辑文件 | 仅限工作区目录,必须唯一匹配 |\n| `bash_exec` | 执行 Shell 命令 | **双层安全防护** |\n\n### 联网工具\n\n| 工具 | 功能 | 说明 |\n|------|------|------|\n| `web_search` | Bing 搜索引擎搜索(HTML 解析) | 本地访问和解析 |\n| `web_fetch` | 网页内容提取(BeautifulSoup) | 自动去除导航/脚本/样式 |\n\n### BashGuard 安全防护\n\n所有通过 `bash_exec` 执行的命令均经过 **双层安全校验**:\n\n1. **规则层** — 静态正则黑名单拦截(`rm -rf /`、`mkfs`、`dd`、`shutdown` 等)\n2. **LLM 审查层** — 调用独立 LLM 语义判断命令意图(安全/不安全)\n\n> 环境变量 `BASH_GUARD_LLM_DISABLED=1` 可跳过 LLM 审查层(用于测试或无 API Key 环境)。\n\n---\n\n## 📝 会话管理\n\n- 每次运行自动生成唯一会话 ID(8 位 UUID)\n- 每轮对话的智能体输出自动保存到 `sessions/session_{id}.json`\n- 会话文件包含:原始需求、每轮 Coder 报告、Reviewer 判定、时间戳\n\n---\n\n## 🌐 会话查看网页\n\n项目内置一个纯前端会话查看网页,用于浏览和回顾历史对话记录,无需启动后端服务。\n\n### 特性\n\n- **纯前端实现** — 基于 File System Access API 选择会话文件夹,默认路径提示 `%username%/.becode`\n- **本地持久化** — 通过 IndexedDB 保存目录句柄,刷新页面后无需重选文件夹\n- **Markdown 渲染** — 智能体报告支持完整 Markdown 渲染(marked.js + DOMPurify)\n- **工具调用折叠** — 默认折叠显示工具图标 + 名称 + 参数预览,可批量展开/折叠\n- **资产本地化** — 字体(Google Fonts woff2)和 JS 库均已下载到本地,不依赖 CDN\n- **中文化界面** — UI 说明文字均为中文,专有名词(BeCode、coder/reviewer 等)保留英文\n\n### 使用方式\n\n1. 使用 **Chrome 或 Edge 86+** 打开 `web/index.html`(直接双击文件即可)\n2. 点击顶部路径栏,选择会话文件夹(默认推荐 `%username%/.becode/sessions`)\n3. 左侧侧栏显示会话列表,支持按 ID 或需求关键词搜索\n4. 点击会话项,右侧详情区展示完整对话时间线、Markdown 报告和工具调用\n\n> 设计风格:白色主题 + 浅蓝副色,编辑型技术日志风格(Fraunces 衬线展示字 + DM Sans 正文 + JetBrains Mono 代码)。\n\n---\n\n## 🎨 终端 UI\n\n基于 Rich 库构建的友好命令行界面:\n\n- 🚀 **启动面板** → 显示会话 ID、模型、最大轮次\n- 📋 **需求展示** → 黄色边框 Panel 显示用户需求\n- 🤖 **智能体思考** → 绿色/品红色提示当前智能体工作状态\n- 💻 **工具调用** → 精简 3 行 Panel(工具名 → 参数 → 结果摘要)\n- 📝 **智能体报告** → Markdown 渲染的完整报告\n- 🎉 **审查判定** → 通过/未通过的可视化反馈\n- 📊 **最终统计** → 状态、轮次、上下文长度统计\n\n---\n\n## 🔧 依赖项\n\n| 依赖 | 版本 | 用途 |\n|------|------|------|\n| `langchain` | ≥ 0.3.0 | 智能体框架 |\n| `langchain-community` | ≥ 0.3.0 | 社区工具/模型 |\n| `langchain-openai` | ≥ 0.3.0 | OpenAI 协议 LLM 客户端 |\n| `python-dotenv` | ≥ 1.0.0 | .env 环境变量加载 |\n| `pydantic` | ≥ 2.0.0 | 数据模型 |\n| `pydantic-settings` | ≥ 2.0.0 | 配置管理 |\n| `requests` | ≥ 2.31.0 | HTTP 请求 |\n| `beautifulsoup4` | ≥ 4.12.0 | HTML 解析 |\n| `rich` | ≥ 13.0.0 | 终端 UI 渲染 |\n\n---\n\n## 📄 示例会话\n\n```bash\n# 1. 运行系统\npython main.py \"创建一个 hello.py,打印 'Hello Agent Workflow'\"\n\n# 2. 系统输出(精简)\n🚀 启动 会话ID: a1b2c3d4 | 模型: gpt-4o | 最大轮次: 10\n\n📋 用户需求\n创建一个 hello.py,打印 'Hello Agent Workflow'\n\n━━━ 第 1/10 轮 ━━━\n\n🤖 Coder Agent 思考中...\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n📝 Coder Agent 报告\n已创建 hello.py,运行输出: Hello Agent Workflow\n\n🔍 Reviewer Agent 思考中...\n📖 文件读取 | path=hello.py | 文件行数: 1\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n🔍 Reviewer Agent 报告\n✅ 审查通过!代码正确输出 \"Hello Agent Workflow\"。\n\n🎉 审查通过\n📊 统计信息 | 状态: ✅ 成功 | 轮次: 1 | 会话ID: a1b2c3d4 | Coder上下文: 0.5K\n\n📁 会话文件: ./sessions/session_a1b2c3d4.json\n```\n\n---\n\n## 📜 许可证\n\n本项目仅供学习和参考使用。\n\n---\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request。建议先在 Issue 中讨论设计方案。\n"}, "2370eddeb61affb9e4844b4a9cd033e159ff5675": {"t": 1785767158.819992, "n": 5552, "h": "3d3b2a7d2beba28b", "c": "# 🧠 BeCode — 双智能体编码工作流\n\n> 基于 LangChain 1.3+ 架构的双智能体协作编码系统,实现 **Coder Agent(编码)→ Reviewer Agent(审查)→ 反馈循环** 的自反馈系统。致力于通过提示词工程,让普通模型的编码能力和工程完成度获得提升。\n\n*建议选用模型上下文长度为1M的模型。成本敏感者慎用。*\n\n\n---\n\n## 作者有话说\n- *既然fable5代表着模型进步,会消解之前所做的所有跟提示词相关的工作,那么反推过来,能否通过编排和提示词控制,让现有模型达到那种高度?*\n- *当前BeCode的开发,除去第一次构建使用deepseek v4 flash驱动的Claude Code完成编码,为其提供了初始的文件编辑工具和命令运行工具。后面的迭代均使用BeCode自己进行开发(deepseek v4 flash驱动)。*\n- *少即是多。*\n\n## ✨ 特性\n\n| 特性 | 说明 |\n|------|------|\n| **双智能体协作** | Coder Agent 负责需求实现,Reviewer Agent 负责代码审查,形成闭环 |\n| **多轮迭代反馈** | 支持最多 N 轮(默认 10 轮)的「编码 → 审查 → 修复」循环,直至审查通过 |\n| **文件/命令操作** | 提供 `read_file`、`edit_file`、`bash_exec` 三大核心工具,安全可控 |\n| **联网搜索能力** | 集成 `web_search`(Bing 搜索)和 `web_fetch`(网页抓取),可查阅文档/资料 |\n| **Bash 安全防护** | 双层安全校验(静态规则 + LLM 语义审查),防止误执行危险命令 |\n| **会话持久化** | 每轮对话自动保存到 JSON 文件,支持断点续查 |\n| **终端 UI** | 基于 Rich 库的精美命令行界面,实时展示工具调用和智能体报告 |\n| **OpenAI 协议兼容** | 支持 OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等任意 OpenAI 兼容 API |\n\n---\n\n## 📦 项目结构\n\n```\n├── main.py # 入口文件\n├── .env # 环境变量配置(API Key / Model / 最大轮次)\n├── requirements.txt # Python 依赖\n├── CLAUDE.md # 工作记忆(约束 / 偏好 / 项目事实)\n├── sessions/ # 会话持久化目录(JSON)\n│\n├── src/\n│ ├── __init__.py\n│ │\n│ ├── agents/\n│ │ ├── coder_agent.py # Coder Agent — 需求实现智能体\n│ │ └── reviewer_agent.py # Reviewer Agent — 代码审查智能体\n│ │\n│ ├── core/\n│ │ ├── config.py # 配置管理(从 .env 加载)\n│ │ ├── llm_client.py # LLM 客户端封装(OpenAI 协议)\n│ │ ├── orchestrator.py # 工作流编排器(主循环)\n│ │ └── session_store.py # 会话持久化存储\n│ │\n│ ├── tools/\n│ │ ├── tools.py # 核心工具(read_file / edit_file / bash_exec)\n│ │ ├── bash_guard.py # Bash 命令安全防护(规则 + LLM 双层校验)\n│ │ └── web_search.py # 联网搜索工具(web_search / web_fetch)\n│ │\n│ └── ui/\n│ ├── console.py # 终端 UI(AgentConsole — Rich 渲染)\n│ ├── callbacks.py # LangChain 回调处理器(实时展示工具调用)\n│ └── collapsible.py # 输出分段管理器\n│\n└── .trae/plans/ # 开发计划文档\n```\n\n---\n\n## 🚀 快速开始\n\n### 1. 安装依赖\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. 配置环境变量\n\n编辑 `.env` 文件:\n\n```ini\n# LLM 配置(OpenAI 协议兼容)\nOPENAI_API_BASE=https://api.deepseek.com\nOPENAI_API_KEY=sk-your-api-key-here\nOPENAI_MODEL=deepseek-v4-flash\n\n# 工作流配置\nMAX_ITERATIONS=10\nSESSION_DIR=./sessions\n\n# 日志级别(WARNING 及以上显示到控制台)\nLOG_LEVEL=WARNING\n```\n\n支持任意 OpenAI 兼容 API(OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等)。\n\n### 3. 运行\n\n```bash\n# 方式一:直接传入需求\npython main.py \"创建一个 Python 脚本,实现斐波那契数列\"\n\n# 方式二:从文件读取需求\npython main.py --file prompt.txt\n\n# 方式三:交互式输入\npython main.py --interactive\n```\n\n### 可选参数\n\n| 参数 | 说明 |\n|------|------|\n| `-m`, `--model` | 覆盖 .env 中的模型名称 |\n| `--max-iterations` | 覆盖最大迭代轮数 |\n\n---\n\n## 🧩 工作流架构\n\n```\n┌──────────────┐ ┌──────────────┐\n│ Coder Agent │ ──→ │ Reviewer │\n│ (实现需求) │ │ Agent (审查) │\n└──────┬───────┘ └──────┬───────┘\n │ │\n │ ◄── FAIL ──── │\n │ + 反馈 │\n │ │\n └──── PASS ────────→ ✅ 完成\n```\n\n### 流程说明\n\n1. **用户输入需求** → 系统接收需求文本\n2. **Coder Agent** → 分析需求,使用工具(读文件、编辑文件、执行命令、联网搜索)实现代码\n3. **Coder 输出报告** → 描述实现内容、修改了哪些文件、运行结果\n4. **Reviewer Agent** → 阅读需求和 Coder 报告,使用相同工具验证实现是否完整正确\n5. **审查判定**:\n - **PASS** ✅ → 工作流完成,输出最终结果\n - **FAIL** ❌ → 提取详细反馈,返回第 2 步进入下一轮迭代\n6. **达最大轮次** → 输出未完成状态和已有成果\n\n---\n\n## 🛠 工具详解\n\n### 核心工具\n\n| 工具 | 功能 | 安全约束 |\n|------|------|----------|\n| `read_file` | 读取文件内容(支持行偏移/行数限制) | 仅限工作区目录 |\n| `edit_file` | 精确字符串替换编辑文件 | 仅限工作区目录,必须唯一匹配 |\n| `bash_exec` | 执行 Shell 命令 | **双层安全防护** |\n\n### 联网工具\n\n| 工具 | 功能 | 说明 |\n|------|------|------|\n| `web_search` | Bing 搜索引擎搜索(HTML 解析) | 本地访问和解析 |\n| `web_fetch` | 网页内容提取(BeautifulSoup) | 自动去除导航/脚本/样式 |\n\n### BashGuard 安全防护\n\n所有通过 `bash_exec` 执行的命令均经过 **双层安全校验**:\n\n1. **规则层** — 静态正则黑名单拦截(`rm -rf /`、`mkfs`、`dd`、`shutdown` 等)\n2. **LLM 审查层** — 调用独立 LLM 语义判断命令意图(安全/不安全)\n\n> 环境变量 `BASH_GUARD_LLM_DISABLED=1` 可跳过 LLM 审查层(用于测试或无 API Key 环境)。\n\n---\n\n## 📝 会话管理\n\n- 每次运行自动生成唯一会话 ID(8 位 UUID)\n- 每轮对话的智能体输出自动保存到 `sessions/session_{id}.json`\n- 会话文件包含:原始需求、每轮 Coder 报告、Reviewer 判定、时间戳\n\n---\n\n## 🎨 终端 UI\n\n基于 Rich 库构建的友好命令行界面:\n\n- 🚀 **启动面板** → 显示会话 ID、模型、最大轮次\n- 📋 **需求展示** → 黄色边框 Panel 显示用户需求\n- 🤖 **智能体思考** → 绿色/品红色提示当前智能体工作状态\n- 💻 **工具调用** → 精简 3 行 Panel(工具名 → 参数 → 结果摘要)\n- 📝 **智能体报告** → Markdown 渲染的完整报告\n- 🎉 **审查判定** → 通过/未通过的可视化反馈\n- 📊 **最终统计** → 状态、轮次、上下文长度统计\n\n---\n\n## 🔧 依赖项\n\n| 依赖 | 版本 | 用途 |\n|------|------|------|\n| `langchain` | ≥ 0.3.0 | 智能体框架 |\n| `langchain-community` | ≥ 0.3.0 | 社区工具/模型 |\n| `langchain-openai` | ≥ 0.3.0 | OpenAI 协议 LLM 客户端 |\n| `python-dotenv` | ≥ 1.0.0 | .env 环境变量加载 |\n| `pydantic` | ≥ 2.0.0 | 数据模型 |\n| `pydantic-settings` | ≥ 2.0.0 | 配置管理 |\n| `requests` | ≥ 2.31.0 | HTTP 请求 |\n| `beautifulsoup4` | ≥ 4.12.0 | HTML 解析 |\n| `rich` | ≥ 13.0.0 | 终端 UI 渲染 |\n\n---\n\n## 📄 示例会话\n\n```bash\n# 1. 运行系统\npython main.py \"创建一个 hello.py,打印 'Hello Agent Workflow'\"\n\n# 2. 系统输出(精简)\n🚀 启动 会话ID: a1b2c3d4 | 模型: gpt-4o | 最大轮次: 10\n\n📋 用户需求\n创建一个 hello.py,打印 'Hello Agent Workflow'\n\n━━━ 第 1/10 轮 ━━━\n\n🤖 Coder Agent 思考中...\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n📝 Coder Agent 报告\n已创建 hello.py,运行输出: Hello Agent Workflow\n\n🔍 Reviewer Agent 思考中...\n📖 文件读取 | path=hello.py | 文件行数: 1\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n🔍 Reviewer Agent 报告\n✅ 审查通过!代码正确输出 \"Hello Agent Workflow\"。\n\n🎉 审查通过\n📊 统计信息 | 状态: ✅ 成功 | 轮次: 1 | 会话ID: a1b2c3d4 | Coder上下文: 0.5K\n\n📁 会话文件: ./sessions/session_a1b2c3d4.json\n```\n\n---\n\n## 📜 许可证\n\n本项目仅供学习和参考使用。\n\n---\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request。建议先在 Issue 中讨论设计方案。\n"}, "a8cb49eb329d1dbd3fb418262ee6a39e4a0af8f4": {"t": 1785767161.0457127, "n": 5522, "h": "07f401a3671f146a", "c": "# 🧠 BeCode — 双智能体编码工作流\n\n> 基于 LangChain 1.3+ 架构的双智能体协作编码系统,实现 **Coder Agent(编码)→ Reviewer Agent(审查)→ 反馈循环** 的自反馈系统。致力于通过提示词工程,让普通模型的编码能力和工程完成度获得提升。\n\n\n---\n\n## 作者有话说\n- *既然fable5代表着模型进步,会消解之前所做的所有跟提示词相关的工作,那么反推过来,能否通过编排和提示词控制,让现有模型达到那种高度?*\n- *当前BeCode的开发,除去第一次构建使用deepseek v4 flash驱动的Claude Code完成编码,为其提供了初始的文件编辑工具和命令运行工具。后面的迭代均使用BeCode自己进行开发(deepseek v4 flash驱动)。*\n- *少即是多。*\n\n## ✨ 特性\n\n| 特性 | 说明 |\n|------|------|\n| **双智能体协作** | Coder Agent 负责需求实现,Reviewer Agent 负责代码审查,形成闭环 |\n| **多轮迭代反馈** | 支持最多 N 轮(默认 10 轮)的「编码 → 审查 → 修复」循环,直至审查通过 |\n| **文件/命令操作** | 提供 `read_file`、`edit_file`、`bash_exec` 三大核心工具,安全可控 |\n| **联网搜索能力** | 集成 `web_search`(Bing 搜索)和 `web_fetch`(网页抓取),可查阅文档/资料 |\n| **Bash 安全防护** | 双层安全校验(静态规则 + LLM 语义审查),防止误执行危险命令 |\n| **会话持久化** | 每轮对话自动保存到 JSON 文件,支持断点续查 |\n| **终端 UI** | 基于 Rich 库的精美命令行界面,实时展示工具调用和智能体报告 |\n| **OpenAI 协议兼容** | 支持 OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等任意 OpenAI 兼容 API |\n\n---\n\n## 📦 项目结构\n\n```\n├── main.py # 入口文件\n├── .env # 环境变量配置(API Key / Model / 最大轮次)\n├── requirements.txt # Python 依赖\n├── CLAUDE.md # 工作记忆(约束 / 偏好 / 项目事实)\n├── sessions/ # 会话持久化目录(JSON)\n│\n├── src/\n│ ├── __init__.py\n│ │\n│ ├── agents/\n│ │ ├── coder_agent.py # Coder Agent — 需求实现智能体\n│ │ └── reviewer_agent.py # Reviewer Agent — 代码审查智能体\n│ │\n│ ├── core/\n│ │ ├── config.py # 配置管理(从 .env 加载)\n│ │ ├── llm_client.py # LLM 客户端封装(OpenAI 协议)\n│ │ ├── orchestrator.py # 工作流编排器(主循环)\n│ │ └── session_store.py # 会话持久化存储\n│ │\n│ ├── tools/\n│ │ ├── tools.py # 核心工具(read_file / edit_file / bash_exec)\n│ │ ├── bash_guard.py # Bash 命令安全防护(规则 + LLM 双层校验)\n│ │ └── web_search.py # 联网搜索工具(web_search / web_fetch)\n│ │\n│ └── ui/\n│ ├── console.py # 终端 UI(AgentConsole — Rich 渲染)\n│ ├── callbacks.py # LangChain 回调处理器(实时展示工具调用)\n│ └── collapsible.py # 输出分段管理器\n│\n└── .trae/plans/ # 开发计划文档\n```\n\n---\n\n## 🚀 快速开始\n\n### 1. 安装依赖\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. 配置环境变量\n\n编辑 `.env` 文件:\n\n```ini\n# LLM 配置(OpenAI 协议兼容)\nOPENAI_API_BASE=https://api.deepseek.com\nOPENAI_API_KEY=sk-your-api-key-here\nOPENAI_MODEL=deepseek-v4-flash\n\n# 工作流配置\nMAX_ITERATIONS=10\nSESSION_DIR=./sessions\n\n# 日志级别(WARNING 及以上显示到控制台)\nLOG_LEVEL=WARNING\n```\n\n支持任意 OpenAI 兼容 API(OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等)。\n\n### 3. 运行\n\n```bash\n# 方式一:直接传入需求\npython main.py \"创建一个 Python 脚本,实现斐波那契数列\"\n\n# 方式二:从文件读取需求\npython main.py --file prompt.txt\n\n# 方式三:交互式输入\npython main.py --interactive\n```\n\n### 可选参数\n\n| 参数 | 说明 |\n|------|------|\n| `-m`, `--model` | 覆盖 .env 中的模型名称 |\n| `--max-iterations` | 覆盖最大迭代轮数 |\n\n---\n\n## 🧩 工作流架构\n\n```\n┌──────────────┐ ┌──────────────┐\n│ Coder Agent │ ──→ │ Reviewer │\n│ (实现需求) │ │ Agent (审查) │\n└──────┬───────┘ └──────┬───────┘\n │ │\n │ ◄── FAIL ──── │\n │ + 反馈 │\n │ │\n └──── PASS ────────→ ✅ 完成\n```\n\n### 流程说明\n\n1. **用户输入需求** → 系统接收需求文本\n2. **Coder Agent** → 分析需求,使用工具(读文件、编辑文件、执行命令、联网搜索)实现代码\n3. **Coder 输出报告** → 描述实现内容、修改了哪些文件、运行结果\n4. **Reviewer Agent** → 阅读需求和 Coder 报告,使用相同工具验证实现是否完整正确\n5. **审查判定**:\n - **PASS** ✅ → 工作流完成,输出最终结果\n - **FAIL** ❌ → 提取详细反馈,返回第 2 步进入下一轮迭代\n6. **达最大轮次** → 输出未完成状态和已有成果\n\n---\n\n## 🛠 工具详解\n\n### 核心工具\n\n| 工具 | 功能 | 安全约束 |\n|------|------|----------|\n| `read_file` | 读取文件内容(支持行偏移/行数限制) | 仅限工作区目录 |\n| `edit_file` | 精确字符串替换编辑文件 | 仅限工作区目录,必须唯一匹配 |\n| `bash_exec` | 执行 Shell 命令 | **双层安全防护** |\n\n### 联网工具\n\n| 工具 | 功能 | 说明 |\n|------|------|------|\n| `web_search` | Bing 搜索引擎搜索(HTML 解析) | 本地访问和解析 |\n| `web_fetch` | 网页内容提取(BeautifulSoup) | 自动去除导航/脚本/样式 |\n\n### BashGuard 安全防护\n\n所有通过 `bash_exec` 执行的命令均经过 **双层安全校验**:\n\n1. **规则层** — 静态正则黑名单拦截(`rm -rf /`、`mkfs`、`dd`、`shutdown` 等)\n2. **LLM 审查层** — 调用独立 LLM 语义判断命令意图(安全/不安全)\n\n> 环境变量 `BASH_GUARD_LLM_DISABLED=1` 可跳过 LLM 审查层(用于测试或无 API Key 环境)。\n\n---\n\n## 📝 会话管理\n\n- 每次运行自动生成唯一会话 ID(8 位 UUID)\n- 每轮对话的智能体输出自动保存到 `sessions/session_{id}.json`\n- 会话文件包含:原始需求、每轮 Coder 报告、Reviewer 判定、时间戳\n\n---\n\n## 🎨 终端 UI\n\n基于 Rich 库构建的友好命令行界面:\n\n- 🚀 **启动面板** → 显示会话 ID、模型、最大轮次\n- 📋 **需求展示** → 黄色边框 Panel 显示用户需求\n- 🤖 **智能体思考** → 绿色/品红色提示当前智能体工作状态\n- 💻 **工具调用** → 精简 3 行 Panel(工具名 → 参数 → 结果摘要)\n- 📝 **智能体报告** → Markdown 渲染的完整报告\n- 🎉 **审查判定** → 通过/未通过的可视化反馈\n- 📊 **最终统计** → 状态、轮次、上下文长度统计\n\n---\n\n## 🔧 依赖项\n\n| 依赖 | 版本 | 用途 |\n|------|------|------|\n| `langchain` | ≥ 0.3.0 | 智能体框架 |\n| `langchain-community` | ≥ 0.3.0 | 社区工具/模型 |\n| `langchain-openai` | ≥ 0.3.0 | OpenAI 协议 LLM 客户端 |\n| `python-dotenv` | ≥ 1.0.0 | .env 环境变量加载 |\n| `pydantic` | ≥ 2.0.0 | 数据模型 |\n| `pydantic-settings` | ≥ 2.0.0 | 配置管理 |\n| `requests` | ≥ 2.31.0 | HTTP 请求 |\n| `beautifulsoup4` | ≥ 4.12.0 | HTML 解析 |\n| `rich` | ≥ 13.0.0 | 终端 UI 渲染 |\n\n---\n\n## 📄 示例会话\n\n```bash\n# 1. 运行系统\npython main.py \"创建一个 hello.py,打印 'Hello Agent Workflow'\"\n\n# 2. 系统输出(精简)\n🚀 启动 会话ID: a1b2c3d4 | 模型: gpt-4o | 最大轮次: 10\n\n📋 用户需求\n创建一个 hello.py,打印 'Hello Agent Workflow'\n\n━━━ 第 1/10 轮 ━━━\n\n🤖 Coder Agent 思考中...\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n📝 Coder Agent 报告\n已创建 hello.py,运行输出: Hello Agent Workflow\n\n🔍 Reviewer Agent 思考中...\n📖 文件读取 | path=hello.py | 文件行数: 1\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n🔍 Reviewer Agent 报告\n✅ 审查通过!代码正确输出 \"Hello Agent Workflow\"。\n\n🎉 审查通过\n📊 统计信息 | 状态: ✅ 成功 | 轮次: 1 | 会话ID: a1b2c3d4 | Coder上下文: 0.5K\n\n📁 会话文件: ./sessions/session_a1b2c3d4.json\n```\n\n---\n\n## 📜 许可证\n\n本项目仅供学习和参考使用。\n\n---\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request。建议先在 Issue 中讨论设计方案。\n"}, "7b4ab1ede05be198ce11aa302bc558af2ae47705": {"t": 1785767162.5634315, "n": 5501, "h": "3f19590e0ab4db43", "c": "# 🧠 BeCode — 双智能体编码工作流\n\n> 基于 LangChain 1.3+ 架构的双智能体协作编码系统,实现 **Coder Agent(编码)→ Reviewer Agent(审查)→ 反馈循环** 的自反馈系统。致力于通过提示词工程,让普通模型的编码能力和工程完成度获得提升。\n\n\n---\n\n## 作者有话说\n- *既然fable5代表着模型进步,会消解之前所做的所有跟提示词相关的工作,那么反推过来,能否通过编排和提示词控制,让现有模型达到那种高度?*\n- *当前BeCode的开发,除去第一次构建使用deepseek v4 flash驱动的Claude Code完成编码,为其提供了初始的文件编辑工具和命令运行工具。后面的迭代均使用BeCode自己进行开发。*\n- *少即是多。*\n\n## ✨ 特性\n\n| 特性 | 说明 |\n|------|------|\n| **双智能体协作** | Coder Agent 负责需求实现,Reviewer Agent 负责代码审查,形成闭环 |\n| **多轮迭代反馈** | 支持最多 N 轮(默认 10 轮)的「编码 → 审查 → 修复」循环,直至审查通过 |\n| **文件/命令操作** | 提供 `read_file`、`edit_file`、`bash_exec` 三大核心工具,安全可控 |\n| **联网搜索能力** | 集成 `web_search`(Bing 搜索)和 `web_fetch`(网页抓取),可查阅文档/资料 |\n| **Bash 安全防护** | 双层安全校验(静态规则 + LLM 语义审查),防止误执行危险命令 |\n| **会话持久化** | 每轮对话自动保存到 JSON 文件,支持断点续查 |\n| **终端 UI** | 基于 Rich 库的精美命令行界面,实时展示工具调用和智能体报告 |\n| **OpenAI 协议兼容** | 支持 OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等任意 OpenAI 兼容 API |\n\n---\n\n## 📦 项目结构\n\n```\n├── main.py # 入口文件\n├── .env # 环境变量配置(API Key / Model / 最大轮次)\n├── requirements.txt # Python 依赖\n├── CLAUDE.md # 工作记忆(约束 / 偏好 / 项目事实)\n├── sessions/ # 会话持久化目录(JSON)\n│\n├── src/\n│ ├── __init__.py\n│ │\n│ ├── agents/\n│ │ ├── coder_agent.py # Coder Agent — 需求实现智能体\n│ │ └── reviewer_agent.py # Reviewer Agent — 代码审查智能体\n│ │\n│ ├── core/\n│ │ ├── config.py # 配置管理(从 .env 加载)\n│ │ ├── llm_client.py # LLM 客户端封装(OpenAI 协议)\n│ │ ├── orchestrator.py # 工作流编排器(主循环)\n│ │ └── session_store.py # 会话持久化存储\n│ │\n│ ├── tools/\n│ │ ├── tools.py # 核心工具(read_file / edit_file / bash_exec)\n│ │ ├── bash_guard.py # Bash 命令安全防护(规则 + LLM 双层校验)\n│ │ └── web_search.py # 联网搜索工具(web_search / web_fetch)\n│ │\n│ └── ui/\n│ ├── console.py # 终端 UI(AgentConsole — Rich 渲染)\n│ ├── callbacks.py # LangChain 回调处理器(实时展示工具调用)\n│ └── collapsible.py # 输出分段管理器\n│\n└── .trae/plans/ # 开发计划文档\n```\n\n---\n\n## 🚀 快速开始\n\n### 1. 安装依赖\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. 配置环境变量\n\n编辑 `.env` 文件:\n\n```ini\n# LLM 配置(OpenAI 协议兼容)\nOPENAI_API_BASE=https://api.deepseek.com\nOPENAI_API_KEY=sk-your-api-key-here\nOPENAI_MODEL=deepseek-v4-flash\n\n# 工作流配置\nMAX_ITERATIONS=10\nSESSION_DIR=./sessions\n\n# 日志级别(WARNING 及以上显示到控制台)\nLOG_LEVEL=WARNING\n```\n\n支持任意 OpenAI 兼容 API(OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等)。\n\n### 3. 运行\n\n```bash\n# 方式一:直接传入需求\npython main.py \"创建一个 Python 脚本,实现斐波那契数列\"\n\n# 方式二:从文件读取需求\npython main.py --file prompt.txt\n\n# 方式三:交互式输入\npython main.py --interactive\n```\n\n### 可选参数\n\n| 参数 | 说明 |\n|------|------|\n| `-m`, `--model` | 覆盖 .env 中的模型名称 |\n| `--max-iterations` | 覆盖最大迭代轮数 |\n\n---\n\n## 🧩 工作流架构\n\n```\n┌──────────────┐ ┌──────────────┐\n│ Coder Agent │ ──→ │ Reviewer │\n│ (实现需求) │ │ Agent (审查) │\n└──────┬───────┘ └──────┬───────┘\n │ │\n │ ◄── FAIL ──── │\n │ + 反馈 │\n │ │\n └──── PASS ────────→ ✅ 完成\n```\n\n### 流程说明\n\n1. **用户输入需求** → 系统接收需求文本\n2. **Coder Agent** → 分析需求,使用工具(读文件、编辑文件、执行命令、联网搜索)实现代码\n3. **Coder 输出报告** → 描述实现内容、修改了哪些文件、运行结果\n4. **Reviewer Agent** → 阅读需求和 Coder 报告,使用相同工具验证实现是否完整正确\n5. **审查判定**:\n - **PASS** ✅ → 工作流完成,输出最终结果\n - **FAIL** ❌ → 提取详细反馈,返回第 2 步进入下一轮迭代\n6. **达最大轮次** → 输出未完成状态和已有成果\n\n---\n\n## 🛠 工具详解\n\n### 核心工具\n\n| 工具 | 功能 | 安全约束 |\n|------|------|----------|\n| `read_file` | 读取文件内容(支持行偏移/行数限制) | 仅限工作区目录 |\n| `edit_file` | 精确字符串替换编辑文件 | 仅限工作区目录,必须唯一匹配 |\n| `bash_exec` | 执行 Shell 命令 | **双层安全防护** |\n\n### 联网工具\n\n| 工具 | 功能 | 说明 |\n|------|------|------|\n| `web_search` | Bing 搜索引擎搜索(HTML 解析) | 本地访问和解析 |\n| `web_fetch` | 网页内容提取(BeautifulSoup) | 自动去除导航/脚本/样式 |\n\n### BashGuard 安全防护\n\n所有通过 `bash_exec` 执行的命令均经过 **双层安全校验**:\n\n1. **规则层** — 静态正则黑名单拦截(`rm -rf /`、`mkfs`、`dd`、`shutdown` 等)\n2. **LLM 审查层** — 调用独立 LLM 语义判断命令意图(安全/不安全)\n\n> 环境变量 `BASH_GUARD_LLM_DISABLED=1` 可跳过 LLM 审查层(用于测试或无 API Key 环境)。\n\n---\n\n## 📝 会话管理\n\n- 每次运行自动生成唯一会话 ID(8 位 UUID)\n- 每轮对话的智能体输出自动保存到 `sessions/session_{id}.json`\n- 会话文件包含:原始需求、每轮 Coder 报告、Reviewer 判定、时间戳\n\n---\n\n## 🎨 终端 UI\n\n基于 Rich 库构建的友好命令行界面:\n\n- 🚀 **启动面板** → 显示会话 ID、模型、最大轮次\n- 📋 **需求展示** → 黄色边框 Panel 显示用户需求\n- 🤖 **智能体思考** → 绿色/品红色提示当前智能体工作状态\n- 💻 **工具调用** → 精简 3 行 Panel(工具名 → 参数 → 结果摘要)\n- 📝 **智能体报告** → Markdown 渲染的完整报告\n- 🎉 **审查判定** → 通过/未通过的可视化反馈\n- 📊 **最终统计** → 状态、轮次、上下文长度统计\n\n---\n\n## 🔧 依赖项\n\n| 依赖 | 版本 | 用途 |\n|------|------|------|\n| `langchain` | ≥ 0.3.0 | 智能体框架 |\n| `langchain-community` | ≥ 0.3.0 | 社区工具/模型 |\n| `langchain-openai` | ≥ 0.3.0 | OpenAI 协议 LLM 客户端 |\n| `python-dotenv` | ≥ 1.0.0 | .env 环境变量加载 |\n| `pydantic` | ≥ 2.0.0 | 数据模型 |\n| `pydantic-settings` | ≥ 2.0.0 | 配置管理 |\n| `requests` | ≥ 2.31.0 | HTTP 请求 |\n| `beautifulsoup4` | ≥ 4.12.0 | HTML 解析 |\n| `rich` | ≥ 13.0.0 | 终端 UI 渲染 |\n\n---\n\n## 📄 示例会话\n\n```bash\n# 1. 运行系统\npython main.py \"创建一个 hello.py,打印 'Hello Agent Workflow'\"\n\n# 2. 系统输出(精简)\n🚀 启动 会话ID: a1b2c3d4 | 模型: gpt-4o | 最大轮次: 10\n\n📋 用户需求\n创建一个 hello.py,打印 'Hello Agent Workflow'\n\n━━━ 第 1/10 轮 ━━━\n\n🤖 Coder Agent 思考中...\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n📝 Coder Agent 报告\n已创建 hello.py,运行输出: Hello Agent Workflow\n\n🔍 Reviewer Agent 思考中...\n📖 文件读取 | path=hello.py | 文件行数: 1\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n🔍 Reviewer Agent 报告\n✅ 审查通过!代码正确输出 \"Hello Agent Workflow\"。\n\n🎉 审查通过\n📊 统计信息 | 状态: ✅ 成功 | 轮次: 1 | 会话ID: a1b2c3d4 | Coder上下文: 0.5K\n\n📁 会话文件: ./sessions/session_a1b2c3d4.json\n```\n\n---\n\n## 📜 许可证\n\n本项目仅供学习和参考使用。\n\n---\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request。建议先在 Issue 中讨论设计方案。\n"}, "15daec5656fdbc116b292352fad6223b4b8d80f8": {"t": 1785767164.3870358, "n": 5318, "h": "83a3f7d642f0de6d", "c": "# 🧠 Agent Workflow System — 双智能体编码工作流\n\n> 基于 LangChain 1.3+ / LangGraph 架构的双智能体协作编码系统,实现 **Coder Agent(编码)→ Reviewer Agent(审查)→ 反馈循环** 的自动化软件开发流水线。\n\n---\n\n## ✨ 特性\n\n| 特性 | 说明 |\n|------|------|\n| **双智能体协作** | Coder Agent 负责需求实现,Reviewer Agent 负责代码审查,形成闭环 |\n| **多轮迭代反馈** | 支持最多 N 轮(默认 10 轮)的「编码 → 审查 → 修复」循环,直至审查通过 |\n| **文件/命令操作** | 提供 `read_file`、`edit_file`、`bash_exec` 三大核心工具,安全可控 |\n| **联网搜索能力** | 集成 `web_search`(Bing 搜索)和 `web_fetch`(网页抓取),可查阅文档/资料 |\n| **Bash 安全防护** | 双层安全校验(静态规则 + LLM 语义审查),防止误执行危险命令 |\n| **会话持久化** | 每轮对话自动保存到 JSON 文件,支持断点续查 |\n| **终端 UI** | 基于 Rich 库的精美命令行界面,实时展示工具调用和智能体报告 |\n| **OpenAI 协议兼容** | 支持 OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等任意 OpenAI 兼容 API |\n\n---\n\n## 📦 项目结构\n\n```\n├── main.py # 入口文件\n├── .env # 环境变量配置(API Key / Model / 最大轮次)\n├── requirements.txt # Python 依赖\n├── CLAUDE.md # 工作记忆(约束 / 偏好 / 项目事实)\n├── sessions/ # 会话持久化目录(JSON)\n│\n├── src/\n│ ├── __init__.py\n│ │\n│ ├── agents/\n│ │ ├── coder_agent.py # Coder Agent — 需求实现智能体\n│ │ └── reviewer_agent.py # Reviewer Agent — 代码审查智能体\n│ │\n│ ├── core/\n│ │ ├── config.py # 配置管理(从 .env 加载)\n│ │ ├── llm_client.py # LLM 客户端封装(OpenAI 协议)\n│ │ ├── orchestrator.py # 工作流编排器(主循环)\n│ │ └── session_store.py # 会话持久化存储\n│ │\n│ ├── tools/\n│ │ ├── tools.py # 核心工具(read_file / edit_file / bash_exec)\n│ │ ├── bash_guard.py # Bash 命令安全防护(规则 + LLM 双层校验)\n│ │ └── web_search.py # 联网搜索工具(web_search / web_fetch)\n│ │\n│ └── ui/\n│ ├── console.py # 终端 UI(AgentConsole — Rich 渲染)\n│ ├── callbacks.py # LangChain 回调处理器(实时展示工具调用)\n│ └── collapsible.py # 输出分段管理器\n│\n└── .trae/plans/ # 开发计划文档\n```\n\n---\n\n## 🚀 快速开始\n\n### 1. 安装依赖\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. 配置环境变量\n\n编辑 `.env` 文件:\n\n```ini\n# LLM 配置(OpenAI 协议兼容)\nOPENAI_API_BASE=https://api.deepseek.com\nOPENAI_API_KEY=sk-your-api-key-here\nOPENAI_MODEL=deepseek-v4-flash\n\n# 工作流配置\nMAX_ITERATIONS=10\nSESSION_DIR=./sessions\n\n# 日志级别(WARNING 及以上显示到控制台)\nLOG_LEVEL=WARNING\n```\n\n支持任意 OpenAI 兼容 API(OpenAI、DeepSeek、vLLM、OneAPI、Ollama 等)。\n\n### 3. 运行\n\n```bash\n# 方式一:直接传入需求\npython main.py \"创建一个 Python 脚本,实现斐波那契数列\"\n\n# 方式二:从文件读取需求\npython main.py --file requirement.txt\n\n# 方式三:交互式输入\npython main.py --interactive\n```\n\n### 可选参数\n\n| 参数 | 说明 |\n|------|------|\n| `-m`, `--model` | 覆盖 .env 中的模型名称 |\n| `--max-iterations` | 覆盖最大迭代轮数 |\n\n---\n\n## 🧩 工作流架构\n\n```\n┌──────────────┐ ┌──────────────┐\n│ Coder Agent │ ──→ │ Reviewer │\n│ (实现需求) │ │ Agent (审查) │\n└──────┬───────┘ └──────┬───────┘\n │ │\n │ ◄── FAIL ──── │\n │ + 反馈 │\n │ │\n └──── PASS ────────→ ✅ 完成\n```\n\n### 流程说明\n\n1. **用户输入需求** → 系统接收需求文本\n2. **Coder Agent** → 分析需求,使用工具(读文件、编辑文件、执行命令、联网搜索)实现代码\n3. **Coder 输出报告** → 描述实现内容、修改了哪些文件、运行结果\n4. **Reviewer Agent** → 阅读需求和 Coder 报告,使用相同工具验证实现是否完整正确\n5. **审查判定**:\n - **PASS** ✅ → 工作流完成,输出最终结果\n - **FAIL** ❌ → 提取详细反馈,返回第 2 步进入下一轮迭代\n6. **达最大轮次** → 输出未完成状态和已有成果\n\n---\n\n## 🛠 工具详解\n\n### 核心工具\n\n| 工具 | 功能 | 安全约束 |\n|------|------|----------|\n| `read_file` | 读取文件内容(支持行偏移/行数限制) | 仅限工作区目录 |\n| `edit_file` | 精确字符串替换编辑文件 | 仅限工作区目录,必须唯一匹配 |\n| `bash_exec` | 执行 Shell 命令 | **双层安全防护** |\n\n### 联网工具\n\n| 工具 | 功能 | 说明 |\n|------|------|------|\n| `web_search` | Bing 搜索引擎搜索(HTML 解析) | 无需 API Key |\n| `web_fetch` | 网页内容提取(BeautifulSoup) | 自动去除导航/脚本/样式 |\n\n### BashGuard 安全防护\n\n所有通过 `bash_exec` 执行的命令均经过 **双层安全校验**:\n\n1. **规则层** — 静态正则黑名单拦截(`rm -rf /`、`mkfs`、`dd`、`shutdown` 等)\n2. **LLM 审查层** — 调用独立 LLM 语义判断命令意图(安全/不安全)\n\n> 环境变量 `BASH_GUARD_LLM_DISABLED=1` 可跳过 LLM 审查层(用于测试或无 API Key 环境)。\n\n---\n\n## 📝 会话管理\n\n- 每次运行自动生成唯一会话 ID(8 位 UUID)\n- 每轮对话的智能体输出自动保存到 `sessions/session_{id}.json`\n- 会话文件包含:原始需求、每轮 Coder 报告、Reviewer 判定、时间戳\n\n---\n\n## 🎨 终端 UI\n\n基于 Rich 库构建的友好命令行界面:\n\n- 🚀 **启动面板** → 显示会话 ID、模型、最大轮次\n- 📋 **需求展示** → 黄色边框 Panel 显示用户需求\n- 🤖 **智能体思考** → 绿色/品红色提示当前智能体工作状态\n- 💻 **工具调用** → 精简 3 行 Panel(工具名 → 参数 → 结果摘要)\n- 📝 **智能体报告** → Markdown 渲染的完整报告\n- 🎉 **审查判定** → 通过/未通过的可视化反馈\n- 📊 **最终统计** → 状态、轮次、上下文长度统计\n\n---\n\n## 🔧 依赖项\n\n| 依赖 | 版本 | 用途 |\n|------|------|------|\n| `langchain` | ≥ 0.3.0 | LangGraph 智能体框架 |\n| `langchain-community` | ≥ 0.3.0 | 社区工具/模型 |\n| `langchain-openai` | ≥ 0.3.0 | OpenAI 协议 LLM 客户端 |\n| `python-dotenv` | ≥ 1.0.0 | .env 环境变量加载 |\n| `pydantic` | ≥ 2.0.0 | 数据模型 |\n| `pydantic-settings` | ≥ 2.0.0 | 配置管理 |\n| `requests` | ≥ 2.31.0 | HTTP 请求 |\n| `beautifulsoup4` | ≥ 4.12.0 | HTML 解析 |\n| `rich` | ≥ 13.0.0 | 终端 UI 渲染 |\n\n---\n\n## 📄 示例会话\n\n```bash\n# 1. 运行系统\npython main.py \"创建一个 hello.py,打印 'Hello Agent Workflow'\"\n\n# 2. 系统输出(精简)\n🚀 启动 会话ID: a1b2c3d4 | 模型: gpt-4o | 最大轮次: 10\n\n📋 用户需求\n创建一个 hello.py,打印 'Hello Agent Workflow'\n\n━━━ 第 1/10 轮 ━━━\n\n🤖 Coder Agent 思考中...\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n📝 Coder Agent 报告\n已创建 hello.py,运行输出: Hello Agent Workflow\n\n🔍 Reviewer Agent 思考中...\n📖 文件读取 | path=hello.py | 文件行数: 1\n💻 命令调用 | command=python hello.py | exit code: 0\\nHello Agent Workflow\n🔍 Reviewer Agent 报告\n✅ 审查通过!代码正确输出 \"Hello Agent Workflow\"。\n\n🎉 审查通过\n📊 统计信息 | 状态: ✅ 成功 | 轮次: 1 | 会话ID: a1b2c3d4 | Coder上下文: 0.5K\n\n📁 会话文件: ./sessions/session_a1b2c3d4.json\n```\n\n---\n\n## 📜 许可证\n\n本项目仅供学习和参考使用。\n\n---\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request。建议先在 Issue 中讨论设计方案。\n"}}}} |