From d1a8bed6856bb1147ca66f0382917277db23e69c Mon Sep 17 00:00:00 2001 From: Linghong Date: Fri, 4 Sep 2026 14:20:57 +0000 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=AD=96=E5=88=92=E9=97=AE?= =?UTF-8?q?=E8=AF=A2=E8=BD=AE=E6=AC=A1=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原型与生产 prompt 统一明确最多提问三轮 允许信息足够时提前出稿并补充重玩动力优先级 不改 Runtime 工作流、schema、校验和持久化逻辑 --- .../agent/runtime_protocol/planning_session_v2.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/runtime_protocol/planning_session_v2.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/runtime_protocol/planning_session_v2.rs index 5b2294bc0..9a6b6fe99 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/runtime_protocol/planning_session_v2.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/runtime_protocol/planning_session_v2.rs @@ -769,17 +769,16 @@ fn prepare_turn_v2( } fn planning_v2_question_policy(session: &PlanningSessionV2) -> String { + if session.question_count >= 3 { + return "已达到 3 轮问询上限,本轮整理当前信息并调用 plan_submit_gdd。".to_string(); + } match session.question_limit { Some(limit) if session.question_count >= limit => format!( "当前已向用户展示 {} 个有效问题;已达到问询上限,禁止再调用 plan_ask_question,必须调用 plan_submit_gdd 提交完整 GDD。", session.question_count ), - Some(_limit) => format!( - "当前已向用户展示 {} 个有效问题;只有确实影响首个可玩闭环且无法合理默认的空白才调用 plan_ask_question。", - session.question_count - ), - None => format!( - "当前已向用户展示 {} 个有效问题,问题数不设上限;只有确实影响首个可玩闭环且无法合理默认的空白才调用 plan_ask_question。", + _ => format!( + "当前已向用户展示 {} 个有效问题。整个会话最多提问 3 轮;本轮可以继续问一个最重要的未决设计问题,也可以在信息足够时直接提交 GDD。", session.question_count ), } @@ -790,7 +789,7 @@ fn planning_v2_system_prompt(session: &PlanningSessionV2) -> String { // 问询策略只是偏好,两者不要求数值一致。这里仅传当前已展示数, // 达到硬上限时再明确禁止本次继续提问。 format!( - "你是立项策划 Agent。当前会话 {},回合 {}。每轮必须且只能调用一个工具:问询用 plan_ask_question,出稿用 plan_submit_gdd。不要在正文输出 JSON、Markdown、解释或代码围栏。\n\n{}\n\n出稿前必须先确认三项核心闭环:玩家核心行为(每一局反复做什么)、单局目标/核心循环(怎样算完成一局)、MVP 制作边界(首个可玩版本做什么、不做什么)。其中一项仍只是推断、没有出现在用户需求或回答中,就只问一个最关键的问题,不能用 assumption_pending 代替。主题包装、美术、数值和次要系统可以用 assumption_pending,answerSource 记为 agent_inferred。不要重复已回答的问题。修改以最新用户意见为准,提交完整 GDD,不要打补丁。", + "你是立项策划 Agent。当前会话 {},回合 {}。每轮必须且只能调用一个工具:问询用 plan_ask_question,出稿用 plan_submit_gdd。不要在正文输出 JSON、Markdown、解释或代码围栏。\n\n除非用户明确要求直接出稿,否则先进行关键设计澄清。\n整个会话最多提问 3 轮。\n3 轮是上限,不是配额;信息已经足够时允许 0~2 轮提前出稿。\n达到第 3 轮或信息足够时,整理当前信息并调用 plan_submit_gdd。\n每轮收到用户回答后重新选择最重要的下一个未决决定,不要重复已回答的问题。\n提问优先顺序:核心行为与本局目标 → 重玩动力 → 制作边界与 MVP。\n主题包装、美术、数值和次要系统可以用 assumption_pending,answerSource 记为 agent_inferred。修改以最新用户意见为准,提交完整 GDD,不要打补丁。", session.session_id, session.turn_index, planning_v2_question_policy(session),