Skip to content

Latest commit

 

History

History
335 lines (235 loc) · 7.63 KB

File metadata and controls

335 lines (235 loc) · 7.63 KB

使用指南

快速开始

1. 安装依赖

cd ProjectManagement
pip install -r requirements.txt

2. 运行测试

python test_simple.py

如果看到所有测试通过,说明系统可以正常运行。

3. 运行完整模拟

方式一:AI自动生成项目需求

python main.py

系统会自动生成一个项目需求,并完成整个项目生命周期的模拟。

方式二:指定项目需求

python main.py --project-idea "开发一个在线图书管理系统,支持图书的增删改查、借阅管理、用户管理等功能。系统应该具有Web界面,后端使用Python Flask框架。"

方式三:指定项目代号

python main.py --project-code "LIBRARY_SYSTEM_001"

4. 查看结果

运行完成后,所有交付物保存在:

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

关键概念

智能体(Agent)

系统中有三个智能体:

  1. 项目发起人(Sponsor)

    • 提出项目需求
    • 参与决策
    • 评审产品
    • 验收交付物
  2. 项目经理(Manager)

    • 制定项目章程
    • 创建WBS和管理计划
    • 协调各方
    • 进行挣值分析
  3. 项目组成员(Team Member)

    • 提供技术意见
    • 编写代码
    • 报告进展

共享数据库

所有智能体共享同一个数据库,包含:

  • 项目章程
  • 三大约束(成本、范围、进度)
  • WBS
  • 管理计划
  • 会议记录
  • 讨论记录
  • 代码文件
  • EVM记录

记忆管理

每个智能体有三种记忆:

  1. 短期记忆:对话历史(最近10轮)
  2. 工作记忆:当前任务相关的临时信息
  3. 长期记忆:通过共享数据库访问历史数据

执行控制循环

第四阶段(执行)和第五阶段(控制)会循环执行:

循环1: 执行 → 控制 → 发起人评审 → 拒绝
循环2: 执行 → 控制 → 发起人评审 → 拒绝
循环3: 执行 → 控制 → 发起人评审 → 接受 → 进入结束阶段

最多循环3次,如果发起人接受则提前结束循环。

挣值分析(EVM)

系统在每次控制阶段都会进行挣值分析,计算:

  • 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:进度落后

自定义配置

修改LLM配置

编辑 config.py:

LLM_CONFIG = {
    'base_url': 'your_api_base_url',
    'api_key': 'your_api_key',
    'model': 'your_model_name'
}

修改Agent提示词

编辑 config.py 中的 AGENT_PROMPTS:

AGENT_PROMPTS = {
    'SPONSOR': """你是项目发起人...""",
    'MANAGER': """你是项目经理...""",
    'TEAM_MEMBER': """你是项目组成员..."""
}

修改最大循环次数

编辑 config.py:

MAX_EXECUTION_CYCLES = 3  # 改为你想要的次数

常见问题

Q1: API调用失败怎么办?

系统有容错机制,如果API调用失败会使用模拟响应继续执行。但建议:

  1. 检查网络连接
  2. 确认API密钥是否有效
  3. 检查API配置是否正确

Q2: 生成的代码质量不高?

这是正常的。系统的重点是模拟项目管理流程,不是生成高质量代码。代码只是用来展示工作量和项目进展。

Q3: 执行时间太长?

完整流程可能需要几分钟到十几分钟,这取决于:

  1. API响应速度
  2. 网络状况
  3. LLM生成的内容长度

你可以:

  • 使用更快的模型
  • 减少max_tokens参数
  • 减少执行循环次数

Q4: 如何查看详细的项目数据?

查看 simulation/{项目代号}/deliverables/project_data.json,这个文件包含了所有项目数据的完整记录。

Q5: 能否添加更多智能体角色?

可以!按照以下步骤:

  1. 在 agents/ 创建新的智能体类
  2. 继承 BaseAgent
  3. 在 config.py 添加提示词
  4. 在 workflow/engine.py 集成到工作流

技术支持

如有问题:

  1. 先运行 test_simple.py 确认系统组件是否正常
  2. 检查 config.py 配置是否正确
  3. 查看错误日志和堆栈信息
  4. 提交Issue描述问题

进阶使用

批量运行模拟

# 创建批处理脚本
for i in {1..5}; do
    python main.py --project-code "BATCH_TEST_$i"
done

分析多次模拟结果

import 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 支持导出为:

  • PDF
  • Word
  • HTML
  • LaTeX

最佳实践

  1. 明确项目需求:使用 --project-idea 参数提供详细的需求描述
  2. 保留历史记录:每次模拟的结果都保存在独立的文件夹中
  3. 定期备份:simulation/ 目录包含所有模拟结果
  4. 自定义提示词:根据你的需要修改Agent的系统提示词
  5. 分析结果:查看EVM报告了解项目管理过程

祝你使用愉快!