Ver Fonte

refactor(production_restore): 将知识上传统一切换到远端 Librarian 草稿池

SamLee há 1 dia atrás
pai
commit
26f77a581d

+ 3 - 3
examples/production_restore/config.py

@@ -4,7 +4,7 @@
 定义项目的运行配置。
 """
 
-from agent.core.runner import KnowledgeConfig, RunConfig
+from cyber_agent.core.runner import KnowledgeConfig, RunConfig
 
 
 # ===== Agent 运行配置 =====
@@ -24,8 +24,8 @@ RUN_CONFIG = RunConfig(
     # 额外工具:需求库检索(在 core 工具组基础上追加)
     tools=["requirement_search", "search_category_tree", "extract_requirements_from_table"],
 
-    # 工具分组:core(基础能力)+ knowledge(upload_knowledge;知识查询改用 agent(agent_type="remote_librarian"))
-    tool_groups=["core", "knowledge", "category"],
+    # 工具分组:core(基础能力)+ category;需求库查询通过 tools 精确追加,跨项目查询/上传统一使用 remote_librarian
+    tool_groups=["core", "category"],
 
     # 任务名称
     name="图像还原执行",

+ 8 - 4
examples/production_restore/requirement.prompt

@@ -183,7 +183,7 @@ agent(task="调研以下制作需求的实现方案和用户案例:
 ```
 - Researcher 会搜索外部平台并返回调研结果
 - **调研结果保存到 `%output_dir%/research_result.json`**,供后续设计执行方案时参考
-- 同时通过 `upload_knowledge` 存入 KnowHub 供跨任务复用
+- 同时调用 `agent(agent_type="remote_librarian", skills=["upload_strategy"], task=...)` 提交到 KnowHub 上传草稿池,审核入库后供跨任务复用;`task` 必须是包含 `knowledge`、`tools`、`resources` 的 JSON 字符串
 - 特别关注用户案例中的工序流程,可补充到关系表中
 
 **research_result.json 结构**:
@@ -295,9 +295,13 @@ pipeline 是一个有序的 steps 列表,每个 step 对应一个可执行的
 每个 step 完成后,记录结果到 `%output_dir%/generation_log.md`。
 
 ### 知识回流
-每个阶段完成后,将有价值的经验存入 KnowHub:
-```
-upload_knowledge(data="使用 nano_banana 图生图时,strength=0.6 + 链式传递前序图效果最好...", source_type="experience")
+每个阶段完成后,将有价值的经验提交到 KnowHub 上传草稿池:
+```python
+agent(
+    agent_type="remote_librarian",
+    skills=["upload_strategy"],
+    task='{"knowledge":[{"source_type":"experience","content":"使用 nano_banana 图生图时,strength=0.6 + 链式传递前序图效果最好..."}],"tools":[],"resources":[]}'
+)
 ```
 
 ## 输出文件命名规则

+ 10 - 11
examples/production_restore/run.py

@@ -29,22 +29,21 @@ sys.path.insert(0, str(Path(__file__).parent.parent.parent))
 from dotenv import load_dotenv
 load_dotenv()
 
-from agent.llm.prompts import SimplePrompt
-from agent.core.runner import AgentRunner, RunConfig
-from agent.trace import (
+from cyber_agent.llm.prompts import SimplePrompt
+from cyber_agent.core.runner import AgentRunner, RunConfig
+from cyber_agent.trace import (
     FileSystemTraceStore,
     Trace,
     Message,
 )
-from agent.llm import create_qwen_llm_call
-from agent.cli import InteractiveController
-from agent.utils import setup_logging
-from agent.tools.builtin.browser.baseClass import init_browser_session, kill_browser_session
+from cyber_agent.llm import create_qwen_llm_call
+from cyber_agent.cli import InteractiveController
+from cyber_agent.utils import setup_logging
+from cyber_agent.tools.builtin.browser.baseClass import init_browser_session, kill_browser_session
 
 # 导入自定义工具(触发 @tool 注册)
-from agent.tools.builtin.toolhub import toolhub_health, toolhub_search, toolhub_call, image_uploader, image_downloader  # noqa: F401
-from agent.tools.builtin.knowledge import requirement_search, requirement_list  # noqa: F401
-from agent.tools.builtin.librarian import upload_knowledge  # noqa: F401
+from cyber_agent.tools.builtin.toolhub import toolhub_health, toolhub_search, toolhub_call, image_uploader, image_downloader  # noqa: F401
+from cyber_agent.tools.builtin.knowledge import requirement_search, requirement_list  # noqa: F401
 from evaluate_tool import evaluate_image  # noqa: F401
 from examples.production_restore.tools.category_query import search_category_tree, extract_requirements_from_table  # noqa: F401
 
@@ -75,7 +74,7 @@ async def main():
     print("2. 加载 presets...")
     presets_path = base_dir / "presets.json"
     if presets_path.exists():
-        from agent.core.presets import load_presets_from_json
+        from cyber_agent.core.presets import load_presets_from_json
         load_presets_from_json(str(presets_path))
         print(f"   - 已加载项目 presets")
     else: