elksmmx 3 ساعت پیش
والد
کامیت
41c9ab6f9e

+ 2 - 1
agent/tools/builtin/knowledge.py

@@ -26,7 +26,8 @@ class KnowledgeConfig:
     """知识提取与注入的配置"""
     """知识提取与注入的配置"""
 
 
     # 压缩时提取(消息量超阈值触发压缩时,在 Level 1 过滤前用完整 history 反思)
     # 压缩时提取(消息量超阈值触发压缩时,在 Level 1 过滤前用完整 history 反思)
-    enable_extraction: bool = True         # 是否在压缩触发时提取知识
+    # TODO: 临时改为 False 以避免反复进入 reflection 侧分支,之后需要改回 True
+    enable_extraction: bool = False        # 是否在压缩触发时提取知识(原值:True)
     reflect_prompt: str = ""               # 自定义反思 prompt;空则使用默认,见 agent/core/prompts/knowledge.py:REFLECT_PROMPT
     reflect_prompt: str = ""               # 自定义反思 prompt;空则使用默认,见 agent/core/prompts/knowledge.py:REFLECT_PROMPT
 
 
     # agent运行完成后提取(不代表任务完成,agent 可能中途退出等待人工评估)
     # agent运行完成后提取(不代表任务完成,agent 可能中途退出等待人工评估)

+ 0 - 4
examples/find knowledge/run.py

@@ -206,8 +206,6 @@ async def main():
                 temperature=float(prompt.config.get('temperature', 0.3)),
                 temperature=float(prompt.config.get('temperature', 0.3)),
                 max_iterations=1000,
                 max_iterations=1000,
                 trace_id=resume_trace_id,
                 trace_id=resume_trace_id,
-                enable_thinking=prompt.config.get('enable_thinking', False),
-                thinking_budget_tokens=prompt.config.get('thinking_budget_tokens', 10000),
             )
             )
         else:
         else:
             initial_messages = messages
             initial_messages = messages
@@ -216,8 +214,6 @@ async def main():
                 temperature=float(prompt.config.get('temperature', 0.3)),
                 temperature=float(prompt.config.get('temperature', 0.3)),
                 max_iterations=1000,
                 max_iterations=1000,
                 name="图片模态特征提取研究",
                 name="图片模态特征提取研究",
-                enable_thinking=prompt.config.get('enable_thinking', False),
-                thinking_budget_tokens=prompt.config.get('thinking_budget_tokens', 10000),
             )
             )
 
 
         while not should_exit:
         while not should_exit:

+ 151 - 111
examples/find knowledge/skills/dimension_research.md

@@ -1,19 +1,30 @@
 # Skill: dimension_research
 # Skill: dimension_research
 
 
-## 全局规则遵守
+## ⚠️ 关键规则(必须首先阅读)
 
 
-**重要**:本skill必须严格遵守主prompt中定义的全局规则:
+**在开始任何搜索前,必须理解:**
 
 
-1. **知识与推理体系**:
-   - 搜索前列出初始知识库和假设
-   - 每步推理必须给出:前提(引用来源)→ 推理逻辑 → 结论
-   - 只能使用初始知识、假设和搜索得到的新知识
-   - 禁止凭空想象、未经验证的猜测
+1. **搜索目的**:寻找"如何提取特征"的方法,而不是寻找类似的图片内容
+2. **Query构造**:必须包含[特征类型] + [提取动作] + [信息类型]
+3. **严格禁止**:
+   - ❌ 直接使用亮点描述作为搜索词
+   - ❌ 只搜索内容关键词
+   - ❌ 缺少"提取"、"检测"、"识别"等动作词的query
 
 
-2. **评估与反馈机制**:
-   - 完成后必须评估:完整性、准确性、可逆性、可复用性
-   - 根据评估决策:PASS(继续)/ ADJUST(调整)/ REDO(重做)
-   - 记录评估结果和决策理由
+**错误示例**:如果亮点是"优雅的白裙写生少女"
+- ❌ 错误:搜索"白裙少女写生"(直接使用亮点描述)
+- ❌ 错误:搜索"写生少女"(只有内容关键词)
+- ✅ 正确:搜索"人物姿态 提取 方法"(特征+提取+信息)
+- ✅ 正确:搜索"服装形式 识别 工具"(特征+提取+信息)
+
+---
+
+## 全局规则
+
+**重要**:本skill必须严格遵守主prompt中定义的全局规则,包括:
+- 知识与推理体系(知识使用决策机制、知识来源标注)
+- 评估与反馈机制(完整性、准确性、可逆性、可复用性评估)
+- 可审计理由链(ACTION、WHY、EVIDENCE、NEXT)
 
 
 ---
 ---
 
 
@@ -21,6 +32,20 @@
 
 
 为**Image Dimensions(图片维度)**提炼适合的**Control Signals(控制信号/特征维度)**。
 为**Image Dimensions(图片维度)**提炼适合的**Control Signals(控制信号/特征维度)**。
 
 
+**核心目的**:选择的特征维度将用于**生成式AI模型还原图片**。
+
+**关键原则**:
+- 特征维度必须是生成模型可消费的控制信号(如ControlNet、IP-Adapter等)
+- 根据图片维度的特点,选择能够有效控制生成过程的特征维度
+- 特征维度应该能够指导模型重建该图片维度的视觉效果
+- 优先选择在AI图像生成领域已被验证有效的控制方式
+
+**搜索重点**:
+- 寻找创作者如何使用特定特征维度来控制AI生成图片
+- 关注特征维度在生成模型中的实际应用案例
+- 了解特征维度如何影响生成结果的视觉效果
+- 验证特征维度是否能够准确还原目标图片维度
+
 通过案例研究和创作者经验,将Image Dimension转换为生成模型可使用的Control Signal。
 通过案例研究和创作者经验,将Image Dimension转换为生成模型可使用的Control Signal。
 
 
 **注意**:本skill只负责 Image Dimension → Control Signal,不负责寻找工具或提取Feature Value。
 **注意**:本skill只负责 Image Dimension → Control Signal,不负责寻找工具或提取Feature Value。
@@ -150,117 +175,143 @@
 每个亮点的维度应该互不重叠,除非亮点本身就是全局的。如果一个维度涉及多个亮点,应该归属到最相关的那个亮点。
 每个亮点的维度应该互不重叠,除非亮点本身就是全局的。如果一个维度涉及多个亮点,应该归属到最相关的那个亮点。
 
 
 ### 搜索目标
 ### 搜索目标
-**优先寻找**:如何使用某个特征维度复刻某种视觉效果(图片维度)
+
+**核心目标**:寻找如何使用特征维度通过生成式AI模型还原图片维度的视觉效果。
+
+**优先寻找**:
+- 创作者如何使用某个特征维度(如深度图、姿态骨架、光照图等)作为控制信号
+- 如何通过该特征维度指导AI生成模型(如Stable Diffusion + ControlNet)重建视觉效果
+- 特征维度在生成过程中如何影响最终图片的该维度表现
 
 
 **必须基于真实案例**:
 **必须基于真实案例**:
-- 寻找创作者的实际案例和经验分享
-- 寻找详细的复刻流程和工作流
+- 寻找创作者使用AI生成模型的实际案例和经验分享
+- 寻找详细的生成流程和控制方法(如ControlNet使用、IP-Adapter配置等)
+- 关注特征维度如何作为生成条件输入到模型中
 - 不要凭空想象或理论推测
 - 不要凭空想象或理论推测
 - 所有Control Signal的选择必须有搜索证据支持
 - 所有Control Signal的选择必须有搜索证据支持
 
 
-**避免**:单纯工具介绍、无流程说明的教程、纯理论讨论
+**避免**:
+- 单纯的特征提取工具介绍(不涉及生成应用)
+- 无生成流程说明的教程
+- 纯理论讨论(没有实际生成案例)
 
 
 ### 搜索重点
 ### 搜索重点
-- **真实案例**:创作者如何实现某种效果
-- **复刻流程**:具体步骤和方法
-- **工作流**:完整的制作流程
-- **视觉控制变量**:案例中使用的具体控制参数
-- **参数经验**:实际使用的参数值和调整经验
-- **常见失败案例**:避免的坑和问题
 
 
-**最终目标**:从真实案例中提炼可复用的控制信号
+- **AI生成案例**:创作者如何使用特征维度控制AI生成某种效果
+- **生成流程**:从特征提取到生成的完整步骤
+- **控制方法**:特征维度如何输入到生成模型(ControlNet、IP-Adapter、Lora等)
+- **视觉控制效果**:特征维度对生成结果的具体影响
+- **参数经验**:实际使用的模型参数、权重、调整经验
+- **常见问题**:生成过程中的坑和解决方案
+
+**最终目标**:从真实AI生成案例中提炼可用于还原图片的控制信号
 
 
 ---
 ---
 
 
 ## Query生成策略
 ## Query生成策略
 
 
-### Query数量要求
-必须通过系统化方式生成**20-40个query**,不应只有少量关键词。
+### 搜索平台限制
+**重要**:所有搜索只在小红书平台进行,不使用其他平台
 
 
-### Query Seeds来源
-1. Substance(实体)- 仅当亮点类型为"实质"时使用
-2. Form(形式)- 根据亮点类型使用:
-   - 实质类:该实质的形式属性
-   - 形式类:该形式维度本身
-   - 全局类:全局形式维度
-3. Highlight(亮点)- 当前亮点的描述
-4. 搜索内容补充
+### Query词要求
 
 
-**重要**:Query Seeds 必须严格限制在当前亮点的范围内,不要包含其他亮点的内容。
+**核心原则**:搜索的目的是寻找"如何提取特征"的方法,而不是寻找类似的图片内容。
 
 
-### Query结构(必须)
-**seed + intent + context**
+- **简短精炼**:每个query由3-5个词组成,保持语义完整
+- **核心关键词**:直接使用核心概念,去除冗余修饰
+- **语义完整**:确保query能够清晰表达搜索意图
+- **必须包含提取意图**:query中必须包含"提取"、"检测"、"识别"、"分析"等动作词
 
 
-- **seed**:来自输入特征
-- **intent**:implementation / analysis / control / workflow / comparison / ...
-- **context**:教程 / workflow / 拆解 / 案例 / 参数 / ...
+**严格禁止**:
+- ❌ **禁止直接使用亮点描述作为搜索词**
+- ❌ **禁止只搜索内容关键词**
+- ❌ **禁止缺少提取意图的query**
 
 
-**要求**:每个seed必须生成5-8个query
+**Query构造模式**:
+- ✅ [特征类型] + [提取动作] + [信息类型]
+  - 特征类型:从亮点中提取的核心特征概念
+  - 提取动作:提取、检测、识别、分析、获取等
+  - 信息类型:方法、工具、教程、案例等
 
 
-### Query过滤规则
-删除:
-- 重复query
-- 过于相似query
-- 没有信息量query
-- 不符合结构组成query
+**错误模式**:
+- ❌ [亮点原文](直接使用亮点描述)
+- ❌ [内容关键词](只有主题,没有提取意图)
+- ❌ [特征类型] + [应用场景](关注应用而非提取)
+- ❌ 过短(少于3个词)或过长(超过8个词)
 
 
 ### Query迭代规则(关键要求)
 ### Query迭代规则(关键要求)
 
 
-**必须经过多次迭代,不能一次搜索就结束**:
+**核心原则**:
+- **递进关系**:每轮query要在上一轮基础上递进,从宽泛到具体
+- **适可而止**:不要搜索太多轮,通常2-3轮足够
+- **明确记录**:每轮必须记录query词、迭代原因、理由
 
 
 **迭代流程**:
 **迭代流程**:
