360 lines
16 KiB
Python
360 lines
16 KiB
Python
"""Golden behavior cases for the Space PMFlow AI turn runtime.
|
|
|
|
These cases test the abstract runtime loop behavior. They are not prompt
|
|
examples and do not decide production routing.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
|
|
PMFLOW_AI_TURN_RUNTIME_GOLDEN_CASES: list[dict[str, Any]] = [
|
|
{
|
|
"case_id": "open_purchase_supervision_direction",
|
|
"question": "我想做个 AI 采购监督系统,你觉得怎么样",
|
|
"surface_context": {"space_runtime_context": {"workbench": {"projects": [{"id": 141, "title": "童析"}]}}},
|
|
"legacy_route_plan": {"display_contract": {"answer_shape": "status_answer"}, "source_strategy": "internal_only"},
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断新项目方向是否值得做",
|
|
"desired_outcome": "给出机会、边界、MVP、风险和下一步",
|
|
"answer_shape": "strategic_judgement",
|
|
"decision_type": "market_opportunity",
|
|
"subject": "AI 采购监督系统",
|
|
"subject_terms": ["AI 采购监督系统", "采购监督", "政府采购"],
|
|
"evidence_needs": ["external_fresh", "synthesize"],
|
|
"freshness_required": True,
|
|
"can_answer_with_assumptions": True,
|
|
"primary_object": {"binding_strength": "none"},
|
|
},
|
|
"expect": {
|
|
"answer_shape": "strategic_judgement",
|
|
"next_action": "external_search",
|
|
"must_ask_user": False,
|
|
"primary_binding": "none",
|
|
"forbid_actions": ["inspect_internal_projects"],
|
|
"context_titles": ["童析"],
|
|
},
|
|
},
|
|
{
|
|
"case_id": "open_comic_tool_direction",
|
|
"question": "我想做个 AI 漫剧工具,你觉得怎么样",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断新项目方向是否值得做",
|
|
"answer_shape": "strategic_judgement",
|
|
"decision_type": "market_opportunity",
|
|
"subject": "AI 漫剧工具",
|
|
"subject_terms": ["AI 漫剧工具", "短剧", "漫画"],
|
|
"evidence_needs": ["external_fresh", "synthesize"],
|
|
"freshness_required": True,
|
|
"needs_user_input": True,
|
|
"can_answer_with_assumptions": True,
|
|
},
|
|
"expect": {"answer_shape": "strategic_judgement", "next_action": "external_search", "must_ask_user": False},
|
|
},
|
|
{
|
|
"case_id": "open_inventory_market",
|
|
"question": "现在做智能库存系统还有市场吗",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断智能库存方向是否仍有市场",
|
|
"answer_shape": "strategic_judgement",
|
|
"decision_type": "market_opportunity",
|
|
"subject": "智能库存系统",
|
|
"subject_terms": ["智能库存系统", "仓储", "库存预测"],
|
|
"evidence_needs": ["external_fresh", "synthesize"],
|
|
"freshness_required": True,
|
|
"can_answer_with_assumptions": True,
|
|
},
|
|
"expect": {"answer_shape": "strategic_judgement", "next_action": "external_search"},
|
|
},
|
|
{
|
|
"case_id": "recommend_new_project_directions",
|
|
"question": "最近有没有好的项目推荐",
|
|
"surface_context": {"space_runtime_context": {"workbench": {"projects": [{"id": 141, "title": "童析"}]}}},
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "推荐值得继续看的新项目方向",
|
|
"answer_shape": "strategic_judgement",
|
|
"decision_type": "market_opportunity",
|
|
"subject": "",
|
|
"evidence_needs": ["external_fresh", "synthesize"],
|
|
"freshness_required": True,
|
|
"can_answer_with_assumptions": True,
|
|
"primary_object": {"binding_strength": "none"},
|
|
},
|
|
"expect": {
|
|
"answer_shape": "strategic_judgement",
|
|
"next_action": "external_search",
|
|
"primary_binding": "none",
|
|
"context_titles": ["童析"],
|
|
},
|
|
},
|
|
{
|
|
"case_id": "specific_project_status",
|
|
"question": "童析项目现在怎么样",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断项目当前状态",
|
|
"answer_shape": "status_answer",
|
|
"decision_type": "project_status",
|
|
"subject": "童析",
|
|
"evidence_needs": ["project_status", "synthesize"],
|
|
"primary_object": {
|
|
"object_type": "project",
|
|
"object_ref": "project:141",
|
|
"title": "童析",
|
|
"binding_strength": "explicit",
|
|
},
|
|
},
|
|
"expect": {"answer_shape": "status_answer", "next_action": "inspect_project_status", "primary_binding": "explicit"},
|
|
},
|
|
{
|
|
"case_id": "multi_project_status",
|
|
"question": "童析和星河两个项目进展如何",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断多个项目当前状态",
|
|
"answer_shape": "status_answer",
|
|
"decision_type": "project_status",
|
|
"subject": "童析、星河",
|
|
"evidence_needs": ["project_lookup", "project_status", "synthesize"],
|
|
"primary_object": {"binding_strength": "none"},
|
|
},
|
|
"expect": {"answer_shape": "status_answer", "next_action": "resolve_project_objects", "actions": ["resolve_project_objects", "inspect_project_status"]},
|
|
},
|
|
{
|
|
"case_id": "ambiguous_execute_request",
|
|
"question": "帮我处理一下",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "执行一个未明确的处理动作",
|
|
"answer_shape": "clarification",
|
|
"decision_type": "execution_guidance",
|
|
"needs_user_input": True,
|
|
"can_answer_with_assumptions": False,
|
|
"evidence_needs": ["clarification"],
|
|
},
|
|
"expect": {"answer_shape": "clarification", "next_action": "ask_clarification", "must_ask_user": True},
|
|
},
|
|
{
|
|
"case_id": "write_memory_requires_confirmation",
|
|
"question": "把这个结论写入项目记忆",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "准备写入项目记忆前确认对象和内容",
|
|
"answer_shape": "execution_guidance",
|
|
"decision_type": "execution_guidance",
|
|
"needs_user_input": True,
|
|
"can_answer_with_assumptions": False,
|
|
"evidence_needs": ["clarification"],
|
|
},
|
|
"expect": {"answer_shape": "execution_guidance", "next_action": "ask_clarification", "must_ask_user": True},
|
|
},
|
|
{
|
|
"case_id": "multi_task_project_review",
|
|
"question": "这个项目 MVP 还差什么、风险在哪里、我今天先做什么",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "同时判断项目缺口、风险和今日优先级",
|
|
"answer_shape": "composite_answer",
|
|
"decision_type": "project_status",
|
|
"evidence_needs": ["internal_projects", "synthesize"],
|
|
"primary_object": {
|
|
"object_type": "project",
|
|
"object_ref": "project:141",
|
|
"title": "当前项目",
|
|
"binding_strength": "current_page",
|
|
},
|
|
},
|
|
"expect": {"answer_shape": "composite_answer", "next_action": "inspect_project_status"},
|
|
},
|
|
{
|
|
"case_id": "project_semantic_lookup",
|
|
"question": "有没有跟儿童 AI 评估相关的项目",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "查找相关内部项目",
|
|
"answer_shape": "fact_list",
|
|
"decision_type": "object_lookup",
|
|
"subject": "儿童 AI 评估",
|
|
"subject_terms": ["儿童", "AI", "评估"],
|
|
"evidence_needs": ["project_lookup", "synthesize"],
|
|
"primary_object": {"binding_strength": "none"},
|
|
},
|
|
"expect": {"answer_shape": "fact_list", "next_action": "resolve_project_objects", "forbid_actions": ["external_search"]},
|
|
},
|
|
{
|
|
"case_id": "new_project_without_direction",
|
|
"question": "我想跟你聊个新项目",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "开启新项目方向讨论",
|
|
"answer_shape": "clarification",
|
|
"decision_type": "market_opportunity",
|
|
"needs_user_input": True,
|
|
"can_answer_with_assumptions": False,
|
|
"evidence_needs": ["clarification"],
|
|
},
|
|
"expect": {"answer_shape": "clarification", "next_action": "ask_clarification", "must_ask_user": True},
|
|
},
|
|
{
|
|
"case_id": "followup_ai_trading_idea",
|
|
"question": "做一个 AI 自动炒股的",
|
|
"surface_context": {"space_runtime_context": {"workbench": {"projects": [{"id": 141, "title": "童析"}]}}},
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断 AI 自动交易方向是否值得做",
|
|
"answer_shape": "strategic_judgement",
|
|
"decision_type": "market_opportunity",
|
|
"subject": "AI 自动炒股",
|
|
"subject_terms": ["AI 自动炒股", "自动交易", "投顾监管"],
|
|
"evidence_needs": ["external_fresh", "synthesize"],
|
|
"freshness_required": True,
|
|
"can_answer_with_assumptions": True,
|
|
"primary_object": {"binding_strength": "none"},
|
|
},
|
|
"expect": {"answer_shape": "strategic_judgement", "next_action": "external_search", "primary_binding": "none", "context_titles": ["童析"]},
|
|
},
|
|
{
|
|
"case_id": "token_overseas_project",
|
|
"question": "做 AI 的 token 出海项目怎么样",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断 token 出海方向机会与风险",
|
|
"answer_shape": "strategic_judgement",
|
|
"decision_type": "market_opportunity",
|
|
"subject": "AI token 出海项目",
|
|
"subject_terms": ["AI token 出海", "crypto", "合规"],
|
|
"evidence_needs": ["external_fresh", "synthesize"],
|
|
"freshness_required": True,
|
|
"can_answer_with_assumptions": True,
|
|
},
|
|
"expect": {"answer_shape": "strategic_judgement", "next_action": "external_search"},
|
|
},
|
|
{
|
|
"case_id": "project_risk_review",
|
|
"question": "这个项目风险在哪里",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断当前项目风险",
|
|
"answer_shape": "status_answer",
|
|
"decision_type": "project_status",
|
|
"evidence_needs": ["project_status", "synthesize"],
|
|
"primary_object": {
|
|
"object_type": "project",
|
|
"object_ref": "project:141",
|
|
"title": "当前项目",
|
|
"binding_strength": "current_page",
|
|
},
|
|
},
|
|
"expect": {"answer_shape": "status_answer", "next_action": "inspect_project_status"},
|
|
},
|
|
{
|
|
"case_id": "today_priority",
|
|
"question": "我今天先做什么",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断今日优先级",
|
|
"answer_shape": "status_answer",
|
|
"decision_type": "project_status",
|
|
"evidence_needs": ["surface_context", "internal_projects", "synthesize"],
|
|
"can_answer_with_assumptions": True,
|
|
},
|
|
"expect": {"answer_shape": "status_answer", "next_action": "inspect_surface_context", "actions": ["inspect_surface_context", "inspect_internal_projects"]},
|
|
},
|
|
{
|
|
"case_id": "ai_capability_status",
|
|
"question": "PMFlow AI 现在能力状态怎么样",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "解释当前空间 AI 能力状态",
|
|
"answer_shape": "status_answer",
|
|
"decision_type": "general_answer",
|
|
"evidence_needs": ["surface_context", "synthesize"],
|
|
},
|
|
"expect": {"answer_shape": "status_answer", "next_action": "inspect_surface_context"},
|
|
},
|
|
{
|
|
"case_id": "saved_ideas_recommendation",
|
|
"question": "暂存想法里有没有值得推进的",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "从暂存想法中推荐可推进方向",
|
|
"answer_shape": "strategic_judgement",
|
|
"decision_type": "market_opportunity",
|
|
"evidence_needs": ["saved_ideas", "external_fresh", "synthesize"],
|
|
"freshness_required": True,
|
|
"can_answer_with_assumptions": True,
|
|
},
|
|
"expect": {"answer_shape": "strategic_judgement", "next_action": "inspect_saved_ideas", "actions": ["inspect_saved_ideas", "external_search"]},
|
|
},
|
|
{
|
|
"case_id": "ai_running_attention",
|
|
"question": "AI 正在推进的这些有什么要注意",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "读取 AI 进行中事项并判断注意点",
|
|
"answer_shape": "status_answer",
|
|
"decision_type": "project_status",
|
|
"evidence_needs": ["surface_context", "synthesize"],
|
|
},
|
|
"expect": {"answer_shape": "status_answer", "next_action": "inspect_surface_context"},
|
|
},
|
|
{
|
|
"case_id": "external_regulation_question",
|
|
"question": "最近采购监管政策对这个方向有影响吗",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断监管环境对方向的影响",
|
|
"answer_shape": "strategic_judgement",
|
|
"decision_type": "market_opportunity",
|
|
"subject": "采购监管政策",
|
|
"subject_terms": ["采购监管", "政府采购"],
|
|
"evidence_needs": ["external_fresh", "synthesize"],
|
|
"freshness_required": True,
|
|
"can_answer_with_assumptions": True,
|
|
},
|
|
"expect": {"answer_shape": "strategic_judgement", "next_action": "external_search"},
|
|
},
|
|
{
|
|
"case_id": "hybrid_market_and_internal_fit",
|
|
"question": "这个新方向市场有机会吗,按我现在资源能不能做",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "同时判断外部机会和内部资源匹配",
|
|
"answer_shape": "composite_answer",
|
|
"decision_type": "market_opportunity",
|
|
"subject": "新方向",
|
|
"evidence_needs": ["surface_context", "external_fresh", "synthesize"],
|
|
"freshness_required": True,
|
|
"can_answer_with_assumptions": True,
|
|
},
|
|
"expect": {"answer_shape": "composite_answer", "next_action": "inspect_surface_context", "actions": ["inspect_surface_context", "external_search"]},
|
|
},
|
|
{
|
|
"case_id": "project_inventory_fact",
|
|
"question": "我现在有哪些项目",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "列出当前空间项目",
|
|
"answer_shape": "fact_list",
|
|
"decision_type": "object_lookup",
|
|
"evidence_needs": ["surface_context", "synthesize"],
|
|
},
|
|
"expect": {"answer_shape": "fact_list", "next_action": "inspect_surface_context", "forbid_actions": ["external_search"]},
|
|
},
|
|
{
|
|
"case_id": "fresh_market_required",
|
|
"question": "现在最新的 Agent 应用机会是什么",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "判断当前最新 Agent 应用机会",
|
|
"answer_shape": "strategic_judgement",
|
|
"decision_type": "market_opportunity",
|
|
"subject": "Agent 应用机会",
|
|
"subject_terms": ["Agent 应用", "AI Agent"],
|
|
"evidence_needs": ["external_fresh", "synthesize"],
|
|
"freshness_required": True,
|
|
"can_answer_with_assumptions": True,
|
|
},
|
|
"expect": {"answer_shape": "strategic_judgement", "next_action": "external_search", "needs_external": True},
|
|
},
|
|
{
|
|
"case_id": "publish_or_execute_requires_boundary",
|
|
"question": "帮我直接发布这个项目",
|
|
"turn_hypothesis": {
|
|
"normalized_goal": "确认发布动作边界",
|
|
"answer_shape": "execution_guidance",
|
|
"decision_type": "execution_guidance",
|
|
"needs_user_input": True,
|
|
"can_answer_with_assumptions": False,
|
|
"evidence_needs": ["clarification"],
|
|
},
|
|
"expect": {"answer_shape": "execution_guidance", "next_action": "ask_clarification", "must_ask_user": True},
|
|
},
|
|
]
|
|
|
|
|
|
__all__ = ["PMFLOW_AI_TURN_RUNTIME_GOLDEN_CASES"]
|