MCPcopy Create free account
hub / github.com/InternScience/InternAgent / MyAgent

Class MyAgent

demo.py:24–96  ·  view source on GitHub ↗

简化的助手Agent,使用函数式工具

Source from the content-addressed store, hash-verified

22
23
24class MyAgent(BaseAgent):
25 """简化的助手Agent,使用函数式工具"""
26
27 def __init__(self, model: BaseModel, config: Dict[str, Any]):
28 super().__init__(model, config)
29
30 # 获取工具注册表
31 self.tool_registry = get_registry()
32
33 logger.info(f"MyAgent initialized with {len(self.tool_registry)} tools: {self.tool_registry.get_all_names()}")
34
35 async def _execute_tool(self, function_name: str, function_args: Dict[str, Any]) -> Any:
36 """
37 执行工具函数
38
39 Args:
40 function_name: 工具名称
41 function_args: 工具参数
42
43 Returns:
44 工具执行结果
45 """
46 logger.info(f"🔧 Executing: {function_name}")
47 logger.info(f"📝 Args: {json.dumps(function_args, ensure_ascii=False)}")
48
49 # 通过注册表执行工具
50 result = await self.tool_registry.execute(function_name, **function_args)
51
52 logger.info(f"✅ Result: {result}")
53 return result
54
55 def get_registered_tools(self) -> list:
56 """获取所有工具的OpenAI格式定义"""
57 return self.tool_registry.get_all_definitions()
58
59 async def execute(self, context: Dict[str, Any], params: Dict[str, Any]) -> Dict[str, Any]:
60 """
61 执行Agent任务
62
63 Args:
64 context: {"query": "用户问题"}
65 params: {"temperature": 0.7}
66 """
67 query = context.get("query", "")
68
69 if not query:
70 return {"status": "error", "error": "No query provided"}
71
72 logger.info(f"📥 Query: {query}")
73
74 try:
75 # 获取所有工具定义
76 tools = self.get_registered_tools()
77
78 # 调用模型(假设base_agent中有这个方法)
79 response = await self._call_model_with_tools(
80 prompt=query,
81 tools=tools,

Callers 1

mainFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected