elksmmx 1 неделя назад
Родитель
Сommit
34a31b7400

+ 0 - 2
agent/tools/builtin/__init__.py

@@ -16,7 +16,6 @@ from agent.tools.builtin.bash import bash_command
 from agent.tools.builtin.skill import skill, list_skills
 from agent.tools.builtin.subagent import agent, evaluate
 from agent.tools.builtin.search import search_posts, get_search_suggestions
-from agent.tools.builtin.nanobanana import nanobanana_extract_features
 from agent.tools.builtin.sandbox import (sandbox_create_environment, sandbox_run_shell,
                                          sandbox_rebuild_with_ports,sandbox_destroy_environment)
 
@@ -40,7 +39,6 @@ __all__ = [
     "evaluate",
     "search_posts",
     "get_search_suggestions",
-    "nanobanana_extract_features",
     "sandbox_create_environment",
     "sandbox_run_shell",
     "sandbox_rebuild_with_ports",

+ 5 - 0
examples/how/run.py

@@ -39,6 +39,7 @@ from agent.trace import (
     Message,
 )
 from agent.llm import create_openrouter_llm_call
+from agent.tools import get_tool_registry
 
 
 # ===== 非阻塞 stdin 检测 =====
@@ -263,6 +264,10 @@ async def main():
     print(f"   - Skills 目录: {skills_dir}")
     print(f"   - 模型: {prompt.config.get('model', 'sonnet-4.5')}")
 
+    # 加载自定义工具
+    print("   - 加载自定义工具: nanobanana")
+    import examples.how.tool  # 导入自定义工具模块,触发 @tool 装饰器注册
+
     store = FileSystemTraceStore(base_path=".trace")
     runner = AgentRunner(
         trace_store=store,

+ 7 - 0
examples/how/tool/__init__.py

@@ -0,0 +1,7 @@
+"""
+How 示例的自定义工具
+"""
+
+from examples.how.tool.nanobanana import nanobanana
+
+__all__ = ["nanobanana"]

+ 1 - 1
agent/tools/builtin/nanobanana.py → examples/how/tool/nanobanana.py

@@ -215,7 +215,7 @@ def _normalize_model_id(model_id: str) -> str:
 
 
 @tool(description="可以提取图片中的特征,也可以根据描述生成图片")
-async def nanobanana_extract_features(
+async def nanobanana(
     image_path: str = "",
     image_paths: Optional[List[str]] = None,
     output_file: Optional[str] = None,