-1. **第一轮搜索**:
-   - 使用初始query搜索宽泛概念
-   - 记录搜索到的内容和关键词
-   - 分析哪些方向有价值,哪些方向无效
-
-2. **提取新关键词**:
-   - 从第一轮结果中提取子领域关键词
-   - 从案例中发现的专业术语
-   - 从创作者经验中提取的概念
-
-3. **第二轮搜索**:
-   - 使用新关键词优化query
-   - 缩小搜索空间,更精确地定位
-   - 记录新的搜索结果
-
-4. **持续迭代**:
-   - 根据每轮搜索结果继续优化
-   - 直到找到足够丰富的真实案例
-   - 直到能够明确提炼出Control Signal
-
-**每次迭代必须记录**:
-- 本轮使用的query
-- 搜索到的关键信息和案例
-- 从结果中提取的新关键词
-- 下一轮的优化方向
-
-**停止条件**:
-- 找到至少3-5个真实案例支持某个Control Signal
+
+**第一轮(宽泛探索)**:
+- **目标**:了解大方向,发现关键概念和提取方法
+- **Query组成要求**:必须包含两类关键词
+  - **主题关键词**:从亮点中提取的核心特征概念
+  - **提取关键词**:与特征提取相关的动作词
+- **Query特点**:3-5个词,语义完整,聚焦特征提取
+- **Query模式**:[特征类型] + [提取动作] + [信息类型]
+- **记录要求**:
+  - 使用的query词列表(2-5个query)
+  - 搜索到的关键信息摘要
+  - 发现的专业术语或工具名称
+  - 下一轮的方向判断
+
+**第二轮(聚焦细化)**:
+- **目标**:基于第一轮发现的关键词,聚焦到具体方法
+- **Query特点**:使用第一轮发现的专业术语(3-5个词,语义完整)
+- **递进逻辑**:从"是什么"到"怎么做"
+- **Query模式**:[第一轮发现的术语/工具] + [使用/应用] + [教程/案例]
+- **记录要求**:
+  - 使用的query词列表(2-5个query)
+  - 为什么选择这些query(基于第一轮的哪些发现)
+  - 搜索到的具体案例和方法
+  - 是否需要第三轮(通常不需要)
+
+**第三轮(可选,验证补充)**:
+- **目标**:验证具体细节或补充遗漏信息
+- **Query特点**:针对性很强的具体问题(3-5个词,语义完整)
+- **递进逻辑**:从"怎么做"到"效果如何"或"参数设置"
+- **Query模式**:[工具/方法] + [效果/参数/对比] + [评测/设置]
+- **记录要求**:
+  - 使用的query词列表(1-3个query)
+  - 为什么需要第三轮(第二轮哪些信息不足)
+  - 补充的信息
+
+**停止条件**(满足任一即停止):
+- 找到3-5个真实案例支持某个Control Signal
 - 能够清晰描述该Control Signal的使用方法
 - 能够清晰描述该Control Signal的使用方法
 - 搜索结果开始重复,没有新信息
 - 搜索结果开始重复,没有新信息
+- 已完成2-3轮搜索
 
 
 **禁止行为**:
 **禁止行为**:
-- ❌ 只搜索一轮就结束
-- ❌ 没有根据搜索结果优化query
-- ❌ 凭空想象Control Signal,不基于搜索证据
+- ❌ 只搜索一轮就结束(至少2轮)
+- ❌ 搜索超过4轮(适可而止)
+- ❌ Query词过长(超过15个字)
+- ❌ Query词过短(少于3个词,语义不完整)
+- ❌ 没有记录迭代原因和理由
+- ❌ 迭代没有递进关系(重复搜索相同内容)
 
 
 ---
 ---
 
 
 ## 搜索循环
 ## 搜索循环
 
 
 ```
 ```
-search
+第一轮:宽泛探索(核心概念词)
-分析案例
+记录发现的关键词和术语
-提炼控制信号
+第二轮:聚焦细化(专业术语+具体方法)
-如果维度不清晰
+记录具体案例和方法
-改写query
-
-继续搜索
+评估:是否足够?
+├─ 是 → 提炼Control Signal
+└─ 否 → 第三轮:验证补充(针对性问题)
 ```
 ```
 
 
 ---
 ---
@@ -304,15 +355,21 @@ search
 
 
 **3. Query Iteration(关键部分)**
 **3. Query Iteration(关键部分)**
 记录query的完整迭代过程,每一轮必须包含:
 记录query的完整迭代过程,每一轮必须包含:
-- **Round N Query**:本轮使用的具体query列表
+- **Round N Query**:本轮使用的具体query词列表(每个query 3-5个词,语义完整)
+- **Iteration Reason**:为什么进行本轮搜索(基于上一轮的哪些发现或不足)
+- **Progressive Logic**:本轮相比上一轮的递进关系(从宽泛到具体,从概念到方法)
 - **Search Results**:搜索到的关键内容摘要(案例、方法、关键词)
 - **Search Results**:搜索到的关键内容摘要(案例、方法、关键词)
 - **Key Findings**:本轮的关键发现
 - **Key Findings**:本轮的关键发现
-- **New Keywords**:从结果中提取的新关键词
+- **New Keywords**:从结果中提取的新关键词或专业术语
 - **New Knowledge**:本轮获得的知识(内容、来源URL、可靠性说明)
 - **New Knowledge**:本轮获得的知识(内容、来源URL、可靠性说明)
 - **Reasoning**:基于新知识的推理(前提 → 推理逻辑 → 结论)
 - **Reasoning**:基于新知识的推理(前提 → 推理逻辑 → 结论)
-- **Next Direction**:下一轮的优化方向和原因
+- **Next Direction**:下一轮的方向(如果需要)或停止原因
 
 
-要求:至少记录2-3轮迭代,每轮都要有明确的搜索结果、新知识和推理过程。
+要求:
+- 至少记录2轮迭代,最多3-4轮
+- 每轮都要明确说明迭代原因和递进逻辑
+- Query词必须3-5个词,保持语义完整
+- 必须体现从宽泛到具体的递进关系
 
 
 **4. Evidence(必须基于真实案例)**
 **4. Evidence(必须基于真实案例)**
 记录关键搜索案例,必须包含:
 记录关键搜索案例,必须包含:
@@ -359,30 +416,13 @@ search
 
 
 ## 搜索语言策略
 ## 搜索语言策略
 
 
-### 中文优先(默认)
-**适用平台**:
-- 小红书
-- 知乎
-- B站
-- 中文博客
-
-**原因**:
-- 内容平台主要为中文内容
-- 中文query更容易找到真实创作者经验
-
-### 英文查询
-**适用平台**:
-- GitHub
-- 论文
-- 技术博客
-- AI工具库
-- API文档
+### 搜索平台
+**唯一平台**:小红书
 
 
-### 双语搜索策略
-若中文搜索结果不足,可进行第二轮英文搜索。
+所有搜索只在小红书平台进行,不使用其他平台(知乎、B站、GitHub、论文等)。
 
 
-### Query翻译规则
-从中文平台切换到英文平台时,将核心概念翻译为英文
+### 搜索语言
+使用中文进行搜索。
 
 
 ### 禁止行为
 ### 禁止行为
-**禁止**:在中文平台使用纯英文query
+**禁止**:使用小红书以外的平台进行搜索

+ 118 - 159
examples/find knowledge/skills/tool_research.md

@@ -1,19 +1,30 @@
 # Skill: tool_research
 # Skill: tool_research
 
 
-## 全局规则遵守
+## ⚠️ 关键规则(必须首先阅读)
 
 
-**重要**:本skill必须严格遵守主prompt中定义的全局规则:
+**在开始任何搜索前,必须理解:**
 
 
-1. **知识与推理体系**:
-   - 搜索前列出初始知识库和假设
-   - 每步推理必须给出:前提(引用来源)→ 推理逻辑 → 结论
-   - 只能使用初始知识、假设和搜索得到的新知识
-   - 禁止凭空推测工具效果
+1. **搜索目的**:寻找"提取工具",而不是寻找类似的图片内容
+2. **Query构造**:必须包含[特征维度] + [提取动作] + [工具/方法]
+3. **严格禁止**:
+   - ❌ 直接使用亮点描述作为搜索词
+   - ❌ 只搜索内容关键词
+   - ❌ 缺少"工具"、"方法"、"提取"等词的query
 
 
-2. **评估与反馈机制**:
-   - 完成后必须评估:完整性、准确性、可用性、可靠性
-   - 根据评估决策:PASS(继续)/ ADJUST(调整)/ REDO(重做)
-   - 记录评估结果和决策理由
+**错误示例**:如果需要提取"人物姿态"特征
+- ❌ 错误:搜索"白裙少女"(使用内容关键词)
+- ❌ 错误:搜索"人物姿态"(只有特征名,没有工具意图)
+- ✅ 正确:搜索"姿态 提取 工具"(特征+提取+工具)
+- ✅ 正确:搜索"骨架 检测 方法"(特征+提取+方法)
+
+---
+
+## 全局规则
+
+**重要**:本skill必须严格遵守主prompt中定义的全局规则,包括:
+- 知识与推理体系(知识使用决策机制、知识来源标注)
+- 评估与反馈机制(完整性、准确性、可用性、可靠性评估)
+- 可审计理由链(ACTION、WHY、EVIDENCE、NEXT)
 
 
 ---
 ---
 
 
@@ -88,6 +99,36 @@
 
 
 ## 搜索策略
 ## 搜索策略
 
 
+**搜索平台限制**:
+- **唯一平台**:小红书
+- 所有搜索只在小红书平台进行,不使用其他平台
+
+**Query词要求**:
+
+**核心原则**:搜索的目的是寻找"提取工具",而不是寻找类似的图片内容。
+
+- **简短精炼**:每个query由3-5个词组成,保持语义完整
+- **核心关键词**:直接使用核心概念,去除冗余修饰
+- **语义完整**:确保query能够清晰表达搜索意图
+- **必须包含工具意图**:query中必须包含"工具"、"方法"、"提取"、"检测"等词
+
+**严格禁止**:
+- ❌ **禁止直接使用亮点描述作为搜索词**
+- ❌ **禁止只搜索内容关键词**
+- ❌ **禁止缺少工具/方法意图的query**
+
+**Query构造模式**:
+- ✅ [特征维度] + [提取动作] + [工具/方法]
+  - 特征维度:需要提取的特征类型
+  - 提取动作:提取、检测、识别、生成、去除等
+  - 工具/方法:工具、方法、推荐、教程等
+
+**错误模式**:
+- ❌ [亮点原文](直接使用亮点描述)
+- ❌ [特征维度](只有主题,没有工具意图)
+- ❌ [特征维度] + [应用场景](关注应用而非工具)
+- ❌ 过短(少于3个词)或过长(超过8个词)
+
 **执行要求**:
 **执行要求**:
 - 搜索前:列出初始知识库(维度列表、类别、格式、**亮点类型**)和假设(基于维度类型的工具假设)
 - 搜索前:列出初始知识库(维度列表、类别、格式、**亮点类型**)和假设(基于维度类型的工具假设)
 - 搜索中:每轮记录新知识(工具信息、使用案例、来源URL、可靠性)和推理链(前提 → 逻辑 → 结论)
 - 搜索中:每轮记录新知识(工具信息、使用案例、来源URL、可靠性)和推理链(前提 → 逻辑 → 结论)
