cd ProjectManagement
pip install -r requirements.txtpython test_simple.py如果看到所有测试通过,说明系统可以正常运行。
python main.py系统会自动生成一个项目需求,并完成整个项目生命周期的模拟。
python main.py --project-idea "开发一个在线图书管理系统,支持图书的增删改查、借阅管理、用户管理等功能。系统应该具有Web界面,后端使用Python Flask框架。"python main.py --project-code "LIBRARY_SYSTEM_001"运行完成后,所有交付物保存在:
simulation/{项目代号}/deliverables/
==============================================================
多智能体项目管理模拟系统
==============================================================
项目代号:PROJ_20250114_181000
项目创意:由AI自动生成
==============================================================
==============================================================
工作流引擎已初始化 - 项目代号:PROJ_20250114_181000
交付物路径:simulation/PROJ_20250114_181000/deliverables
==============================================================
==============================================================
开始执行项目生命周期
==============================================================
==============================================================
阶段 1/6: 预启动
==============================================================
[1.1] 项目发起人陈述需求...
需求描述:
[项目发起人的需求陈述...]
[1.2] 项目经理起草项目章程...
项目章程:
[项目章程内容...]
[完成] 预启动阶段完成
==============================================================
阶段 2/6: 启动
==============================================================
[2.1] 召开项目启动会议...
[2.2] 项目发起人发言...
[2.3] 项目组成员发言...
[2.4] 项目经理总结,确定三大约束...
三大约束:
成本:...
范围:...
进度:...
[完成] 启动阶段完成
... [继续其他阶段]
simulation/PROJ_20250114_181000/deliverables/
├── 项目章程.md
├── 会议记录_启动_20250114_181001.md
├── WBS.md
├── 成本管理计划.md
├── 范围管理计划.md
├── 进度管理计划.md
├── EVM报告_循环1_20250114_181002.md
├── EVM报告_循环2_20250114_181003.md
├── 项目总结报告.md
├── 最终验收意见.md
├── main.py
├── utils.py
├── config.py
└── project_data.json
系统中有三个智能体:
-
项目发起人(Sponsor)
- 提出项目需求
- 参与决策
- 评审产品
- 验收交付物
-
项目经理(Manager)
- 制定项目章程
- 创建WBS和管理计划
- 协调各方
- 进行挣值分析
-
项目组成员(Team Member)
- 提供技术意见
- 编写代码
- 报告进展
所有智能体共享同一个数据库,包含:
- 项目章程
- 三大约束(成本、范围、进度)
- WBS
- 管理计划
- 会议记录
- 讨论记录
- 代码文件
- EVM记录
每个智能体有三种记忆:
- 短期记忆:对话历史(最近10轮)
- 工作记忆:当前任务相关的临时信息
- 长期记忆:通过共享数据库访问历史数据
第四阶段(执行)和第五阶段(控制)会循环执行:
循环1: 执行 → 控制 → 发起人评审 → 拒绝
循环2: 执行 → 控制 → 发起人评审 → 拒绝
循环3: 执行 → 控制 → 发起人评审 → 接受 → 进入结束阶段
最多循环3次,如果发起人接受则提前结束循环。
系统在每次控制阶段都会进行挣值分析,计算:
- PV(Planned Value):计划值
- EV(Earned Value):挣值
- AC(Actual Cost):实际成本
- CV(Cost Variance):成本偏差 = EV - AC
- SV(Schedule Variance):进度偏差 = EV - PV
- CPI(Cost Performance Index):成本绩效指数 = EV / AC
- SPI(Schedule Performance Index):进度绩效指数 = EV / PV
- CPI > 1:成本绩效良好,低于预算
- CPI < 1:成本超支
- SPI > 1:进度超前
- SPI < 1:进度落后
编辑 config.py:
LLM_CONFIG = {
'base_url': 'your_api_base_url',
'api_key': 'your_api_key',
'model': 'your_model_name'
}编辑 config.py 中的 AGENT_PROMPTS:
AGENT_PROMPTS = {
'SPONSOR': """你是项目发起人...""",
'MANAGER': """你是项目经理...""",
'TEAM_MEMBER': """你是项目组成员..."""
}编辑 config.py:
MAX_EXECUTION_CYCLES = 3 # 改为你想要的次数系统有容错机制,如果API调用失败会使用模拟响应继续执行。但建议:
- 检查网络连接
- 确认API密钥是否有效
- 检查API配置是否正确
这是正常的。系统的重点是模拟项目管理流程,不是生成高质量代码。代码只是用来展示工作量和项目进展。
完整流程可能需要几分钟到十几分钟,这取决于:
- API响应速度
- 网络状况
- LLM生成的内容长度
你可以:
- 使用更快的模型
- 减少max_tokens参数
- 减少执行循环次数
查看 simulation/{项目代号}/deliverables/project_data.json,这个文件包含了所有项目数据的完整记录。
可以!按照以下步骤:
- 在
agents/创建新的智能体类 - 继承
BaseAgent - 在
config.py添加提示词 - 在
workflow/engine.py集成到工作流
如有问题:
- 先运行
test_simple.py确认系统组件是否正常 - 检查
config.py配置是否正确 - 查看错误日志和堆栈信息
- 提交Issue描述问题
# 创建批处理脚本
for i in {1..5}; do
python main.py --project-code "BATCH_TEST_$i"
doneimport json
import os
# 读取所有项目数据
results = []
for proj in os.listdir('simulation'):
data_path = f'simulation/{proj}/deliverables/project_data.json'
if os.path.exists(data_path):
with open(data_path) as f:
results.append(json.load(f))
# 分析统计
print(f"总项目数: {len(results)}")
print(f"平均循环次数: {sum(len(r['execution_cycles']) for r in results) / len(results)}")可以修改 utils/document_generator.py 支持导出为:
- Word
- HTML
- LaTeX
- 明确项目需求:使用
--project-idea参数提供详细的需求描述 - 保留历史记录:每次模拟的结果都保存在独立的文件夹中
- 定期备份:
simulation/目录包含所有模拟结果 - 自定义提示词:根据你的需要修改Agent的系统提示词
- 分析结果:查看EVM报告了解项目管理过程
祝你使用愉快!