Files
autogen/REALTIME_FILE_SAVING.md
2026-03-12 17:58:15 +08:00

4.3 KiB
Raw Blame History

实时文件保存功能

功能说明

现在AutoGen SDLC 系统支持实时文件保存功能。在 Agent 协作过程中,每个 Agent 生成的内容会立即保存到文件系统中,而不需要等待整个工作流完成。

工作原理

修改前

对话开始 → PM Agent 发言 → QA Agent 发言 → Dev Agent 发言 → ... → 对话结束
                                                              ↓
                                                        遍历所有消息
                                                              ↓
                                                        批量保存文件

修改后

对话开始 → PM Agent 发言 → 立即保存 SRS.md
              ↓
         QA Agent 发言 → 立即保存 test_sample.py
              ↓
         Dev Agent 发言 → 立即保存 src_sample.py (或其他文件)
              ↓
                ...
              ↓
         对话结束 (所有文件已实时保存完成)

技术实现

  1. 回调机制: 使用 AutoGen 的 register_reply 方法注册回调函数
  2. 实时检测: 每次 Agent 发言后立即检测内容并保存文件
  3. 文件识别: 根据 Agent 名称和内容类型自动判断文件类型
    • PM_Agent → SRS.md (需求文档)
    • QA_Agent → test_sample.py (测试用例)
    • Dev_Agent → src_sample.py 或指定文件名的代码文件

使用方法

方法 1: 运行示例

# 设置 API Key
$env:DASHSCOPE_API_KEY="your_api_key"

# 运行实时文件保存示例
python usage_examples.py

示例会自动演示实时文件保存功能。

方法 2: 直接使用 API

from autogen_sdls_system import AutoGenSDLCSystem

system = AutoGenSDLCSystem(
    api_key="your_api_key",
    workspace_dir="workspace"  # 指定工作目录
)

result = system.run_workflow(
    "我需要一个电池健康状态预测 API",
    max_round=15
)

# 查看实时保存的文件
print("生成的文件:", result["saved_files"])

文件命名规则

PM Agent

  • 文件名: SRS.md
  • 触发条件: 内容包含"需求"、"SRS"或"软件需求规格说明书"
  • 内容格式: Markdown 格式的 Software Requirements Specification

QA Agent

  • 文件名: test_sample.py
  • 触发条件: 内容包含"test"、"测试"或"def test_"
  • 内容格式: Python 测试代码Pytest 风格)

Dev Agent

  • 带文件名的代码块:

    # File: my_module.py
    def my_function():
        pass
    

    会保存为 my_module.py

  • 不带文件名的代码块: 保存为 src_sample.py

  • 触发条件: 内容包含"def "、"class "或"import "

实时性保证

每个文件在以下时机立即保存:

  1. Agent 生成回复内容
  2. 回调函数被触发
  3. 解析内容并提取代码/文档
  4. 写入文件系统
  5. 输出日志:💾 [实时保存] <文件路径>

整个过程在毫秒级完成,用户可以在控制台中实时看到文件保存的提示。

优势

即时可见: 无需等待整个流程完成,立即可见生成的文件 过程追踪: 可以观察每个 Agent 的贡献和输出顺序 错误恢复: 如果中途中断,已生成的文件不会丢失 调试方便: 可以实时检查每个阶段的输出质量 人机协同: 人工可以在流程进行中审查已生成的文件

注意事项

⚠️ 文件覆盖: 如果同一个 Agent 多次生成同类型文件,后生成的会覆盖先生成的 ⚠️ 工作目录: 确保工作目录有写权限 ⚠️ API 响应: 某些模型响应可能包含多个代码块,只会保存第一个匹配的

示例输出

🚀 开始对话...

PM_Agent 正在分析需求...
💾 [实时保存] workspace\SRS.md

QA_Agent 正在设计测试...
💾 [实时保存] workspace\test_sample.py

Dev_Agent 正在编写代码...
💾 [实时保存] workspace\src_sample.py

User_Proxy 正在执行测试...

Orchestrator 正在汇总结果...

✅ 工作流完成!
📁 已保存 3 个文件:
   ✓ workspace\SRS.md
   ✓ workspace\test_sample.py
   ✓ workspace\src_sample.py

相关文件

  • autogen_sdls_system.py: 核心实现文件
  • usage_examples.py: 使用示例(包含示例 6
  • utils/callback_handler.py: 回调处理器