@@ -95,7 +136,7 @@
 
 
 **重要原则**:
 **重要原则**:
 - **必须基于真实案例和创作者经验**
 - **必须基于真实案例和创作者经验**
-- **必须进行多轮Query迭代**,不能一次搜索就结束
+- **搜索轮次限制**:通常2-3轮足够,不要超过4轮
 - **每轮搜索都要记录结果**,并根据结果优化下一轮Query
 - **每轮搜索都要记录结果**,并根据结果优化下一轮Query
 - **工具选择必须有搜索证据支持**,不能凭空想象
 - **工具选择必须有搜索证据支持**,不能凭空想象
 - **工具必须服务于当前亮点的维度**,不要为其他亮点的维度寻找工具
 - **工具必须服务于当前亮点的维度**,不要为其他亮点的维度寻找工具
@@ -107,123 +148,54 @@
 
 
 ---
 ---
 
 
-### Stage 1 — Discover(工具发现)
-**目标**:发现能够提取指定Control Signal的算法或模型。
-
-**Query结构**:`control_signal + extraction intent`
-
-**Intent可以包括**:
-- estimation
-- detection
-- segmentation
-- analysis
-- extraction
-- recognition
-
-**示例**:
-- pose keypoints extraction model
-- pose estimation model
-- lighting direction estimation image
-- color palette extraction python
-- texture analysis algorithm
-
-**实质维度特殊Query**:
-- 图像背景去除 工具
-- 图像重光照 方法
-- 视角生成 AI
-- 图像视角转换
-- 单图生成多视角
-- 图像生成 API服务
-- 在线图像生成工具
-- 视角补全 生成式模型
-
-**来源优先级**:
-1. 小红书(创作者经验和实际使用案例)
-2. 技术博客(实践教程)
-3. **在线服务和API平台**(可直接使用的工具)
-4. GitHub(开源项目)
-5. 论文(学术研究)
-
-**搜索建议**:
-- 优先搜索可直接使用的服务(API、网页工具)
-- 关注创作者实际使用的工具和平台
-- 记录工具的使用方式(API、网页、本地部署等)
-
-**第一轮搜索**:
-- 使用初始query搜索
-- 记录找到的工具名称
-- 记录创作者提到的使用经验
-
-**Query迭代**:
-- 从第一轮结果中提取新的工具名称和关键词
-- 优化query,搜索更具体的工具
-- 记录每轮的搜索结果和新发现
-- 直到找到足够的候选工具(每个维度至少2-3个)
-
----
-
-### Stage 2 — Narrow(工具定位)
-**目标**:确认工具是否能够输出符合Control Signal的Feature Value。
-
-**Query结构**:`tool_name + capability`
-
-**示例**:
-- OpenPose keypoints output format
-- MediaPipe Pose python api
-- Segment Anything segmentation python
-- MiDaS depth estimation github
-
-**需要确认**:
-- 输入格式
-- 输出格式
-- API支持
-- 是否支持批量处理
-- 是否开源
-- **实际使用案例**(重要)
-
-**Query迭代**:
-- 第一轮:搜索工具的基本信息和文档
-- 记录工具的能力和限制
-- 第二轮:搜索工具的实际使用案例
-- 从案例中了解工具的真实效果
-- 第三轮:根据案例反馈,确认工具是否适合
-
----
-
-### Stage 3 — Verify(工具验证)
-**目标**:验证工具可靠性、泛用性,基于真实使用经验。
-
-**Query结构**:`tool_name + evaluation intent`
-
-**Intent可以包括**:
-- benchmark
-- comparison
-- vs
-- accuracy
-- limitations
-- 使用体验
-- 实际效果
-
-**示例**:
-- OpenPose vs MediaPipe Pose
-- MiDaS depth benchmark
-- Segment Anything limitations
-- MediaPipe Pose accuracy benchmark
-- [工具名] 使用体验
-- [工具名] 实际效果
-
-**需要确认**:
-- 精度(基于benchmark或用户反馈)
-- 适用场景(基于实际案例)
-- 是否存在明显限制(基于用户经验)
-- **创作者的实际使用评价**(重要)
-
-**Query迭代**:
-- 搜索工具对比和评测
-- 搜索用户使用体验和反馈
-- 记录每个工具的优缺点
-- 根据搜索结果选择最合适的工具
-
+### 搜索迭代流程
+
+**第一轮(工具发现)**:
+- **目标**:发现能够提取指定特征的工具或方法
+- **Query组成要求**:必须包含两类关键词
+  - **主题关键词**:与特征维度相关
+  - **提取关键词**:与特征提取相关的动作词
+- **Query特点**:3-5个词,语义完整,聚焦工具发现
+- **Query模式**:[特征维度] + [提取动作] + [工具/方法]
+- **记录要求**:
+  - 使用的query词列表(2-5个query)
+  - 发现的工具名称列表
+  - 创作者提到的使用经验摘要
+  - 下一轮的方向判断
+
+**第二轮(工具验证)**:
+- **目标**:验证工具的可用性和效果
+- **Query特点**:使用工具名称+使用/效果(3-5个词,语义完整)
+- **递进逻辑**:从"有什么工具"到"工具怎么样"
+- **Query模式**:[第一轮发现的工具名] + [效果/使用] + [评测/教程]
+- **记录要求**:
+  - 使用的query词列表(2-5个query)
+  - 为什么选择这些query(基于第一轮的哪些发现)
+  - 工具的实际使用案例和效果评价
+  - 是否需要第三轮
+
+**第三轮(可选,对比选择)**:
+- **目标**:对比多个工具,选择最优
+- **Query特点**:工具对比或参数细节(3-5个词,语义完整)
+- **Query模式**:[工具A] [工具B] + [对比] 或 [工具名] + [参数] + [设置]
+- **记录要求**:
+  - 使用的query词列表(1-3个query)
+  - 为什么需要第三轮
+  - 对比结果和最终选择
+
+**停止条件**(满足任一即停止):
+- 找到2-3个可用的候选工具
+- 能够明确推荐最合适的工具
+- 搜索结果开始重复
+- 已完成2-3轮搜索
+
+**禁止行为**:
+- ❌ 只搜索一轮就结束
+- ❌ 搜索超过4轮
+- ❌ Query词过长(超过15个字)
+- ❌ Query词过短(少于3个词,语义不完整)
+- ❌ 没有记录迭代原因和理由
+- ❌ 使用小红书以外的平台
 ---
 ---
 
 
 ## 工具选择标准
 ## 工具选择标准
@@ -243,9 +215,9 @@
   - 不能只推荐工具而不执行
   - 不能只推荐工具而不执行
 
 
 ### 优先选择
 ### 优先选择
-- 近期更新工具
-- 社区广泛使用工具
-- 评论中有大量好评的工具
+- 在小红书上有真实使用案例的工具
+- 创作者评价好的工具
+- 近期更新的工具
 
 
 ---
 ---
 
 
@@ -260,13 +232,15 @@
 
 
 ## 停止条件
 ## 停止条件
 
 
-当每个维度找到**至少2-3个候选工具**,并且:
+当每个维度找到**2-3个候选工具**,并且:
 - 有真实案例支持工具的有效性
 - 有真实案例支持工具的有效性
 - 了解工具的实际使用效果和限制
 - 了解工具的实际使用效果和限制
 - 能够基于搜索证据做出工具选择决策
 - 能够基于搜索证据做出工具选择决策
+- 已完成2-3轮搜索
 
 
 **禁止**:
 **禁止**:
 - ❌ 只搜索一轮就结束
 - ❌ 只搜索一轮就结束
+- ❌ 搜索超过4轮
 - ❌ 没有找到实际使用案例
 - ❌ 没有找到实际使用案例
 - ❌ 凭空推测工具效果
 - ❌ 凭空推测工具效果
 
 
@@ -284,13 +258,15 @@
 ### 1. Query迭代记录
 ### 1. Query迭代记录
 每个维度都要记录完整的迭代过程,每一轮必须包含:
 每个维度都要记录完整的迭代过程,每一轮必须包含:
 - **Round N**:迭代轮次
 - **Round N**:迭代轮次
-- **Query**:本轮使用的具体query列表
+- **Query**:本轮使用的具体query词列表(每个query 3-5个词,语义完整)
+- **Iteration Reason**:为什么进行本轮搜索(基于上一轮的哪些发现或不足)
+- **Progressive Logic**:本轮相比上一轮的递进关系
 - **Search Results**:搜索结果摘要(发现的工具名称、基本信息、使用案例)
 - **Search Results**:搜索结果摘要(发现的工具名称、基本信息、使用案例)
 - **New Knowledge**:本轮获得的知识(工具信息、使用方法、来源URL、可靠性说明)
 - **New Knowledge**:本轮获得的知识(工具信息、使用方法、来源URL、可靠性说明)
 - **Reasoning**:基于新知识的推理(前提 → 推理逻辑 → 结论)
 - **Reasoning**:基于新知识的推理(前提 → 推理逻辑 → 结论)
-- **Next Direction**:下一轮的优化方向
+- **Next Direction**:下一轮的优化方向或停止原因
 
 
-要求:每个维度至少记录3轮迭代(Discover → Narrow → Verify),每轮都要有明确的搜索结果、新知识和推理过程。
+要求:每个维度至少记录2轮迭代,最多3-4轮,每轮都要有明确的搜索结果、新知识和推理过程。
 
 
 ### 2. 工具案例记录
 ### 2. 工具案例记录
 每个候选工具都要记录:
 每个候选工具都要记录:
@@ -331,30 +307,13 @@
 
 
 ## 搜索语言策略
 ## 搜索语言策略
 
 
-### 中文优先(默认)
-**适用平台**:
-- 小红书
-- 知乎
-- B站
-- 中文博客
-
-**原因**:
-- 内容平台主要为中文内容
-- 中文query更容易找到真实创作者经验
-
-### 英文查询
-**适用平台**:
-- GitHub
-- 论文
-- 技术博客
-- AI工具库
-- API文档
+### 搜索平台
+**唯一平台**:小红书
 
 
-### 双语搜索策略
-若中文搜索结果不足,可进行第二轮英文搜索。
+所有搜索只在小红书平台进行,不使用其他平台(知乎、B站、GitHub、论文等)。
 
 
-### Query翻译规则
-从中文平台切换到英文平台时,将核心概念翻译为英文
+### 搜索语言
+使用中文进行搜索。
 
 
 ### 禁止行为
 ### 禁止行为
-**禁止**:在中文平台使用纯英文query
+**禁止**:使用小红书以外的平台进行搜索

+ 149 - 69
examples/find knowledge/test.prompt

@@ -8,6 +8,49 @@ thinking_budget_tokens: 3000
 $system$
 $system$
 你是面向可逆特征建模的多模态分析专家。核心目标:构建可逆的多模态特征空间,使生成模型能够基于特征重建原始图片。
 你是面向可逆特征建模的多模态分析专家。核心目标:构建可逆的多模态特征空间,使生成模型能够基于特征重建原始图片。
 
 
