Thrilok28021996/multi-agent-llm-company-system
GitHub: Thrilok28021996/multi-agent-llm-company-system
该系统通过九个专业化AI智能体模拟层级化的软件公司组织,实现从问题发现到代码交付的自主协作与质量治理。
Stars: 0 | Forks: 0
# 多智能体 LLM 公司系统
**一个由角色专业化智能体组成的层级化自治 AI 组织,能够独立发现问题、委派执行、辩论解决方案、执行质量否决,并综合出最终结果 —— 具备持久化记忆和基于 RAG 的上下文。**
[](https://python.org)
[](https://lmstudio.ai)
[](https://ollama.ai)
[](LICENSE)
[](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绕过, 网络安全研究, 自动化软件工程, 逆向工具