ling-playground / docs /requirements /2025-10-12-09-05-optimize-workflow-prompts-and-test.md
cafe3310's picture
little demo
cb6eafc

A newer version of the Gradio SDK is available: 6.1.0

Upgrade

需求:优化工作流 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 测试场景

  • 主题: 规划一次到杭州的旅行。
  • 用户需求模拟: 我将模拟用户,在对话中逐步提出以下要求:
    1. 要去特定的景点(例如:西湖、灵隐寺)。
    2. 要选择合理的交通工具(例如:高铁、飞机)。
    3. 要确定旅行天数、每日的起床和返回酒店时间。
    4. 在最后,希望能得到一个预估的总预算。

3.2 自动化测试方案

  1. 环境重置: 确保一个干净的测试环境(终止旧进程、重启应用)。
  2. 导航: 导航至“工作流”标签页。
  3. 模拟对话: 我将通过 fillclick 工具,模拟上述用户需求,与主 Agent 进行至少 4-5 轮对话。
  4. 结果断言: 在每次对话后,我会捕获快照,并对副 Agent 的输出进行评估。
  5. 循环与提交:
    • 为每次测试运行创建一个 Commit: Commit message 将清晰地记录本次测试的结果(例如 test(workflow): Iteration 1 failed, workflow is not abstracttest(workflow): Iteration 2 success, abstraction level is good)。
    • 自我修正: 如果断言失败,我将返回代码修改步骤,调整 Prompts,然后开始新一一轮的测试。

3.3 成功标准

  1. 可提取性: 工作流能够被成功提取并显示出来。
  2. 抽象性与通用性: 提取出的工作流步骤足够通用和抽象,描述的是交互“动作”,而不是具体“数值”。
  3. 增量性与事实性: 工作流是逐步增加的,且每一步都明确对应到某一次对话交互中。