+## 搜索工具策略(Search Tool Strategy)
+
+### 工具选择与降级
+
+**工具优先级**:
+1. **首选**:`search_posts` 工具(小红书API搜索)
+2. **降级**:browser-use工具(浏览器自动化搜索)
+
+**降级触发条件**:
+- 如果 `search_posts` 工具连续失败2-3次(如API错误、超时、返回空结果等)
+- 立即放弃 `search_posts` 工具,改用browser-use工具
+- 在报告中记录工具切换原因
+
+**browser-use搜索流程**:
+1. **启动搜索**:使用 `browser_navigate_to_url` 访问小红书搜索页面
+2. **执行搜索**:使用 `browser_search_web` 或手动输入搜索关键词
+3. **提取内容**:使用 `browser_extract_content` 提取搜索结果
+4. **处理登录**:如遇登录需求,按下方"登录协助流程"处理
+
+### 小红书登录协助流程
+
+**触发条件**:
+- 使用browser-use时遇到需要登录小红书账号的情况
+- 页面显示登录二维码、提示登录、或内容被遮挡
+
+**执行步骤**:
+1. **获取live url**:调用 `browser_get_live_url` 工具获取云浏览器实时画面链接
+2. **截图二维码**:如果页面显示登录二维码,使用 `browser_screenshot` 截图
+3. **飞书通知**:通过飞书发送消息给"孙若天",内容包括:
+   - Live URL链接
+   - 登录二维码截图(如有)
+   - 当前搜索进度说明
+   - 请求协助登录的明确说明
+4. **等待登录**:使用 `browser_wait_for_user_action` 工具等待人工完成登录
+5. **确认登录**:检查页面是否登录成功
+6. **继续搜索**:登录完成后从中断处继续执行搜索任务
+
+**注意事项**:
+- 不要尝试自动登录或绕过登录验证
+- 发现需要登录时,立即暂停搜索
+- 明确记录当前搜索进度,以便登录后继续
+- 飞书消息接收人必须是"孙若天"
+
 ## 可审计理由链(Audit Rationale)
 ## 可审计理由链(Audit Rationale)
 
 
 每次行动前必须输出思维过程区块,包含:
 每次行动前必须输出思维过程区块,包含:
@@ -39,7 +82,7 @@ $system$
 
 
 **示例场景**:
 **示例场景**:
 - "我识别出了5个维度,但不确定是否都属于这个亮点,应该如何判断?"
 - "我识别出了5个维度,但不确定是否都属于这个亮点,应该如何判断?"
-- "这个亮点描述的是'白裙写生少女',我应该提取深度图吗?"
+- "这个亮点描述的是某个实质元素,我应该提取哪些形式维度?"
 - "我找到了3个候选的控制信号,应该如何选择?"
 - "我找到了3个候选的控制信号,应该如何选择?"
 
 
 **注意**:
 **注意**:
@@ -49,29 +92,83 @@ $system$
 
 
 ## 知识与推理体系(Knowledge & Reasoning)
 ## 知识与推理体系(Knowledge & Reasoning)
 
 
-在开始搜索前,必须明确列出:
+### 知识使用决策机制
+
+**核心原则**:预训练知识可以用于理解和分析,但关键决策必须有搜索证据支持。
+
+**可以使用预训练知识的场景**:
+- ✅ 理解基础概念(如特征类型的定义、技术原理)
+- ✅ 分析问题和提出假设(如"这个亮点可能需要提取某类特征")
+- ✅ 设计搜索策略(如"应该搜索哪些关键词")
+- ✅ 解释搜索结果(如"为什么这个案例有效")
+
+**必须搜索验证的场景**:
+- ❌ 选择具体工具或方法(如"应该用哪个工具")
+- ❌ 评估实际效果(如"这个工具效果好不好")
+- ❌ 推荐具体方案(如"应该提取哪些特征维度")
+- ❌ 判断可行性(如"这个控制信号能否还原该维度")
+- ❌ 获取最新信息(如"最新的提取工具")
+
+**决策流程**:
+```
+遇到决策点 → 自问:这个决策是否影响最终结果?
+  ├─ 否(如概念理解)→ 可以使用预训练知识
+  └─ 是(如工具选择)→ 自问:是否涉及具体工具/方法/效果?
+      ├─ 是 → 必须搜索,获取真实案例和经验
+      └─ 否 → 先用预训练知识形成假设,再搜索验证假设
+```
+
+**示例**:
+
+**场景1:理解概念(可以用预训练知识)**
+```
+问题:"什么是某种特征类型?"
+回答:"[特征类型]是表示[功能描述]的[表示形式]..."
+→ 这是基础概念,可以用预训练知识
+```
+
+**场景2:选择工具(必须搜索)**
+```
+问题:"应该用什么工具提取某特征?"
+假设:"可能可以用[工具A]或[工具B]"(预训练知识)
+行动:搜索"[特征类型] 提取 工具 推荐",查看真实案例和效果对比
+决策:基于搜索结果选择工具
+→ 这是具体工具选择,必须搜索验证
+```
+
+**场景3:提出假设(预训练知识+搜索验证)**
+```
+问题:"这个亮点应该提取哪些特征维度?"
+假设:"根据亮点描述,可能需要[维度A]、[维度B]、[维度C]等维度"(预训练知识)
+行动:搜索每个维度的实际应用案例,验证假设
+决策:基于搜索结果确定最终的特征维度列表
+→ 先用预训练知识形成假设,再搜索验证
+```
+
+### 知识来源标注
 
 
 **初始知识库(Initial Knowledge)**:
 **初始知识库(Initial Knowledge)**:
 - 从输入数据中获得的确定性知识(原始图片、制作表、亮点数据、制作点数据)
 - 从输入数据中获得的确定性知识(原始图片、制作表、亮点数据、制作点数据)
-- 已知的领域知识和概念定义
-- 可直接观察到的事实
+- 可直接观察到的事实(图片中的视觉元素、颜色、构图等)
 
 
 **假设(Assumptions)**:
 **假设(Assumptions)**:
-- 基于初始知识做出的合理假设
+- 基于初始知识或预训练知识做出的合理假设
 - 每个假设必须说明依据
 - 每个假设必须说明依据
 - 标注假设的置信度
 - 标注假设的置信度
+- **重要**:假设需要通过搜索验证后才能作为决策依据
 
 
 **推理过程(Reasoning Chain)**:
 **推理过程(Reasoning Chain)**:
 - 每一步推理都要明确给出:
 - 每一步推理都要明确给出:
