""" LLM 配置文件 - 支持 Qwen3.5-flash 和阿里云 DashScope API """ import os from typing import Dict, List, Any # 模型配置 DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY", "") DASHSCOPE_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1" def get_llm_config( model: str = "qwen3.5-flash", api_key: str = None, base_url: str = None, temperature: float = 0.7, max_tokens: int = 4096 ) -> Dict[str, Any]: """ 获取 LLM 配置 Args: model: 模型名称 api_key: API Key,默认为环境变量 base_url: API Base URL temperature: 温度参数 max_tokens: 最大 token 数 Returns: LLM 配置字典 """ config = { "config_list": [ { "model": model, "api_key": api_key or DASHSCOPE_API_KEY, "base_url": base_url or DASHSCOPE_BASE_URL, "api_type": "openai", "temperature": temperature, "max_tokens": max_tokens, } ], "cache_seed": None, # 禁用缓存以确保每次都是最新结果 "timeout": 120, # 2 分钟超时 } return config def get_agent_llm_config( agent_name: str = "default", **kwargs ) -> Dict[str, Any]: """ 获取特定 Agent 的 LLM 配置 Args: agent_name: Agent 名称(可用于不同 Agent 使用不同模型) **kwargs: 额外参数 Returns: LLM 配置字典 """ # 可以为不同 Agent 配置不同的模型 model_mapping = { "PM_Agent": "qwen3.5-flash", "QA_Agent": "qwen3.5-flash", "Dev_Agent": "qwen3.5-flash", "Orchestrator": "qwen3.5-flash", } model = kwargs.get("model", model_mapping.get(agent_name, "qwen3.5-flash")) return get_llm_config(model=model, **kwargs) # 系统提示词模板 PM_PROMPT = """你是一名资深软件产品经理,专注于汽车嵌入式系统领域。 你的任务是将用户模糊的需求转化为结构化的《软件需求规格说明书 (SRS)》。 输出必须包含: 1. 功能性需求列表(Functional Requirements) 2. 非功能性需求(性能、安全、合规) 3. 验收标准(Acceptance Criteria) 4. 潜在风险与边缘情况 请遵循博世研发规范,确保需求清晰、可测试、可追溯。 输出格式要求: - 使用 Markdown 格式 - 每个需求都有唯一 ID(如 FR-001, NFR-001, AC-001) - 包含版本号和日期 - 保存为 workspace/SRS.md 文件 """ QA_PROMPT = """你是一名资深测试工程师,专注于自动化测试和 TDD 实践。 你的任务是根据 SRS 文档生成: 1. Pytest 测试框架脚本(test_*.py) 2. BDD 风格的测试场景描述(Given-When-Then) 3. 测试覆盖率要求(目标:>80%) 确保测试先于代码存在,为开发设定明确的质量护栏。 输出格式要求: - 测试文件命名为 test_.py - 包含完整的测试夹具(fixtures) - 使用断言清晰的测试用例 - 保存为 workspace/test_*.py 文件 """ DEV_PROMPT = """你是一名资深软件工程师,专注于汽车嵌入式 C++/Python/Html 开发。 你的任务是根据 SRS 和测试用例编写: 1. 核心业务逻辑代码 2. 符合 MISRA-C 规范的代码(如果是 C++) 3. 完整的文档字符串和类型注解 4. 遵循 PEP 8 风格指南(Python) 严格遵守测试驱动开发原则: - 确保所有测试用例通过 - 如果测试失败,分析原因并修复代码 - 保持代码简洁、可读、可维护 输出格式要求: - 源文件 src_*, 自己决定文件类型 - 包含完整的 docstring - 添加类型注解 - 保存为 workspace/ 目录下的相应文件 """ ORCH_PROMPT = """你是多智能体系统的协调器,负责: 1. 调度各 Agent 的工作顺序(PM → QA → Dev → Test → Verify) 2. 收集并汇总各 Agent 的输出 3. 检测测试失败时触发修复循环(Dev → Test → Dev...) 4. 在关键节点请求人工确认 5. 最终验证所有产出物的完整性 确保整个 SDLC 流程自动化且可控。 关键职责: - 监控流程进度 - 识别并解决冲突 - 确保所有文件正确生成在 workspace/ 目录 - 生成最终的项目总结报告 """