Skip to content

Commit 0c629bf

Browse files
committed
feat(tool): 添加工具相关的新模块和API接口
此提交添加了一系列新的工具相关的模块和API接口,包括客户端模板、模型定义以及各种控制和OpenAPI接口等组件。同时更新了依赖版本并完善了初始化配置。 Co-developed-by: Aone Copilot <noreply@alibaba-inc.com> Signed-off-by: Sodawyx <sodawyx@126.com>
1 parent dd23d3c commit 0c629bf

File tree

17 files changed

+4391
-1
lines changed

17 files changed

+4391
-1
lines changed

agentrun/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,10 @@
109109
SandboxClient,
110110
Template,
111111
)
112+
# Tool
113+
from agentrun.tool import Tool as ToolResource
114+
from agentrun.tool import ToolClient as ToolResourceClient
115+
from agentrun.tool import ToolControlAPI as ToolResourceControlAPI
112116
# ToolSet
113117
from agentrun.toolset import ToolSet, ToolSetClient
114118
from agentrun.utils.config import Config
@@ -247,6 +251,10 @@
247251
"AioSandbox",
248252
"CustomSandbox",
249253
"Template",
254+
######## Tool ########
255+
"ToolResource",
256+
"ToolResourceClient",
257+
"ToolResourceControlAPI",
250258
######## ToolSet ########
251259
"ToolSetClient",
252260
"ToolSet",
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
"""Tool 客户端 / Tool Client
2+
3+
此模块提供工具的客户端 API。
4+
This module provides the client API for tools.
5+
"""
6+
7+
from typing import Any, Dict, List, Optional
8+
9+
from agentrun.tool.api.control import ToolControlAPI
10+
from agentrun.utils.config import Config
11+
from agentrun.utils.exception import HTTPError
12+
13+
from .tool import Tool
14+
15+
16+
class ToolClient:
17+
"""Tool 客户端 / Tool Client
18+
19+
提供工具的获取功能。
20+
Provides get function for tools.
21+
"""
22+
23+
def __init__(self, config: Optional[Config] = None):
24+
"""初始化客户端 / Initialize client
25+
26+
Args:
27+
config: 配置对象,可选 / Configuration object, optional
28+
"""
29+
self.__control_api = ToolControlAPI(config)
30+
31+
async def get_async(
32+
self,
33+
name: str,
34+
config: Optional[Config] = None,
35+
) -> "Tool":
36+
"""异步获取工具 / Get tool asynchronously
37+
38+
Args:
39+
name: 工具名称 / Tool name
40+
config: 配置对象,可选 / Configuration object, optional
41+
42+
Returns:
43+
Tool: 工具资源对象 / Tool resource object
44+
"""
45+
try:
46+
result = await self.__control_api.get_tool_async(
47+
name=name,
48+
config=config,
49+
)
50+
except HTTPError as e:
51+
raise e.to_resource_error("Tool", name) from e
52+
53+
return Tool.from_inner_object(result)

agentrun/tool/__init__.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
"""Tool 模块 / Tool Module
2+
3+
此模块提供工具管理功能。
4+
This module provides tool management functionality.
5+
"""
6+
7+
from .api.control import ToolControlAPI
8+
from .api.mcp import ToolMCPSession
9+
from .api.openapi import ToolOpenAPIClient
10+
from .client import ToolClient
11+
from .model import (
12+
McpConfig,
13+
ToolCodeConfiguration,
14+
ToolContainerConfiguration,
15+
ToolInfo,
16+
ToolLogConfiguration,
17+
ToolNASConfig,
18+
ToolNetworkConfiguration,
19+
ToolOSSMountConfig,
20+
ToolSchema,
21+
ToolType,
22+
)
23+
from .tool import Tool
24+
25+
__all__ = [
26+
"ToolControlAPI",
27+
"ToolMCPSession",
28+
"ToolOpenAPIClient",
29+
"ToolClient",
30+
"Tool",
31+
"ToolType",
32+
"McpConfig",
33+
"ToolCodeConfiguration",
34+
"ToolContainerConfiguration",
35+
"ToolInfo",
36+
"ToolLogConfiguration",
37+
"ToolNASConfig",
38+
"ToolNetworkConfiguration",
39+
"ToolOSSMountConfig",
40+
"ToolSchema",
41+
]

0 commit comments

Comments
 (0)