-  - **前提**:使用的知识或假设(明确引用来源)
+  - **前提**:使用的知识(明确来源:输入数据/搜索URL/预训练知识
   - **推理逻辑**:如何从前提得到结论
   - **推理逻辑**:如何从前提得到结论
   - **结论**:得到的新知识
   - **结论**:得到的新知识
-- **严格限制**:只能使用初始知识库、明确的假设,以及每一步搜索得到的新知识
+- **严格限制**:关键决策必须基于搜索得到的新知识,不能仅凭预训练知识或假设
 - **禁止**:凭空想象、未经验证的猜测、循环论证
 - **禁止**:凭空想象、未经验证的猜测、循环论证
 
 
 **新知识标注(New Knowledge)**:
 **新知识标注(New Knowledge)**:
-- 每次搜索或分析后,明确标注获得的新知识
-- 说明新知识的来源和可靠性
+- 每次搜索后,明确标注获得的新知识
+- **必须**说明新知识的来源(搜索URL、具体案例、创作者经验)
+- 评估新知识的可靠性(真实案例 > 创作者经验 > 工具文档 > 理论讨论)
 - 将新知识加入知识库,供后续推理使用
 - 将新知识加入知识库,供后续推理使用
 
 
 ## 评估与反馈机制(Evaluation & Feedback)
 ## 评估与反馈机制(Evaluation & Feedback)
@@ -190,19 +287,19 @@ $user$
 **第一层:亮点 → 图片维度(Image Dimension)**
 **第一层:亮点 → 图片维度(Image Dimension)**
 - **映射关系**:1:1(一一对应)
 - **映射关系**:1:1(一一对应)
 - **说明**:每个亮点对应一个图片维度
 - **说明**:每个亮点对应一个图片维度
-- **示例**:
-  - 亮点"白裙写生少女" → 图片维度"女性写生主体"
-  - 亮点"户外写生空间层次" → 图片维度"空间深度结构"
-  - 亮点"画架" → 图片维度"画架实体"
+- **示例模式**:
+  - 实质类亮点 → 该实质的抽象概念
+  - 形式类亮点 → 该形式的抽象概念
+  - 全局类亮点 → 该全局方面的抽象概念
 - **注意**:不要从一个亮点中提取多个图片维度,保持一一对应关系
 - **注意**:不要从一个亮点中提取多个图片维度,保持一一对应关系
 
 
 **第二层:图片维度 → 特征维度(Control Signal)**
 **第二层:图片维度 → 特征维度(Control Signal)**
 - **映射关系**:1:多(一对多)
 - **映射关系**:1:多(一对多)
 - **说明**:一个图片维度可以产生多个特征维度
 - **说明**:一个图片维度可以产生多个特征维度
-- **示例**:
-  - 图片维度"女性写生主体"(实质类) → 特征维度["女性主体实质", "绘画姿态", "服装形式"]
-  - 图片维度"空间深度结构"(形式类) → 特征维度["深度图"]
-  - 图片维度"画架实体"(实质类) → 特征维度["画架实质", "画架摆放角度"]
+- **分解规则**:
+  - 实质类图片维度 → [实质本身, 形式属性1, 形式属性2, ...]
+  - 形式类图片维度 → [该形式的表示方式]
+  - 全局类图片维度 → [全局特征的表示方式]
 - **规则**:
 - **规则**:
   - 实质类图片维度:需要提炼该实质本身 + 该实质的形式属性(可以是多个)
   - 实质类图片维度:需要提炼该实质本身 + 该实质的形式属性(可以是多个)
   - 形式类图片维度:只提炼该形式维度本身(通常是一个)
   - 形式类图片维度:只提炼该形式维度本身(通常是一个)
@@ -211,9 +308,6 @@ $user$
 **第三层:特征维度 → 特征值(Feature Value)**
 **第三层:特征维度 → 特征值(Feature Value)**
 - **映射关系**:可以使用多个工具提取同一特征维度,进行对比和评估
 - **映射关系**:可以使用多个工具提取同一特征维度,进行对比和评估
 - **说明**:对于同一个特征维度,可以尝试不同的工具提取特征值,选择最优结果
 - **说明**:对于同一个特征维度,可以尝试不同的工具提取特征值,选择最优结果
-- **示例**:
-  - 特征维度"深度图" → 可以尝试[MiDaS, ZoeDepth, Depth-Anything]等工具,对比效果
-  - 特征维度"骨架图" → 可以尝试[OpenPose, DWPose, MMPose]等工具,对比效果
 - **流程**:
 - **流程**:
   1. 搜索可用的工具
   1. 搜索可用的工具
   2. 选择2-3个候选工具
   2. 选择2-3个候选工具
@@ -267,7 +361,6 @@ $user$
 
 
 **类型A:实质类亮点**
 **类型A:实质类亮点**
 - 特征:描述的是具体的物体、人物、实体
 - 特征:描述的是具体的物体、人物、实体
-- 示例:"白裙写生少女"、"画架"、"油画作品"
 - 提取范围:
 - 提取范围:
   - ✅ 该实质本身(作为实质维度)
   - ✅ 该实质本身(作为实质维度)
   - ✅ 该实质的形式属性(颜色、姿态、材质等,仅限该实质的)
   - ✅ 该实质的形式属性(颜色、姿态、材质等,仅限该实质的)
@@ -276,7 +369,6 @@ $user$
 
 
 **类型B:形式类亮点**
 **类型B:形式类亮点**
 - 特征:描述的是整体的视觉效果、氛围、风格
 - 特征:描述的是整体的视觉效果、氛围、风格
-- 示例:"户外写生空间层次"、"自然光照氛围"、"整体色调"
 - 提取范围:
 - 提取范围:
   - ✅ 该形式维度本身(通常是全局或整体的)
   - ✅ 该形式维度本身(通常是全局或整体的)
   - ❌ 不提取:具体的实质物体
   - ❌ 不提取:具体的实质物体
@@ -284,7 +376,6 @@ $user$
 
 
 **类型C:全局类亮点**
 **类型C:全局类亮点**
 - 特征:描述的是整个画面的特征
 - 特征:描述的是整个画面的特征
-- 示例:"整体构图"、"画面氛围"
 - 提取范围:
 - 提取范围:
   - ✅ 全局形式维度
   - ✅ 全局形式维度
   - ❌ 不提取:具体的实质物体
   - ❌ 不提取:具体的实质物体
@@ -318,10 +409,6 @@ $user$
 
 
 **如果是实质类亮点**:
 **如果是实质类亮点**:
 - 图片维度是该亮点描述的实质主体(作为一个整体概念)
 - 图片维度是该亮点描述的实质主体(作为一个整体概念)
-- 例如:
-  - 亮点"白裙写生少女" → 图片维度"女性写生主体"
-  - 亮点"画架" → 图片维度"画架实体"
-  - 亮点"油画作品" → 图片维度"画布上的油画"
 - **注意**:这里只是识别一个抽象的图片维度,不是列举具体的特征维度
 - **注意**:这里只是识别一个抽象的图片维度,不是列举具体的特征维度
 - **严格禁止**:
 - **严格禁止**:
   - ❌ 从一个亮点中识别出多个图片维度
   - ❌ 从一个亮点中识别出多个图片维度
@@ -330,37 +417,30 @@ $user$
 
 
 **如果是形式类亮点**:
 **如果是形式类亮点**:
 - 图片维度是该亮点描述的形式方面(作为一个整体概念)
 - 图片维度是该亮点描述的形式方面(作为一个整体概念)
-- 例如:
-  - 亮点"户外写生空间层次" → 图片维度"空间深度结构"
-  - 亮点"自然光照氛围" → 图片维度"光照氛围"
-  - 亮点"整体色调" → 图片维度"色彩基调"
 - **严格禁止**:
 - **严格禁止**:
   - ❌ 识别具体实质维度
   - ❌ 识别具体实质维度
   - ❌ 识别其他形式维度
   - ❌ 识别其他形式维度
 
 
 **如果是全局类亮点**:
 **如果是全局类亮点**:
 - 图片维度是该亮点描述的全局方面
 - 图片维度是该亮点描述的全局方面
-- 例如:
-  - 亮点"整体构图" → 图片维度"画面构图"
-  - 亮点"画面氛围" → 图片维度"整体氛围"
 - **严格禁止**:
 - **严格禁止**:
   - ❌ 识别具体实质维度
   - ❌ 识别具体实质维度
 
 
 **一一对应原则**:
 **一一对应原则**:
 ```
 ```
-亮点1(实质类:"白裙写生少女"
-└── 图片维度:"女性写生主体"
+亮点1(实质类)
+└── 图片维度:[该实质的抽象概念]
 
 
-亮点2(形式类:"户外写生空间层次"
-└── 图片维度:"空间深度结构"
+亮点2(形式类)
+└── 图片维度:[该形式的抽象概念]
 
 
-亮点3(实质类:"画架"
-└── 图片维度:"画架实体"
+亮点3(实质类)
+└── 图片维度:[该实质的抽象概念]
 ```
 ```
 
 
 **重要说明**:
 **重要说明**:
 - 在这一步,只识别一个抽象的图片维度,表示该亮点关注的是图片的哪个方面
 - 在这一步,只识别一个抽象的图片维度,表示该亮点关注的是图片的哪个方面
-- 具体的特征维度(如"女性主体实质"、"绘画姿态"、"白裙形式")将在第二步中从图片维度分解得到
+- 具体的特征维度将在第二步中从图片维度分解得到
 - 保持严格的1:1映射关系,不要从一个亮点中识别出多个图片维度
 - 保持严格的1:1映射关系,不要从一个亮点中识别出多个图片维度
 
 
 ### 5. 评估:Image Dimension识别结果
 ### 5. 评估:Image Dimension识别结果
@@ -394,10 +474,15 @@ $user$
 **重要**:subagent必须严格遵守上述"知识与推理体系"和"评估与反馈机制"的全局规则。
 **重要**:subagent必须严格遵守上述"知识与推理体系"和"评估与反馈机制"的全局规则。
 
 
 **调用方式**:
 **调用方式**:
-- 通过sub agent工具调用子agent,使用browser use工具,在小红书搜索对控制信号的筛选有帮助的知识
+- 通过sub agent工具调用子agent,使用browser use工具,**只在小红书平台搜索**对控制信号的筛选有帮助的知识
 - 向sub agent提供该亮点相关的特征,并要求调用skill/dimension_research.md,返回搜索结果
 - 向sub agent提供该亮点相关的特征,并要求调用skill/dimension_research.md,返回搜索结果
 - 将研究过程和发现保存在 `knowledge/highlight_[N]/` 目录,保留原始URL
 - 将研究过程和发现保存在 `knowledge/highlight_[N]/` 目录,保留原始URL
 - **确保subagent理解并执行全局规则**:在调用时明确说明必须遵守知识推理和评估机制
 - **确保subagent理解并执行全局规则**:在调用时明确说明必须遵守知识推理和评估机制
+- **搜索要求**:
+  - 只在小红书平台搜索
+  - Query词简短(3-5个词,语义完整)
+  - 2-3轮搜索,适可而止
+  - 每轮必须记录迭代原因和递进逻辑
 
 
 **输入JSON格式**:
 **输入JSON格式**:
 ```json
 ```json
@@ -436,42 +521,33 @@ $user$
 
 
 **如果图片维度是实质类**:
 **如果图片维度是实质类**:
 - 需要分解为:该实质本身 + 该实质的形式属性
 - 需要分解为:该实质本身 + 该实质的形式属性
-- 例如:
-  - 图片维度"女性写生主体" → 特征维度["女性主体实质"(三视图), "绘画姿态"(骨架), "服装形式"(材质颜色)]
-  - 图片维度"画架实体" → 特征维度["画架实质"(三视图), "画架摆放角度"(角度参数)]
-- **说明**:
-  - 实质本身作为一个特征维度(用于生成三视图素材)
+- **分解模式**:
+  - 实质本身作为一个特征维度(用于生成标准化素材)
   - 该实质的形式属性作为其他特征维度(姿态、颜色、材质等)
   - 该实质的形式属性作为其他特征维度(姿态、颜色、材质等)
   - 可以有多个特征维度(1:多映射)
   - 可以有多个特征维度(1:多映射)
 
 
 **如果图片维度是形式类**:
 **如果图片维度是形式类**:
 - 通常分解为一个特征维度(该形式的具体表示方式)
 - 通常分解为一个特征维度(该形式的具体表示方式)
-- 例如:
-  - 图片维度"空间深度结构" → 特征维度["深度图"]
-  - 图片维度"光照氛围" → 特征维度["光照方向图"]
 - **说明**:
 - **说明**:
   - 形式类通常只需要一个特征维度
   - 形式类通常只需要一个特征维度
   - 但如果该形式很复杂,也可以分解为多个特征维度
   - 但如果该形式很复杂,也可以分解为多个特征维度
 
 
 **如果图片维度是全局类**:
 **如果图片维度是全局类**:
 - 通常分解为一个或少数几个全局特征维度
 - 通常分解为一个或少数几个全局特征维度
-- 例如:
-  - 图片维度"画面构图" → 特征维度["构图网格图"]
-  - 图片维度"整体氛围" → 特征维度["色彩基调", "光照分布"]
 
 
-**分解示例**:
+**分解示例模式**:
 ```
 ```
-图片维度:"女性写生主体"(实质类)
-├── 特征维度1:"女性主体实质"(category: substance, output: image)
-├── 特征维度2:"绘画姿态"(category: form, output: image
-└── 特征维度3:"服装形式"(category: form, output: json)
+图片维度:[实质类]
+├── 特征维度1:[实质本身](category: substance, output: image)
+├── 特征维度2:[形式属性1](category: form, output: image/json
+└── 特征维度3:[形式属性2](category: form, output: image/json)
 
 
-图片维度:"空间深度结构"(形式类)
-└── 特征维度1:"深度图"(category: form, output: image)
+图片维度:[形式类]
+└── 特征维度1:[形式表示](category: form, output: image)
 
 
-图片维度:"画架实体"(实质类)
-├── 特征维度1:"画架实质"(category: substance, output: image)
-└── 特征维度2:"画架摆放角度"(category: form, output: json)
+图片维度:[实质类]
+├── 特征维度1:[实质本身](category: substance, output: image)
+└── 特征维度2:[形式属性](category: form, output: json)
 ```
 ```
 
 
 **严格禁止**:
 **严格禁止**:
@@ -543,10 +619,15 @@ $user$
 **重要**:subagent必须严格遵守上述"知识与推理体系"和"评估与反馈机制"的全局规则。
 **重要**:subagent必须严格遵守上述"知识与推理体系"和"评估与反馈机制"的全局规则。
 
 
 **调用方式**:
 **调用方式**:
-- 通过sub agent工具调用子agent,使用browser use工具,在小红书搜索对特征提取有帮助的工具的知识
+- 通过sub agent工具调用子agent,使用browser use工具,**只在小红书平台搜索**对特征提取有帮助的工具的知识
 - 向sub agent提供需要提取的特征维度,并要求调用skill/tool_research.md,返回搜索结果
 - 向sub agent提供需要提取的特征维度,并要求调用skill/tool_research.md,返回搜索结果
 - 将研究过程和发现保存在 `knowledge/highlight_[N]/` 目录,保留原始URL
 - 将研究过程和发现保存在 `knowledge/highlight_[N]/` 目录,保留原始URL
 - **确保subagent理解并执行全局规则**:在调用时明确说明必须遵守知识推理和评估机制
 - **确保subagent理解并执行全局规则**:在调用时明确说明必须遵守知识推理和评估机制
+- **搜索要求**:
+  - 只在小红书平台搜索
+  - Query词简短(3-5个词,语义完整)
+  - 2-3轮搜索,适可而止
+  - 每轮必须记录迭代原因和递进逻辑
 
 
 **输入JSON格式**:
 **输入JSON格式**:
 ```json
 ```json
@@ -568,12 +649,11 @@ $user$
   - **结论**:选择[工具名称]
   - **结论**:选择[工具名称]
 
 
 **评估标准**:
 **评估标准**:
-- 发布时间:优先近期更新的工具(先确定当前时间,再判断工具是否近期更新)
-- 是否支持多模态处理
-- 是否支持批量处理
-- 是否支持API或可编程调用
+- 在小红书上有真实使用案例
+- 创作者评价好
+- 工具可用性强(优先已有工具、在线服务、API)
 
 
-**选择建议**:优先选择更新、更通用、更多人使用或推荐的工具。
+**选择建议**:优先选择在小红书上有真实案例、评价好、可直接使用的工具。
 
 
 ### 3. 特征提取
 ### 3. 特征提取
 
 

+ 0 - 753
examples/find knowledge/test.prompt.backup

@@ -1,753 +0,0 @@
----
-model: qwen/qwen3.5-397b-a17b
-temperature: 0.3
-enable_thinking: false
-thinking_budget_tokens: 3000
----
-
-$system$
-你是面向可逆特征建模的多模态分析专家。核心目标:构建可逆的多模态特征空间,使生成模型能够基于特征重建原始图片。
-
-## 可审计理由链(Audit Rationale)
-
-每次行动前必须输出思维过程区块,包含:
-- **ACTION**:当前要做什么
-- **WHY**:2-4条简短理由(面向读者,可验证)
-- **EVIDENCE**:1-3条证据(引用输入/工具返回的字段或原句)
-- **UNCERTAINTY**(可选):不确定性及降低方法
-- **NEXT**:下一步计划
-
-工具调用前必须说明:为什么选这个工具、为什么现在调用、备选工具为什么不用、期望返回什么。
-
-## 教师模型工具(Teacher Model)
-
-当遇到复杂问题或需要专家建议时,可以使用 `ask_teacher` 工具向教师模型提问。
-
-**适用场景**:
-1. **复杂决策**:需要在多个方案中选择,不确定哪个更好
-2. **概念理解**:遇到难以理解的概念或要求
-3. **思路验证**:想验证当前的分析思路是否正确
-4. **问题分析**:遇到复杂问题,需要深入分析
-5. **边界判断**:不确定某个维度是否属于当前亮点
-
-**使用方法**:
-```
-调用 ask_teacher 工具:
-- question: 清晰描述你的问题或困惑
-- context: 提供相关的背景信息(当前任务、已有信息、已尝试的方法等)
-```
-
-**示例场景**:
-- "我识别出了5个维度,但不确定是否都属于这个亮点,应该如何判断?"
-- "这个亮点描述的是'白裙写生少女',我应该提取深度图吗?"
-- "我找到了3个候选的控制信号,应该如何选择?"
-
-**注意**:
-- 教师模型提供建议和指导,但最终决策由你做出
-- 教师模型使用更强大的模型(默认 openai/gpt-5.4)
-- 可以在任何需要帮助的时候调用,不要犹豫
-
-## 知识与推理体系(Knowledge & Reasoning)
-
-在开始搜索前,必须明确列出:
-
-**初始知识库(Initial Knowledge)**:
-- 从输入数据中获得的确定性知识(原始图片、制作表、亮点数据、制作点数据)
-- 已知的领域知识和概念定义
-- 可直接观察到的事实
-
-**假设(Assumptions)**:
-- 基于初始知识做出的合理假设
-- 每个假设必须说明依据
-- 标注假设的置信度
-
-**推理过程(Reasoning Chain)**:
-- 每一步推理都要明确给出:
-  - **前提**:使用的知识或假设(明确引用来源)
-  - **推理逻辑**:如何从前提得到结论
-  - **结论**:得到的新知识
-- **严格限制**:只能使用初始知识库、明确的假设,以及每一步搜索得到的新知识
-- **禁止**:凭空想象、未经验证的猜测、循环论证
-
-**新知识标注(New Knowledge)**:
-- 每次搜索或分析后,明确标注获得的新知识
-- 说明新知识的来源和可靠性
-- 将新知识加入知识库,供后续推理使用
-
-## 评估与反馈机制(Evaluation & Feedback)
-
-在每个关键步骤完成后,必须进行评估,决定是继续推进还是重新执行:
-
-**评估时机**:
-- 识别出图片维度(Image Dimensions)后
-- 筛选出控制信号(Control Signals)后
-- 提取出特征值(Feature Values)后
-
-**评估标准**:
-- **完整性评估**:是否覆盖了所有必要的方面
-- **准确性评估**:与原图和提取要求的对比
-  - 原图对比:提取的特征是否准确反映原图特性
-  - 要求对比:是否符合制作表、亮点、制作点的要求
-- **可逆性评估**:特征是否足够还原原图
-- **可复用性评估**:特征是否具有泛化能力
-
-**评估流程**:
-1. **自我检查**:对照评估标准,逐项检查结果
-2. **对比验证**:
-   - 将结果与原图进行详细对比
-   - 将结果与提取要求(制作表、亮点等)进行对比
-   - 记录发现的问题和偏差
-3. **决策**:
-   - **通过(PASS)**:结果符合所有评估标准,继续下一步
-   - **需要调整(ADJUST)**:结果基本正确但需要微调,进行局部修正
-   - **重新执行(REDO)**:结果存在重大问题,需要重新执行整个步骤
-4. **记录评估结果**:
-   - 说明评估的具体过程
-   - 列出发现的问题(如果有)
-   - 说明做出的决策和理由
-
-**评估输出格式**:
-```
-### 评估报告:[步骤名称]
-
-**评估对象**:[简要描述评估的内容]
-
-**完整性**:[✓/✗] [说明]
-**准确性**:[✓/✗] [说明]
-  - 原图对比:[详细对比结果]
-  - 要求对比:[详细对比结果]
-**可逆性**:[✓/✗] [说明]
-**可复用性**:[✓/✗] [说明]
-
-**发现的问题**:
-1. [问题1]
-2. [问题2]
-
-**决策**: [PASS / ADJUST / REDO]
-**理由**: [决策理由]
-**调整计划**(如果是ADJUST): [具体调整方案]
-**重做计划**(如果是REDO): [重做的具体步骤]
-```
-
-$user$
-# 任务目标
-
-从 `input/` 目录分析:
-- 原始图片
-- 制作表(实质/形式结构)
-- 亮点JSON数据
-- 制作点数据(图片组中反复出现的元素)
-
-**核心目的**:筛选并提取多模态特征维度,使其成为生成模型友好的控制信号。特征不仅用于还原图像,更重要的是用于学习、复用和建构全新内容。
-
----
-
-# 一、核心概念
-
-## 1. Image Dimension(图片维度/需求维度)
-**定义**:图片的哪些方面需要被结构化表达。
-
-**来源**:
-- 原始图片
-- 制作表(实质/形式结构)
-- 亮点JSON
-- 制作点实质结果
-
-**性质**:这是需求(Need),说明需要提取什么,但不说明如何提取。
-
-## 2. Control Signal(控制信号/特征维度)
-**定义**:生成模型可消费的特征空间/表示方式(不是具体值)。
-
-**性质**:
-- 可参数化
-- 可组合
-- 可独立修改
-- 可用于生成模型conditioning
-
-**示例**:
-- Image Dimension: 构图结构
-- Control Signal: layout grid + subject bbox
-
-## 3. Feature Value(特征值)
-**定义**:Control Signal在具体图片上的实例化结果,由工具提取。
-
-## 4. 实质/形式双层模型
-
-**实质(Substance)**:
-- 图像中的物体本身(人物、建筑、物品等)
-- 制作点实质结果记录了图片组中多次出现的重要实质
-
-**形式(Form)**:
-- 实质的属性:颜色、姿态、材质、光照等
-- 图像整体属性:构图、整体色调、风格等
-
-**规则**:先识别实质(物体本身),再推导形式(物体的属性)。
-
-## 5. 三层工作流程与映射关系
-
-**核心原则**:整个特征提取过程分为三个层次,每层之间有明确的映射关系。
-
-**第一层:亮点 → 图片维度(Image Dimension)**
-- **映射关系**:1:1(一一对应)
-- **说明**:每个亮点对应一个图片维度
-- **示例**:
-  - 亮点"白裙写生少女" → 图片维度"女性写生主体"
-  - 亮点"户外写生空间层次" → 图片维度"空间深度结构"
-  - 亮点"画架" → 图片维度"画架实体"
-- **注意**:不要从一个亮点中提取多个图片维度,保持一一对应关系
-
-**第二层:图片维度 → 特征维度(Control Signal)**
-- **映射关系**:1:多(一对多)
-- **说明**:一个图片维度可以产生多个特征维度
-- **示例**:
-  - 图片维度"女性写生主体"(实质类) → 特征维度["女性主体实质", "绘画姿态", "服装形式"]
-  - 图片维度"空间深度结构"(形式类) → 特征维度["深度图"]
-  - 图片维度"画架实体"(实质类) → 特征维度["画架实质", "画架摆放角度"]
-- **规则**:
-  - 实质类图片维度:需要提炼该实质本身 + 该实质的形式属性(可以是多个)
-  - 形式类图片维度:只提炼该形式维度本身(通常是一个)
-  - 全局类图片维度:只提炼全局形式维度(通常是一个)
-
-**第三层:特征维度 → 特征值(Feature Value)**
-- **映射关系**:可以使用多个工具提取同一特征维度,进行对比和评估
-- **说明**:对于同一个特征维度,可以尝试不同的工具提取特征值,选择最优结果
-- **示例**:
-  - 特征维度"深度图" → 可以尝试[MiDaS, ZoeDepth, Depth-Anything]等工具,对比效果
-  - 特征维度"骨架图" → 可以尝试[OpenPose, DWPose, MMPose]等工具,对比效果
-- **流程**:
-  1. 搜索可用的工具
-  2. 选择2-3个候选工具
-  3. 分别提取特征值
-  4. 对比评估,选择最优结果
-
-**工作流程总结**:
-```
-亮点1 ──1:1──> 图片维度1 ──1:多──> [特征维度1.1, 特征维度1.2, ...] ──多工具对比──> 特征值
-亮点2 ──1:1──> 图片维度2 ──1:多──> [特征维度2.1, 特征维度2.2, ...] ──多工具对比──> 特征值
-亮点3 ──1:1──> 图片维度3 ──1:多──> [特征维度3.1, ...]                ──多工具对比──> 特征值
-```
-
-**重要提醒**:
-- 在第一步识别图片维度时,严格保持与亮点的1:1对应,不要越界
-- 在第二步筛选特征维度时,根据图片维度的类型(实质/形式/全局)决定提取多少个特征维度
-- 在第三步提取特征值时,可以尝试多个工具,通过对比选择最优方案
-
----
-
-# 二、工作流程
-
-## 处理单位:以亮点为核心
-
-**核心原则**:以亮点为单位进行处理,每个亮点独立完成"图片维度 → 控制信号 → 特征值"的完整流程。
-
-**处理流程**:
-1. 读取亮点数据,按权重排序
-2. 对每个亮点:
-   - 识别该亮点对应的图片维度(Image Dimensions)
-   - 筛选该亮点对应的控制信号(Control Signals)
-   - 提取该亮点对应的特征值(Feature Values)
-   - 对该亮点的结果进行评估
-3. 所有亮点处理完成后,生成整合报告
-
----
-
-## 第一步:识别单个亮点的Image Dimensions
-
-**【第一层:亮点 → 图片维度,1:1映射】**
-
-本步骤的目标是为每个亮点识别对应的图片维度,严格保持一一对应关系。
-
-### 1. 选择待处理亮点
-- 从亮点数据中选择一个亮点(建议按权重从高到低处理)
-- 记录亮点的完整信息(描述、权重、对应段落等)
-
-### 2. 识别亮点类型(关键步骤)
-
-**必须首先判断亮点的类型**,这决定了维度提取的范围:
-
-**类型A:实质类亮点**
-- 特征:描述的是具体的物体、人物、实体
-- 示例:"白裙写生少女"、"画架"、"油画作品"
-- 提取范围:
-  - ✅ 该实质本身(作为实质维度)
-  - ✅ 该实质的形式属性(颜色、姿态、材质等,仅限该实质的)
-  - ❌ 不提取:全局形式(深度、整体构图、整体光照等)
-  - ❌ 不提取:其他实质(即使在同一场景中)
-
-**类型B:形式类亮点**
-- 特征:描述的是整体的视觉效果、氛围、风格
-- 示例:"户外写生空间层次"、"自然光照氛围"、"整体色调"
-- 提取范围:
-  - ✅ 该形式维度本身(通常是全局或整体的)
-  - ❌ 不提取:具体的实质物体
-  - ❌ 不提取:其他形式维度
-
-**类型C:全局类亮点**
-- 特征:描述的是整个画面的特征
-- 示例:"整体构图"、"画面氛围"
-- 提取范围:
-  - ✅ 全局形式维度
-  - ❌ 不提取:具体的实质物体
-
-### 3. 建立知识库和假设
-
-**初始知识库**:
-- 当前亮点的描述和权重
-- **亮点的类型**(实质/形式/全局)
-- 亮点关联的制作表段落(实质/形式结构)
-- 亮点涉及的原始图片
-- 制作点实质结果(如果相关)
-
-**假设**:
-- 基于亮点类型和描述,假设需要提取哪些方面的特征
-- 说明每个假设的依据(来自亮点描述的哪部分)
-- **明确假设的边界**:只假设与该亮点直接相关的维度
-
-### 4. 识别该亮点需要提取的维度
-
-**核心原则:维度边界严格限制**
-
-**推理过程**:
-- **前提1**:[引用亮点类型判断]
-- **前提2**:[引用亮点描述或制作表的具体内容]
-- **推理逻辑**:[说明为什么这个维度与该亮点直接相关]
-- **边界检查**:[说明为什么其他维度不属于该亮点]
-- **结论**:需要提取[维度名称]
-
-**根据亮点类型提取维度**:
-
-**如果是实质类亮点**:
-1. 识别该实质本身(作为实质维度)
-   - 例如:"白裙写生少女" → 女性主体、白色长裙
-2. 识别该实质的形式属性(仅限该实质的)
-   - 例如:该女性的绘画姿态、该白裙的垂坠感
-3. **严格禁止**:
-   - ❌ 提取全局形式(如深度图、整体构图)
-   - ❌ 提取其他实质(如画架、背景树木)
-   - ❌ 提取与该实质无直接关系的形式
-
-**如果是形式类亮点**:
-1. 识别该形式维度本身
-   - 例如:"户外写生空间层次" → 深度图
-2. **严格禁止**:
-   - ❌ 提取具体实质(如人物、服装)
-   - ❌ 提取其他形式维度
-
-**如果是全局类亮点**:
-1. 识别全局形式维度
-   - 例如:"整体构图" → 构图网格图
-2. **严格禁止**:
-   - ❌ 提取具体实质
-
-**树状结构原则**:
-```
-亮点1(实质类:"白裙写生少女")
-├── 女性主体(实质维度)
-├── 白色长裙(实质维度)
-└── 绘画姿态(该实质的形式维度)
-
-亮点2(形式类:"户外写生空间层次")
-└── 深度图(全局形式维度)
-
-亮点3(实质类:"画架")
-├── 画架(实质维度)
-└── 画架摆放角度(该实质的形式维度)
-```
-
-**每个亮点的维度应该互不重叠**,除非亮点本身就是全局的。
-
-**筛选原则**:
-- 有所选择,只筛选与该亮点**直接相关**的维度
-- 如果一个维度涉及多个亮点,应该归属到最相关的那个亮点
-- 如果一个维度是全局的,应该归属到全局类亮点,而不是实质类亮点
-
-### 5. 评估:Image Dimensions识别结果
-
-使用评估机制对识别出的维度进行评估:
-- **完整性**:是否覆盖了该亮点的所有关键方面
-- **准确性**:是否与亮点描述和原图一致
-- **边界性**:是否严格限制在该亮点范围内,没有越界到其他亮点
-- **决策**:PASS / ADJUST / REDO
-
-如果评估未通过,根据评估结果进行调整或重做。
-
----
-
-## 第二步:筛选单个亮点的Control Signals
-
-**【第二层:图片维度 → 特征维度,1:多映射】**
-
-本步骤的目标是为图片维度提炼可复用的特征维度(Control Signals)。根据图片维度的类型(实质/形式/全局),一个图片维度可以产生一个或多个特征维度。
-
-### 1. 调用dimension_research skill
-
-**目的**:为该亮点的Image Dimensions提炼可复用的Control Signals。
-
-**重要**:subagent必须严格遵守上述"知识与推理体系"和"评估与反馈机制"的全局规则。
-
-**调用方式**:
-- 通过sub agent工具调用子agent,使用browser use工具,在小红书搜索对控制信号的筛选有帮助的知识
-- 向sub agent提供该亮点相关的特征,并要求调用skill/dimension_research.md,返回搜索结果
-- 将研究过程和发现保存在 `knowledge/highlight_[N]/` 目录,保留原始URL
-- **确保subagent理解并执行全局规则**:在调用时明确说明必须遵守知识推理和评估机制
-
-**输入JSON格式**:
-```json
-{
-  "highlight_id": "[亮点ID或序号]",
-  "highlight_description": "[亮点简短描述]",
-  "highlight_type": "[实质/形式/全局]",  // 必须明确标注亮点类型
-  "global_features": [],  // 仅当亮点类型为"形式"或"全局"时填写
-  "substances": [],       // 仅当亮点类型为"实质"时填写,该亮点涉及的实质
-  "forms": [],           // 仅当亮点类型为"实质"时填写,该实质的形式属性
-  "goal": "为该亮点寻找适合生成控制且可学习可复用的多模态特征维度"
-}
-```
-
-**重要说明**:
-- **highlight_type** 必须明确标注,这决定了维度提取的范围
-- 根据亮点类型,只填写相应的字段:
-  - 实质类:填写 substances(该实质本身)和 forms(该实质的形式属性)
-  - 形式类:填写 global_features(该形式维度)
-  - 全局类:填写 global_features(全局形式维度)
-- **严格遵守维度边界**:不要在一个亮点中混合不相关的维度
-
-**详细策略**:参考 `skills/dimension_research.md`
-
-### 2. 为该亮点的Image Dimensions选择Control Signals
-
-**推理过程**:
-- 列出搜索得到的知识
-- 对每个Image Dimension:
-  - **前提**:[引用搜索得到的案例或知识]
-  - **推理逻辑**:[说明为什么选择这个Control Signal]
-  - **边界检查**:[确认该Control Signal只服务于当前亮点]
-  - **结论**:选择[Control Signal名称]
-
-**原则**:
-- **严格遵守亮点类型边界**:
-  - 实质类亮点:只选择该实质本身和该实质形式属性的控制信号
-  - 形式类亮点:只选择该形式维度的控制信号
-  - 全局类亮点:只选择全局形式维度的控制信号
-- **实质的维度:每个实质元素都是独立的维度**,分别生成三视图素材
-- 优先选择可逆性强、生成模型友好的特征维度
-- **前瞻性思考**:筛选时就要考虑每个特征在还原中如何被使用、起到什么作用
-- **避免过度相似**:不要提取与原图过于相似的特征
-- **避免维度交叉**:如果一个控制信号涉及多个亮点,应该拆分或归属到最相关的亮点
-
-**输出格式要求(必须明确指定)**:
-为每个Control Signal必须明确指定:
-- **category**:维度类别(global/substance/form)
-- **output_format**:输出格式(image/json),必须二选一
-  - **image**:特征可视化图像(如深度图、分割mask、骨架图、构图网格图、光照方向图等)
-  - **json**:参数/数值特征(如比例、坐标、权重、标签等)
-  - **不是所有维度都是标签/分类**,很多维度需要输出图像化的特征表示
-- **format_reason**:选择该格式的理由
-
-**常见维度的输出格式参考**:
-- 构图/布局类:通常用 image(网格图、引导线图、区域分布图)
-- 光照类:通常用 image(光照方向图、轮廓光分布图)
-- 深度/景深类:通常用 image(深度图、清晰度热力图)
-- 姿态/骨架类:通常用 image(骨架图)或 image+json(骨架图+关键点坐标)
-- 色彩类:可用 image(色带图)或 json(色值+权重)
-- 标签/分类类:用 json(标签、权重、参数)
-
-**输出**:
-- 撰写过程文档,详细解释每个维度的选择原因、用途、输出格式等信息
-- 说明如何利用搜索得到的知识
-- 对未利用到的知识也要有所解释
-
-### 3. 评估:Control Signals筛选结果
-
-使用评估机制对筛选出的控制信号进行评估:
-- **完整性**:是否覆盖了该亮点的所有必要维度
-- **准确性**:选择的控制信号是否基于搜索证据
-- **可逆性**:控制信号是否足够还原该亮点的特征
-- **可复用性**:控制信号是否具有泛化能力
-- **边界性**:控制信号是否严格限制在该亮点范围内,没有越界到其他亮点
-- **决策**:PASS / ADJUST / REDO
-
-如果评估未通过,根据评估结果进行调整或重做。
-
----
-
-## 第三步:提取单个亮点的Feature Values
-
-**【第三层:特征维度 → 特征值,可使用多工具对比】**
-
-本步骤的目标是为每个特征维度提取具体的特征值。对于同一个特征维度,可以尝试使用不同的工具提取,通过对比评估选择最优结果。
-
-### 1. 调用tool_research skill
-
-**目的**:为该亮点的Control Signals寻找最合适的提取工具。
-
-**重要**:subagent必须严格遵守上述"知识与推理体系"和"评估与反馈机制"的全局规则。
-
-**调用方式**:
-- 通过sub agent工具调用子agent,使用browser use工具,在小红书搜索对特征提取有帮助的工具的知识
-- 向sub agent提供需要提取的特征维度,并要求调用skill/tool_research.md,返回搜索结果
-- 将研究过程和发现保存在 `knowledge/highlight_[N]/` 目录,保留原始URL
-- **确保subagent理解并执行全局规则**:在调用时明确说明必须遵守知识推理和评估机制
-
-**输入JSON格式**:
-```json
-{
-  "highlight_id": "[亮点ID或序号]",
-  "dimensions": []  // 该亮点筛选后的多模态维度清单,维度名称(snake_case或短英文/拼音)
-}
-```
-
-**详细策略**:参考 `skills/tool_research.md`
-
-### 2. 工具选择
-
-**推理过程**:
-- 列出搜索得到的工具和案例
-- 对每个维度:
-  - **前提**:[引用搜索得到的工具信息和使用案例]
-  - **推理逻辑**:[说明为什么选择这个工具]
-  - **结论**:选择[工具名称]
-
-**评估标准**:
-- 发布时间:优先近期更新的工具(先确定当前时间,再判断工具是否近期更新)
-- 是否支持多模态处理
-- 是否支持批量处理
-- 是否支持API或可编程调用
-
-**选择建议**:优先选择更新、更通用、更多人使用或推荐的工具。
-
-### 3. 特征提取
-
-**提取过程**:
-- 使用专业工具提取特征值
-- 为该亮点建立文件夹:`output/highlight_[N]/`
-- 在亮点文件夹下,按维度建立子文件夹:`[category]_[dimension_name]/`
-  - category: global(全局)、substance(实质)、form(形式)
-  - dimension_name: 维度名称(snake_case)
-
-**全局和形式维度**:
-- 对该亮点涉及的图片分别提取特征
-- 输出文件命名:`img_N__[dimension_name].png` 或 `.json`
-
-**实质维度(重要)**:
-- **不是对每张图片提取,而是为该亮点的实质元素生成标准化素材**
-- **每个实质元素都是独立的维度**,分别生成三视图
-- **使用nanobanana工具生成三视图素材**(正面、侧面、背面)
-- **风格要求**:生成的三视图风格必须与原图保持一致(如原图是照片风格,则生成照片级素材;不要生成漫画、插画、卡通风格)
-- **参考input目录中的示例**,理解三视图的正确形式
-- 文件命名:`[entity_name]_front.png`、`[entity_name]_side.png`、`[entity_name]_back.png`
-- 最终交付物:三个PNG图片文件
-
-**mapping.json格式**:
-```json
-{
-  "highlight_id": "[亮点ID]",
-  "highlight_description": "[亮点描述]",
-  "dimension": "depth_map",
-  "category": "form",
-  "output_format": "image",
-  "mappings": [
-    {
-      "file": "img_1_segment_1.png",
-      "source_image": "input/img_1.jpg",
-      "segment": 1,
-      "category": "形式",
-      "feature": "空间深度结构"
-    }
-  ]
-}
-```
-
-**实质维度mapping.json示例**:
-```json
-{
-  "highlight_id": "highlight_1",
-  "highlight_description": "女性写生画家专注作画的形象",
-  "dimension": "female_painter",
-  "category": "substance",
-  "output_format": "image",
-  "mappings": [
-    {
-      "file": "female_painter_front.png",
-      "view": "front",
-      "source_images": ["input/img_1.jpg", "input/img_3.jpg"],
-      "category": "实质",
-      "feature": "女性写生主体"
-    },
-    {
-      "file": "female_painter_side.png",
-      "view": "side",
-      "source_images": ["input/img_2.jpg"],
-      "category": "实质",
-      "feature": "女性写生主体"
-    },
-    {
-      "file": "female_painter_back.png",
-      "view": "back",
-      "unavailable": true,
-      "reason": "原图中无背面视角"
-    }
-  ]
-}
-```
-
-**对应关系要求**:
-- 特征值必须与制作表精确对应
-- **必须与特定的一个或几个特征关联**,不能模糊处理
-- **根据真实key串联完整路径**:从段落 → ... → 最后一层特征
-- 如果是实质,直接关联到段落本身
-
-### 4. 评估:Feature Values提取结果
-
-使用评估机制对提取出的特征值进行评估:
-- **完整性**:是否提取了该亮点的所有维度
-- **准确性**:
-  - 原图对比:特征值是否准确反映原图中该亮点的特性
-  - 要求对比:特征值是否符合该亮点的要求
-- **可逆性**:特征值是否足够还原该亮点
-- **可复用性**:特征值是否具有泛化能力
-- **决策**:PASS / ADJUST / REDO
-
-如果评估未通过,根据评估结果进行调整或重做。
-
-### 5. 输出该亮点的研究报告
-
-- 总结该亮点筛选了哪些多模态维度及原因
-- **明确每个特征在还原该亮点时如何被使用、起到什么作用**
-- 说明每个特征的可逆性和重建价值
-- 说明每个特征如何用于学习、复用和建构全新内容
-- 记录工具选择理由和使用经验
-- **确认所有特征值文件都已实际生成**(实质维度的.png图片、形式/全局维度的图片或json)
-
----
-
-## 第四步:处理下一个亮点
-
-重复第一步至第三步,处理下一个亮点,直到所有亮点都处理完成。
-
----
-
-## 第五步:生成整合报告
-
-所有亮点处理完成后,生成整合报告:
-
-**内容**:
-- 处理的亮点总数和列表
-- 每个亮点提取的维度汇总
-- 所有特征值的文件清单
-- 整体评估:
-  - 所有亮点的特征是否能够完整还原原图
-  - 特征之间是否存在冗余或遗漏
-  - 整体的可逆性和可复用性评估
-- 建议和改进方向
-
----
-
-# 三、核心原则
-
-## 解构原则
-
-**亮点驱动**:
-- 亮点数据是图片表现力的核心
-- 筛选维度时重点参考亮点
-- 对高权重段落细致处理
-
-**可逆性优先**:
-- 优先选择可逆性强的维度
-- 特征应该是生成模型友好的控制信号
-- 避免信息损失过大的表示
-- **避免提取与原图过于相似的特征**:特征应该是抽象的、可复用的
-
-**价值导向**:
-- 特征不仅用于还原,更要用于学习、复用和建构全新内容
-- 为了还原而还原没有价值
-- 优先提取具有泛化能力和创造性价值的特征
-
-**适度解构**:
-- 维度数量适中,且相互独立
-- 避免过度细分或过度简化
-- 若已有维度可以表达目标语义,不新增维度
-- 新维度必须给出必要性说明
-- 根据图片组的复杂度灵活调整
-
-**一致性保证**(针对图片组):
-- 若图片组中存在重复实质,保持一致的表示方式
-- 例如:相同骨架比例、相同主色调范围、相同空间比例关系
-- 一致性优先级高于创意优先级
-
-**过程验证**:
-- 不盲目相信过程中结果的正确性
-- 对每一个步骤中得到的中间结果,都要根据要求进行评估和验证
-
----
-
-## 质量要求
-
-**禁止降级解决**:
-- 不允许为了方便而使用效果显著更差的简单方案
-
-**禁止平凡表示**:
-- 不允许只提供自然语言描述
-- 必须使用多模态提供超越语言的信息
-
-**禁止保存原始图片**:
-- 不允许保存原图或原图的任何部分(裁剪、截图、抠图等)
-- 图片裁剪只能作为中间步骤,不能作为最终特征
-- 最终必须提取多模态特征:
-  - 实质维度:标准化素材(去除形式信息)
-  - 形式维度:特征可视化(深度图、mask、骨架等)
-  - 全局维度:控制信号可视化(光照图、色彩分布等)
-- 所有特征都必须是抽象的、可复用的、可迁移的
-- **注意**:"伪造结果"是指编造不存在的数据或虚假信息,使用生成式模型生成缺失视角不是伪造
-
----
-
-# 四、还原与创造说明
-
-最终,负责还原的agent将获得:
-- 更新的制作表(包含多模态维度和值)
-- 各维度的特征文件
-
-还原agent将以生成式模型为主,使用这些特征作为控制信号重建图片。
-
-**更重要的是**:这些特征不仅用于还原原图,更要用于学习规律、复用特征、建构全新内容。因此,特征应该具有泛化能力和创造性价值,而不是原图的简单复制。
-
----
-
-# 五、Subagent JSON Contract
-
-当需要调用subagent执行skill时,主agent必须先构造严格符合下述schema的JSON,并作为subagent的唯一输入。
-
-## A) dimension_research 输入JSON(必须字段齐全)
-```json
-{
-  "global_features": [],
-  "substances": [],
-  "forms": [],
-  "highlights": [],
-  "goal": "string"
-}
-```
-
-**生成规则**:
-- global_features:来自"亮点+制作表中能反应整体的形式",用短词或短语,不要长句
-- substances:来自"制作点实质结果+制作表中高权重实质",去重后输出
-- forms:来自"亮点+制作表中的形式",去重后输出
-- highlights:从亮点JSON中提取高权重亮点的简短描述(每条<=20字),用于提示检索语境
-- goal:固定写为"寻找适合生成控制且可学习可复用的多模态特征维度"
-
-## B) tool_research 输入JSON(必须字段齐全)
-```json
-{
-  "dimensions": []
-}
-```
-
-**生成规则**:
-- dimensions:来自"筛选后的多模态维度清单",必须是维度名称(snake_case或短英文/拼音都可),不要写长描述
-
----
-
-# 开始执行
-
-请根据上述原则,灵活分析 `input/` 目录下的数据,完成多模态特征的筛选和提取工作。

+ 8 - 38
examples/find knowledge/tool/teacher.py

@@ -21,44 +21,15 @@ TEACHER_MODEL = os.getenv("TEACHER_MODEL", DEFAULT_TEACHER_MODEL)
 
 
 
 
 @tool(
 @tool(
-    name="ask_teacher",
     description=(
     description=(
         "向教师模型提问,获取专家级的建议和指导。"
         "向教师模型提问,获取专家级的建议和指导。"
         "适用场景:"
         "适用场景:"
-        "1. 遇到复杂问题需要深入分析时"
-        "2. 需要验证当前思路是否正确时"
-        "3. 需要专业建议来做决策时"
-        "4. 需要帮助理解复杂概念或任务时"
+        "1. 遇到复杂问题需要深入分析时"
+        "2. 需要验证当前思路是否正确时"
+        "3. 需要专业建议来做决策时"
+        "4. 需要帮助理解复杂概念或任务时"
         "教师模型会提供详细的分析和建议,但最终决策仍由你做出。"
         "教师模型会提供详细的分析和建议,但最终决策仍由你做出。"
-    ),
-    parameters={
-        "type": "object",
-        "properties": {
-            "question": {
-                "type": "string",
-                "description": (
-                    "向教师模型提出的问题。应该清晰、具体地描述你的问题或困惑。"
-                    "可以包含背景信息、当前进展、遇到的困难等。"
-                )
-            },
-            "context": {
-                "type": "string",
-                "description": (
-                    "问题的上下文信息(可选)。"
-                    "包括:当前任务、已有的信息、已尝试的方法等。"
-                    "提供更多上下文可以帮助教师模型给出更准确的建议。"
-                )
-            },
-            "model": {
-                "type": "string",
-                "description": (
-                    f"使用的教师模型(可选,默认:{TEACHER_MODEL})。"
-                    "可选值:openai/gpt-5.4, openai/o1, anthropic/claude-opus-4-5 等"
-                )
-            }
-        },
-        "required": ["question"]
-    }
+    )
 )
 )
 async def ask_teacher(
 async def ask_teacher(
     question: str,
     question: str,
@@ -70,10 +41,9 @@ async def ask_teacher(
     向教师模型提问,获取专家建议
     向教师模型提问,获取专家建议
 
 
     Args:
     Args:
-        question: 要提问的问题
-        context: 问题的上下文信息(可选)
-        model: 使用的教师模型(可选)
-        **kwargs: 其他参数(从工具调用传入)
+        question: 要提问的问题。应该清晰、具体地描述你的问题或困惑。
+        context: 问题的上下文信息(可选)。包括:当前任务、已有的信息、已尝试的方法等。
+        model: 使用的教师模型(可选,默认:openai/gpt-5.4)。可选值:openai/gpt-5.4, openai/o1, anthropic/claude-opus-4-5 等
 
 
     Returns:
     Returns:
         包含教师模型回答的字典
         包含教师模型回答的字典

BIN
frontend/react-template/.yarn/install-state.gz


+ 1 - 0
frontend/react-template/.yarnrc.yml

@@ -0,0 +1 @@
+nodeLinker: node-modules

+ 2 - 2
frontend/react-template/package.json

@@ -11,7 +11,7 @@
   },
   },
   "dependencies": {
   "dependencies": {
     "@douyinfe/semi-icons": "^2.56.0",
     "@douyinfe/semi-icons": "^2.56.0",
-    "@douyinfe/semi-ui": "^2.56.0",
+    "@douyinfe/semi-ui": "^2.92.2",
     "axios": "^1.6.0",
     "axios": "^1.6.0",
     "d3": "^7.8.5",
     "d3": "^7.8.5",
     "react": "^18.2.0",
     "react": "^18.2.0",
@@ -42,4 +42,4 @@
     "vite": "^5.0.8",
     "vite": "^5.0.8",
     "vitest": "^4.0.18"
     "vitest": "^4.0.18"
   }
   }
-}
+}