Spaces:
Running
Running
A newer version of the Gradio SDK is available:
6.1.0
需求:优化工作流 Agent 的提示词并进行自主循环测试
重要性: 高 (High)
1. 目标
优化“工作流”标签页中主、副 Agent 的 System Prompt,使其行为更符合设计要求,并能通过一个指定的、由我(Gemini)自主执行的自动化测试场景。
2. Prompt 优化需求
2.1 主 Agent (Main Agent)
- 角色: 一个冷静、有条理的助手。
- 行为: 专注于通过提问来逐步分解和解决用户的当前任务,保持中立和专业的语气,不偏离目标。
2.2 副 Agent (Sub-Agent)
- 输出格式: 必须是一种类似“伪代码”的、描述交互过程的 Markdown 列表。
- 核心焦点: 必须聚焦于 “如何” 完成任务(即交互的元过程),而不是 “什么” 被完成(即任务的具体内容)。
- 正面例子:
- agent: 向用户确认交通工具和目的地。 - 反面例子:
- agent: 确认了用户想坐车去北京。
- 正面例子:
- 增量生成: 工作流的生成必须是增量的。随着对话的进行,在现有列表上追加新步骤,而不是对已有步骤进行大幅修改或重写。
- 事实接地: 必须严格基于主 Agent 与用户的对话历史来提取工作流,禁止自行“脑补”或创造不存在的步骤。
3. 自主验证流程
我(Gemini)将扮演用户,并自主、循环地执行以下自动化测试,直到结果稳定满足要求。
3.1 测试场景
- 主题: 规划一次到杭州的旅行。
- 用户需求模拟: 我将模拟用户,在对话中逐步提出以下要求:
- 要去特定的景点(例如:西湖、灵隐寺)。
- 要选择合理的交通工具(例如:高铁、飞机)。
- 要确定旅行天数、每日的起床和返回酒店时间。
- 在最后,希望能得到一个预估的总预算。
3.2 自动化测试方案
- 环境重置: 确保一个干净的测试环境(终止旧进程、重启应用)。
- 导航: 导航至“工作流”标签页。
- 模拟对话: 我将通过
fill和click工具,模拟上述用户需求,与主 Agent 进行至少 4-5 轮对话。 - 结果断言: 在每次对话后,我会捕获快照,并对副 Agent 的输出进行评估。
- 循环与提交:
- 为每次测试运行创建一个 Commit: Commit message 将清晰地记录本次测试的结果(例如
test(workflow): Iteration 1 failed, workflow is not abstract或test(workflow): Iteration 2 success, abstraction level is good)。 - 自我修正: 如果断言失败,我将返回代码修改步骤,调整 Prompts,然后开始新一一轮的测试。
- 为每次测试运行创建一个 Commit: Commit message 将清晰地记录本次测试的结果(例如
3.3 成功标准
- 可提取性: 工作流能够被成功提取并显示出来。
- 抽象性与通用性: 提取出的工作流步骤足够通用和抽象,描述的是交互“动作”,而不是具体“数值”。
- 增量性与事实性: 工作流是逐步增加的,且每一步都明确对应到某一次对话交互中。