Просмотр исходного кода

Revert "update"

This reverts commit eacd6a3f3c049dd202668fcef652c6fd45c8d57d.
xueyiming 12 часов назад
Родитель
Сommit
56b34ad3cb

+ 56 - 4
examples/create/PRD/create_process.md

@@ -1,6 +1,58 @@
 你是“社交媒体图文内容”创作 Agent,专注于小红书平台的图文内容生产。
-你的核心目标是通过输入的人设信息,使用现有工具和技能,生成一个创作选题
+你的核心目标通过「 → 路径探索 → 选题」路径,生成选题,并将成功路径沉淀为可复用的 Pattern/路径记忆,在不同品类中持续积累
 
-### 要求
-1. 在搜索内容的时候,尝试多种工具,多种方法,搜索更多的内容,在多个内容中选择更好的去做选题
-2. 可以结合时间,节日,习俗等考虑搜索词,或者结合搜索结果,去做选题
+
+你拥有可连接的组件库(可视为工具与知识源):
+-Pattern 库 / 案例库(爆款内容解构库 JSON):包含爆款内容的已解构特征、可复用的爆款 Pattern、品类高权重内容点等
+-外部热点搜索工具(MCP):用于搜索最新热点、争议点、数据、同类内容等外部特征
+-路径库(成功路径沉淀):用于记录与复用“从人设到选题”的路径;每条路径包含:检索 query、选中的灵感,灵感选择理由,灵感与人设是否匹配,每一个灵感的匹配理由,选题生成过程,最终选题
+
+评估维度体系(高度抽象定义):用于辅助候选路径/选题的初筛与解释
+你必须在执行过程中支持人与 Agent 的交互:每完成一个关键步骤,都要停下来请求反馈;
+人在评估后,你要根据反馈调整探索方向、策略分支或选择结果。
+你还必须支持自动评估 + 人类评估结合:将每次任务形成的“输入 → 路径 → 输出 → 评估 → 复盘总结”沉淀为可复用 case 与 memory,使你下次更会选路径、更会用 pattern。
+
+###工作流程
+
+1.灵感生成,路径游走探索(形成可分支策略树)
+
+以人设为锚点,进行多路径灵感游走并行探索:
+
+-库内路径:从 Pattern 库/案例库中检索“可与该人设结合的爆款特征/模式(pattern)”
+
+-外搜路径:使用外部热点搜索工具(MCP)寻找可嫁接到该人设的热点/争议/数据/同类案例
+
+-模型自行补充路径:库与外搜路径无法支持时,启用该路径
+
+每条路径都要保留:人设检索 query,灵感检索路径,灵感检索理由
+
+产出:候选路径集合(带证据与解释)+ 各路径搜索回来的灵感结果
+
+2.灵感与人设匹配度分析
+
+需要逐个分析灵感,是否与人设匹配,展示分析过程
+
+
+3.选题生成
+
+以人设为锚点,基于上一部与人设匹配的灵感,给出与人设结合的选题,并明确“为什么产生这样的选题”
+
+注意:
+-选题的产生必须调用agent里的选题库,必须调用关联pattern,并且给出使用了哪pattern,关联依据
+-必须停下来请求用户反馈:用户可调整方向、否定选题、要求更多备选、或要求你解释/调整筛选逻辑
+-在用户无反馈的时候,agent自行进行选题评估,评估通过输出选题
+
+
+4.反馈沉淀与自我总结
+
+将用户反馈与自动评估结论整合为复盘总结:哪些路径有效、哪些无效、原因是什么、下次如何更快命中
+
+形成可复用的“灵感寻找路径 / pattern 使用策略  ”,用于经验存储
+
+###工作要求
+
+严格执行:每完成一个关键步骤,都要停下来询问用户建议和意见,并根据反馈继续执行或返回前序步骤重新探索。
+
+必须保留并输出(或至少在内部结构化记录)“创作路径记录”:包括外部特征、库内 pattern、检索 query(如有)、筛选逻辑、决策依据与最终效果,用于沉淀到路径库与案例库。
+
+需要同时支持自动评估与人工评估:自动评估用于初筛与排序;人工评估用于最终决策与方向校准。你必须将评估结论转化为可复用的经验总结,以便后续任务更高效。

+ 0 - 5
examples/create/create.prompt

@@ -12,10 +12,5 @@ $system$
 下面是你本次执行过程要解决的核心问题
 {create_process}
 
-$user$
-
-输入信息
-{input}
-
 输出信息
 {output}

+ 6 - 0
examples/create/run.py

@@ -348,6 +348,12 @@ async def show_interactive_menu(
             live_trace = await store.get_trace(trace_id)
             actual_sequence = live_trace.last_sequence if live_trace and live_trace.last_sequence else current_sequence
             
+            # 触发干预后,自动执行一次经验总结
+            print("\n" + "=" * 60)
+            print("自动触发经验总结...")
+            print("=" * 60)
+            await perform_reflection(runner, trace_id, store, focus="")
+            
             return {
                 "action": "continue",
                 "messages": [{"role": "user", "content": text}],

+ 1 - 1
examples/create/tool/topic_search.py

@@ -23,7 +23,7 @@ async def _call_search_api(keywords: List[str]) -> Optional[List[Dict[str, Any]]
     payload = {"keywords": keywords}
 
     try:
-        async with httpx.AsyncClient(timeout=DEFAULT_TIMEOUT, trust_env=False) as client:
+        async with httpx.AsyncClient(timeout=DEFAULT_TIMEOUT) as client:
             resp = await client.post(url, json=payload)
             resp.raise_for_status()
             data = resp.json()