Thrilok28021996/multi-agent-llm-company-system

GitHub: Thrilok28021996/multi-agent-llm-company-system

该系统通过九个专业化AI智能体模拟层级化的软件公司组织,实现从问题发现到代码交付的自主协作与质量治理。

Stars: 0 | Forks: 0

# 多智能体 LLM 公司系统 **一个由角色专业化智能体组成的层级化自治 AI 组织,能够独立发现问题、委派执行、辩论解决方案、执行质量否决,并综合出最终结果 —— 具备持久化记忆和基于 RAG 的上下文。** [![Python](https://img.shields.io/badge/Python-3.10%2B-blue?logo=python&logoColor=white)](https://python.org) [![LM Studio](https://img.shields.io/badge/LM%20Studio-local%20LLMs-orange)](https://lmstudio.ai) [![Ollama](https://img.shields.io/badge/Ollama-local%20LLMs-black)](https://ollama.ai) [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE) [![Agents](https://img.shields.io/badge/Agents-9%20specialists-purple)](agents/) ## 组织架构 九名专家。一张组织架构图。CEO 拥有最终批准权 —— 基于 Developer 的置信度分数以及 CTO/QA/Security 审查链,拒绝未通过有效性或范围检查的提交。 ## 为什么传统的 LLM Agent 会失效 大多数单智能体和简单的多智能体系统都存在相同的结构性缺陷: | 失效模式 | 根本原因 | |---|---| | 推理浅薄 | 缺乏专家上下文 —— 一个模型扮演所有角色 | | 无内部验证 | 产出在交付前从未受到质疑 | | 任务拆解不佳 | 没有组织结构;工作在单个 prompt 中被串行化 | | 幻觉蔓延 | 缺乏交叉验证或可信度评分 | | 缺乏治理 | 任何人都可以批准任何事 —— 没有拒绝关卡 | | 没有记忆 | 每次运行都从零开始 | **Multi Agent LLM Company System** 直接解决了每一个问题: - **角色分离** —— 九个拥有专属系统 prompt、temperature 和模型分配的智能体 - **内部批判** —— Critic Ensemble 和 DebateOrchestrator 在产出交到 CEO 手中之前对其进行质疑 - **迭代否决** —— CEO 附带编号的修复清单拒绝工作;Developer 重新运行直到获得批准 - **持久化记忆** —— RAG 存储、会话记忆和跨会话学习在运行之间得以保留 - **自治治理** —— CEO 批准标准由代码定义且基于证据,而非凭主观感觉 ## 核心架构 ### 组织层级 | 层级 | Agent | 决策权 | |---|---|---| | Executive | CEO | 最终批准 / 拒绝 / 升级 | | Engineering | CTO | 技术栈、架构、工程委派 | | Engineering | Developer | 落地实现;每次提交都会输出 `CONFIDENCE: X.X` | | Engineering | QA Engineer | 测试套件、覆盖率门禁 | | Engineering | Security Engineer | CVSS 审计,在 CEO 查看工作前强制要求修补 | | Engineering | DevOps Engineer | Docker、CI/CD、部署清单 | | Product | Product Manager | 用户故事、sprint 计划、验收标准 | | Research | Researcher | 网页抓取、可信度评分、交叉验证 | | Analytics | Data Analyst | Token 使用量、延迟、成本、迭代指标 | ### 子系统图 | 子系统 | 模块 | 职责 | |---|---|---| | 工作流引擎 | `orchestrator/workflow.py` | 跨 13 个定义阶段的阶段门控执行图 | | Plan 模式 | `orchestrator/plan_mode.py` | 带有人工审批步骤的 Claude Code 风格规划 | | 消息总线 | `orchestrator/message_bus.py` | 智能体间基于优先级队列的异步发布/订阅 | | 升级机制 | `orchestrator/escalation.py` | 自动重试和降级;第 4 轮后的系统性故障路由 | | 结构化辩论 | `collaboration/debate.py` | 带综合总结的 N 轮论证;用于架构决策 | | Agent 会议 | `collaboration/meeting.py` | 头脑风暴、决策、回顾复盘、魔鬼代言人、一对一类型 | | Critic 集成 | `collaboration/critic_ensemble.py` | 多个智能体独立批判同一个产出物 | | 思考引擎 | `agents/thinking.py` | 可配置的推理深度:MINIMAL → STANDARD → DEEP → EXHAUSTIVE | | Tree of Thoughts | `agents/tree_of_thoughts.py` | 生成 N 个解决方案分支,对每一个进行评分,执行最优方案 | | HyperTree 规划器 | `agents/hypertree_planner.py` | 跨并行子树的层级化任务分解 | | ReAct 循环 | `agents/react_loop.py` | 针对使用工具的智能体的 推理 → 行动 → 观察 | | Agent 工具 | `agents/agent_tools_mixin.py` | 13 个 Claude Code 风格工具:读取/写入/grep/bash/LSP/git/格式化/测试 | | 个性特征 | `agents/personality.py` | 每个智能体的个性特征 + 跨运行的职业生涯发展 | | RAG 存储 | `memory/rag_store.py` | 本地 TF-IDF 检索;无需 GPU;复用过去运行的模式 | | 问题发现 | `research/problem_discoverer.py` | 自动从网页内容生成任务;无需手动 prompt | ## 关键工程能力 | 能力 | 描述 | |---|---| | **层级化任务委派** | CEO 通过 CTO/PM 层级路由工作;每一层负责其专属领域 | | **自治问题发现** | 网页抓取 + 可信度评分,无需用户输入即可生成问题陈述 | | **Debate Orchestrator** | 智能体间的结构化 N 轮辩论;产出 CONSENSUS / UNRESOLVED / FINAL_RECOMMENDATION | | **CEO 质量否决循环** | CEO 拒绝低置信度或不完整的工作并附上编号的修复清单;路由回 Developer | | **Tree of Thoughts + ReAct** | Developer 生成 N 个多样的实现分支,对其进行评分,并执行最优方案 | | **Developer 置信度评分** | 每一次 Developer 提交都以 `CONFIDENCE: X.X` 结尾;CEO 的阈值要求为 ≥ 0.85 | | **持久化会话记忆** | RAG 存储 + 会话状态在运行之间保留;过去的解决方案为未来的任务提供参考 | | **升级系统** | 第 4 轮被拒绝后,触发系统性故障审查 —— CTO 重新设计路径或 PM 重新调整范围 | | **Token 使用治理** | 每次运行追踪每个智能体的 Token 使用量、延迟和迭代次数 | | **自适应思维链** | 复杂任务触发完整 `think()` + 结构化 CoT;简单任务跳过额外的 LLM 调用 | | **可信度评分** | Researcher 对每个信息源进行 0–1 的评分;在传递给 CTO 前进行主张的交叉验证 | | **组织级记忆** | 公司文化、信任评分、招聘标准、sprint 历史记录跨会话追踪 | | **双后端支持** | 运行于 LM Studio 或 Ollama;通过一个环境变量切换;模型 ID 根据后端自动解析 | | **并发控制** | 异步 + 同步信号量防止 LM Studio 的队列峰值;可通过 `LLM_MAX_CONCURRENCY` 配置 | ## 技术栈 | 类别 | 技术 | |---|---| | **LLM 后端** | [LM Studio](https://lmstudio.ai) 或 [Ollama](https://ollama.ai) —— 完全本地化,无需 API 密钥 | | **编排** | 自定义 Python 阶段门控工作流引擎(13 个阶段) | | **推理** | 自适应 CoT · Tree of Thoughts · HyperTree 规划器 · ReAct 循环 · 第一性原理思考 | | **协作** | 结构化辩论 · Agent 会议 · Critic 集成 · MoA 聚合器 | | **记忆** | 本地 TF-IDF RAG · 会话记忆 · 共享上下文 · 跨会话学习 | | **网络研究** | BeautifulSoup4 · 异步抓取器 · 可信度评分器 · 交叉验证器 | | **工具** | LSP 集成 · git 工具 · 代码格式化工具 · 测试运行器(13 个工具的 mixin) | | **日志** | 结构化 JSON 日志 · 使用量追踪器 · 进度追踪器 · 健康检查器 | | **UI** | Rich 终端 · 流式输出 · 交互式对话模式 | ## 快速开始 **前提要求:** Python 3.10+,[LM Studio](https://lmstudio.ai) 或 [Ollama](https://ollama.ai) ``` # 1. Clone git clone https://github.com/Thrilok28021996/multi-agent-llm-company-system.git cd multi-agent-llm-company-system # 2. 安装依赖项 pip install -r requirements.txt # 可选:作为 CLI command 安装 pip install -e . # 然后使用:multi-agent-llm-company-system "Build a CLI tool..." # 3. Configure cp .env.example .env # 编辑 .env — 为你的设置配置 LLM_BACKEND 和 model IDs # 4. 使用 problem statement 运行 python main.py "Build a CLI tool to monitor system resources" ``` 输出结果将保存在 `output/solutions/solution_/` ### LM Studio 设置 ``` # 在 .env 中 LLM_BACKEND=lmstudio LMSTUDIO_HOST=http://localhost:1234/v1 # Per-role model IDs(LM Studio model identifier) LMSTUDIO_MODEL_CEO=Jackrong/Qwen3.5-9B-Claude-4.6-Opus-Reasoning-Distilled-v2-GGUF LMSTUDIO_MODEL_CTO=Jackrong/Qwen3.5-9B-Claude-4.6-Opus-Reasoning-Distilled-v2-GGUF LMSTUDIO_MODEL_DEVELOPER=lmstudio-community/Qwen2.5-Coder-7B-Instruct-GGUF LMSTUDIO_MODEL_QA_ENGINEER=lmstudio-community/DeepSeek-R1-Distill-Qwen-7B-GGUF # ...(有关全部 9 个 roles,请参阅 .env.example) ``` 打开 LM Studio → Local Server(本地服务器)选项卡 → Start Server(启动服务器)。模型将根据需要自动加载。 ### Ollama 设置 ``` # 在 .env 中(选项 A:每个 agent role 使用单独的 model) LLM_BACKEND=ollama OLLAMA_HOST=http://localhost:11434 MODEL_CEO=qwen3.5:9b-q4_K_M MODEL_DEVELOPER=qwen2.5-coder:14b # ...(或者单独配置所有 9 个 agent roles) # 或者(选项 B:所有 agents 使用单一 global model fallback) LLM_BACKEND=ollama MODEL=qwen2.5-coder:14b # 拉取所需的 models ollama pull qwen3.5:9b-q4_K_M ollama pull qwen2.5-coder:14b ``` ### 推荐模型 (16GB RAM) #### LM Studio | 级别 | 模型 | 内存 (RAM) | 使用者 | |---|---|---|---| | 推理 | `Jackrong/Qwen3.5-9B-Claude-4.6-Opus-Reasoning-Distilled-v2-GGUF` Q4_K_M | ~5.6GB | CEO, CTO, PM, Researcher, DataAnalyst | | 代码 | `lmstudio-community/Qwen2.5-Coder-7B-Instruct-GGUF` Q4_K_M | ~4.4GB | Developer, DevOps, Security | | QA | `lmstudio-community/DeepSeek-R1-Distill-Qwen-7B-GGUF` Q4_K_M | ~4.4GB | QA Engineer | LM Studio 会按需交换模型 —— 峰值内存为 max(reasoning, code) ≈ 5.6GB。 #### Ollama | 级别 | 模型 | 内存 (RAM) | 使用者 | |---|---|---|---| | 推理 | `qwen3.5:9b-q4_K_M` | ~5.6GB | CEO, CTO, PM, Researcher, DataAnalyst | | 代码 | `qwen2.5-coder:14b` | ~8.9GB | Developer, DevOps, Security, QA | ### 所有 CLI 模式 | 模式 | 命令 | |---|---| | 带着问题陈述运行 | `python main.py "Build a REST API for user auth"` | | 自动发现并解决问题 | `python main.py --run` | | 仅发现问题 | `python main.py --discover` | | 脚手架(跳过研究,快速路径) | `python main.py --scaffold "FastAPI CRUD app for todos"` | | 增强现有代码库 | `python main.py --enhance ./myproject "Add authentication"` | | 批量处理多个问题 | `python main.py --problems "Build X" "Fix Y" "Create Z"` | | 连续循环模式 | `python main.py --continuous` | | 设置连续循环延迟 | `python main.py --continuous --continuous-delay 30` | | 连续模式下的最大迭代次数 | `python main.py --continuous --max-iterations 5` | | 交互式对话模式 | `python main.py`(无参数) | | 在决策点进行人工审批 | `python main.py "..." --approve` | | 从检查点恢复 | `python main.py --resume` | | 恢复特定会话 | `python main.py --session-id abc123` | | 重新运行过去的解决方案 | `python main.py --rerun 3` | | 检查已加载的模型 | `python main.py --check-models` | | 运行时切换后端 | `python main.py "..." --backend lmstudio` | | 显示实时思考面板 | `python main.py "..." --show-thinking` | | 隐藏实时思考面板 | `python main.py "..." --hide-thinking` | | 指定自定义配置文件 | `python main.py "..." --config ./custom.yaml` | | 仅设计,跳过代码执行 | `python main.py "..." --dry-run` | | 跳过网络研究 | `python main.py "..." --offline` | | 列出过去的解决方案 | `python main.py --list-solutions` | | 列出会话 | `python main.py --list-sessions` | | 将解决方案导出为 zip | `python main.py --export 3` | | 为解决方案评分 | `python main.py --feedback 3 good` | | 生成默认 config.yaml | `python main.py --generate-config` | | 指定输出目录 | `python main.py "..." --target ./output` | | 覆盖输出目录 | `python main.py "..." --output-dir ./solutions` | | 在当前目录中生成 | `python main.py "..." --current-dir` | | 设置编程语言 | `python main.py "..." --language typescript` | | 设置问题领域 | `python main.py "..."domain business` | | 限制 Token 预算 | `python main.py "..." --max-tokens 50000` | | 限制审批轮数 | `python main.py "..." --max-rounds 3` | | 基于时间的硬性停止 | `python main.py "..." --max-workflow-minutes 30` | | 禁用升级系统 | `python main.py "..." --no-escalation` | | 跳过安全审查阶段 | `python main.py "..." --no-security` | | 跳过回顾阶段 | `python main.py "..." --no-retrospective` | | 允许部分交付 | `python main.py "..." --force-stop` | | 调试输出 | `python main.py "..." --verbose` | | 抑制输出 | `python main.py "..." --quiet` | ### 环境变量 | 变量 | 默认值 | 描述 | |---|---|---| | `LLM_BACKEND` | `ollama` | `ollama` 或 `lmstudio`(代码默认:`ollama`) | | `OLLAMA_HOST` | `http://localhost:11434` | Ollama 服务器 URL | | `LMSTUDIO_HOST` | `http://localhost:1234/v1` | LM Studio 服务器 URL | | `MODEL` | 未设置 | 所有角色的全局模型降级备选(例如 `qwen2.5-coder:14b`) | | `MODEL_` | 角色规范 | 每个角色的 Ollama 模型标签 —— 通过 `.env` 覆盖(选项 A) | | `LMSTUDIO_MODEL_` | 角色规范 | 每个角色的 LM Studio 模型 ID —— 通过 `.env` 覆盖 | | `SHOW_THINKING` | `false` | 在控制台显示实时智能体思考面板(`true` / `false`) | | `MODEL_THINKING` | `false` | 启用 LLM 模型内部推理生成(`true` / `false`) | | `LLM_MAX_CONCURRENCY` | `2` | 最大并发 LLM 调用数(高内存配置可提高此值) | | `MULTI_AGENT_LLM_DATA_DIR` | `~/.multi-agent-llm-company-system` | 内部数据目录(日志、记忆、报告) | | `COMPANY_AGI_OUTPUT_DIR` | `output/solutions` | 生成的代码输出目录 | | `COMPANY_AGI_RUN_TESTS` | `true` | 代码生成后运行测试 | | `COMPANY_AGI_STREAMING` | `true` | 启用流式 LLM 输出 | | `RATE_LIMIT_DELAY` | `2.0` | LLM 请求之间的秒数 | | `LOG_LEVEL` | `INFO` | 日志详细级别 | ### 配置文件 生成 `config.yaml` 模板(启动时在 CWD 中自动发现): ``` python main.py --generate-config ``` 配置文件支持所有工作流设置 —— 模型分配、Token 预算、输出目录等。CLI 标志可覆盖配置文件中的值。支持的文件名:`config.yaml`、`config.yml`、`config.json`、`.multi-agent-llm-company-system.yaml`。 ### 内部数据目录 所有内部状态(日志、记忆、会话数据、报告)都存储在 `~/.multi-agent-llm-company-system/` 中。可通过 `MULTI_AGENT_LLM_DATA_DIR` 覆盖。生成的代码会输出到 `output/solutions/`(或使用 `--target` / `--output-dir`)。 ## 项目结构 ``` multi-agent-llm-company-system/ ├── agents/ # Nine specialist agents + shared base │ ├── base_agent.py # Adaptive CoT, retry logic, semaphore, context trimming │ ├── thinking.py # Configurable reasoning depth engine │ ├── tree_of_thoughts.py # Branch-score-execute reasoning │ ├── hypertree_planner.py # Hierarchical task decomposition across sub-trees │ ├── react_loop.py # Reason-Act-Observe for tool agents │ ├── agent_tools_mixin.py # 13-tool Claude Code-style mixin (read/write/grep/bash/git/LSP/fmt) │ ├── personality.py # Per-agent personality traits + career progression │ └── ceo · cto · researcher · product_manager · developer │ qa_engineer · security_engineer · devops_engineer · data_analyst │ ├── orchestrator/ # Pipeline engine │ ├── workflow.py # 13-phase execution graph │ ├── plan_mode.py # Planning with human approval steps │ ├── message_bus.py # Priority-queued async agent communication │ ├── task_manager.py # Task lifecycle and priority │ ├── escalation.py # Failure routing and systemic review triggers │ └── artifacts.py # Artifact storage and retrieval │ ├── collaboration/ # Cross-agent protocols │ ├── debate.py # Structured N-round debate with synthesis │ ├── meeting.py # Meeting types: brainstorm, decision, retro, 1-on-1 │ ├── critic_ensemble.py # Independent parallel critique │ └── moa_aggregator.py # Mixture-of-Agents output synthesis │ ├── company/ # Org-level simulation │ ├── organization.py # Declarative org chart and department definitions │ ├── sprint.py # Sprint tracking │ ├── backlog.py # Product backlog management │ ├── performance.py # Agent performance metrics │ └── culture · hiring · trust · meetings │ ├── memory/ # Persistence layer │ ├── rag_store.py # Local TF-IDF RAG, no GPU required │ ├── shared_memory.py # All-agent shared context per run │ ├── agent_memory.py # Per-agent persistent memory │ ├── session.py # Session state management │ ├── learning.py # Cross-session pattern learning │ └── context_manager.py │ ├── research/ # Autonomous problem discovery │ ├── problem_discoverer.py │ ├── sources.py # Configurable research sources (Reddit, HN, etc.) │ ├── web_scraper.py · web_search.py │ ├── credibility.py # Source credibility scoring (0–1) │ └── cross_validator.py │ ├── config/ # Model, role, and backend configuration │ ├── models.py # Per-role ModelSpec; env-var override system │ ├── llm_client.py # Unified LM Studio + Ollama client │ ├── config_loader.py # YAML/JSON config file loader │ ├── settings.py # Global settings with env overrides │ └── roles.py · validation.py │ ├── tools/ # Agent tool integrations (git, LSP, test runner) ├── utils/ # Health checker, usage tracker, output validator ├── ui/ # Rich terminal interface + streaming ├── docs/assets/ # Org chart · execution flow · terminal screenshots ├── tests/ ├── .env.example # Full backend + model configuration template ├── main.py # CLI entry point (also: multi-agent-llm-company-system) ├── interactive_mode.py # Standalone interactive coding session └── requirements.txt ``` ## 展现的工程重点领域 本项目探索了以下方面的实际实现: - 具备实际组织权限的层级化多智能体编排 - 通过否决循环和升级阈值实现自治质量治理 - 自适应推理 —— 仅在复杂度需要时才进行完整的思维链 - 双后端 LLM 路由(LM Studio + Ollama),通过环境变量进行基于角色的模型分配 - 使用本地 RAG 检索的持久化组织记忆(无需 GPU,无需云) - 面向生产环境的 LLM 使用量监控和智能体置信度评分 - 结构化的智能体间辩论与共识机制 - 内存限制下本地 LLM 服务器的并发控制 ## License MIT
标签:AI风险缓解, DLL 劫持, PyRIT, Python, 人工智能, 多智能体系统, 大语言模型, 无后门, 本地部署, 用户模式Hook绕过, 网络安全研究, 自动化软件工程, 逆向工具