Skip to content

Commit 8af1ef8

Browse files
committed
feat(integrations): 添加 tool_resource 函数支持多框架集成
在多个集成模块中添加了 `tool_resource` 函数的支持,允许用户将 ToolResource 封装为不同 AI 框架所需的工具格式,包括 CrewAI、LangChain、PydanticAI、LangGraph 和 AgentScope。同时更新了相关初始化文件以导出新功能。 Co-developed-by: Aone Copilot <noreply@alibaba-inc.com> Signed-off-by: Sodawyx <sodawyx@126.com>
1 parent 1b3b4a3 commit 8af1ef8

File tree

14 files changed

+221
-6
lines changed

14 files changed

+221
-6
lines changed

agentrun/integration/agentscope/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,18 @@
33
提供 AgentRun 模型与沙箱工具的 AgentScope 适配入口。 / 提供 AgentRun 模型with沙箱工具的 AgentScope 适配入口。
44
"""
55

6-
from .builtin import knowledgebase_toolset, model, sandbox_toolset, toolset
6+
from .builtin import (
7+
knowledgebase_toolset,
8+
model,
9+
sandbox_toolset,
10+
tool_resource,
11+
toolset,
12+
)
713

814
__all__ = [
915
"model",
1016
"toolset",
1117
"sandbox_toolset",
1218
"knowledgebase_toolset",
19+
"tool_resource",
1320
]

agentrun/integration/agentscope/builtin.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414
from agentrun.integration.builtin import model as _model
1515
from agentrun.integration.builtin import ModelArgs
1616
from agentrun.integration.builtin import sandbox_toolset as _sandbox_toolset
17+
from agentrun.integration.builtin import tool_resource as _tool_resource
1718
from agentrun.integration.builtin import toolset as _toolset
1819
from agentrun.integration.utils.tool import Tool
1920
from agentrun.model import ModelProxy, ModelService
2021
from agentrun.sandbox import TemplateType
22+
from agentrun.tool.tool import Tool as ToolResourceType
2123
from agentrun.toolset import ToolSet
2224
from agentrun.utils.config import Config
2325

@@ -50,6 +52,24 @@ def toolset(
5052
)
5153

5254

55+
def tool_resource(
56+
name: Union[str, ToolResourceType],
57+
*,
58+
prefix: Optional[str] = None,
59+
modify_tool_name: Optional[Callable[[Tool], Tool]] = None,
60+
filter_tools_by_name: Optional[Callable[[str], bool]] = None,
61+
config: Optional[Config] = None,
62+
) -> List[Any]:
63+
"""将 ToolResource 封装为 AgentScope 工具列表。 / AgentScope Built-in ToolResource Integration"""
64+
65+
ts = _tool_resource(input=name, config=config)
66+
return ts.to_agentscope(
67+
prefix=prefix,
68+
modify_tool_name=modify_tool_name,
69+
filter_tools_by_name=filter_tools_by_name,
70+
)
71+
72+
5373
def sandbox_toolset(
5474
template_name: str,
5575
*,

agentrun/integration/builtin/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
from .knowledgebase import knowledgebase_toolset
88
from .model import model, ModelArgs
99
from .sandbox import sandbox_toolset
10+
from .tool_resource import tool_resource
1011
from .toolset import toolset
1112

1213
__all__ = [
1314
"model",
1415
"ModelArgs",
1516
"toolset",
17+
"tool_resource",
1618
"sandbox_toolset",
1719
"knowledgebase_toolset",
1820
]

agentrun/integration/crewai/__init__.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,16 @@
44
CrewAI 与 LangChain 兼容,因此直接复用 LangChain 的转换逻辑。 / CrewAI with LangChain 兼容,因此直接复用 LangChain 的转换逻辑。
55
"""
66

7-
from .builtin import knowledgebase_toolset, model, sandbox_toolset
7+
from .builtin import (
8+
knowledgebase_toolset,
9+
model,
10+
sandbox_toolset,
11+
tool_resource,
12+
)
813

914
__all__ = [
1015
"model",
1116
"sandbox_toolset",
1217
"knowledgebase_toolset",
18+
"tool_resource",
1319
]

agentrun/integration/crewai/builtin.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414
from agentrun.integration.builtin import model as _model
1515
from agentrun.integration.builtin import ModelArgs
1616
from agentrun.integration.builtin import sandbox_toolset as _sandbox_toolset
17+
from agentrun.integration.builtin import tool_resource as _tool_resource
1718
from agentrun.integration.builtin import toolset as _toolset
1819
from agentrun.integration.utils.tool import Tool
1920
from agentrun.model import ModelProxy, ModelService
2021
from agentrun.sandbox import TemplateType
22+
from agentrun.tool.tool import Tool as ToolResourceType
2123
from agentrun.toolset import ToolSet
2224
from agentrun.utils.config import Config
2325

@@ -50,6 +52,24 @@ def toolset(
5052
)
5153

5254

55+
def tool_resource(
56+
name: Union[str, ToolResourceType],
57+
*,
58+
prefix: Optional[str] = None,
59+
modify_tool_name: Optional[Callable[[Tool], Tool]] = None,
60+
filter_tools_by_name: Optional[Callable[[str], bool]] = None,
61+
config: Optional[Config] = None,
62+
) -> List[Any]:
63+
"""将 ToolResource 封装为 CrewAI 工具列表。 / CrewAI Built-in ToolResource Integration"""
64+
65+
ts = _tool_resource(input=name, config=config)
66+
return ts.to_crewai(
67+
prefix=prefix,
68+
modify_tool_name=modify_tool_name,
69+
filter_tools_by_name=filter_tools_by_name,
70+
)
71+
72+
5373
def sandbox_toolset(
5474
template_name: str,
5575
*,

agentrun/integration/google_adk/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,18 @@
33
提供与 Google Agent Development Kit 的模型与沙箱工具集成。 / 提供with Google Agent Development Kit 的模型with沙箱工具集成。
44
"""
55

6-
from .builtin import knowledgebase_toolset, model, sandbox_toolset, toolset
6+
from .builtin import (
7+
knowledgebase_toolset,
8+
model,
9+
sandbox_toolset,
10+
tool_resource,
11+
toolset,
12+
)
713

814
__all__ = [
915
"model",
1016
"toolset",
1117
"sandbox_toolset",
1218
"knowledgebase_toolset",
19+
"tool_resource",
1320
]

agentrun/integration/google_adk/builtin.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414
from agentrun.integration.builtin import model as _model
1515
from agentrun.integration.builtin import ModelArgs
1616
from agentrun.integration.builtin import sandbox_toolset as _sandbox_toolset
17+
from agentrun.integration.builtin import tool_resource as _tool_resource
1718
from agentrun.integration.builtin import toolset as _toolset
1819
from agentrun.integration.utils.tool import Tool
1920
from agentrun.model import ModelProxy, ModelService
2021
from agentrun.sandbox import TemplateType
22+
from agentrun.tool.tool import Tool as ToolResourceType
2123
from agentrun.toolset import ToolSet
2224
from agentrun.utils.config import Config
2325

@@ -50,6 +52,24 @@ def toolset(
5052
)
5153

5254

55+
def tool_resource(
56+
name: Union[str, ToolResourceType],
57+
*,
58+
prefix: Optional[str] = None,
59+
modify_tool_name: Optional[Callable[[Tool], Tool]] = None,
60+
filter_tools_by_name: Optional[Callable[[str], bool]] = None,
61+
config: Optional[Config] = None,
62+
) -> List[Any]:
63+
"""将 ToolResource 封装为 Google ADK 工具列表。 / Google ADK Built-in ToolResource Integration"""
64+
65+
ts = _tool_resource(input=name, config=config)
66+
return ts.to_google_adk(
67+
prefix=prefix,
68+
modify_tool_name=modify_tool_name,
69+
filter_tools_by_name=filter_tools_by_name,
70+
)
71+
72+
5373
def sandbox_toolset(
5474
template_name: str,
5575
*,

agentrun/integration/langchain/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,19 @@
2020
AgentRunConverter,
2121
) # 向后兼容
2222

23-
from .builtin import knowledgebase_toolset, model, sandbox_toolset, toolset
23+
from .builtin import (
24+
knowledgebase_toolset,
25+
model,
26+
sandbox_toolset,
27+
tool_resource,
28+
toolset,
29+
)
2430

2531
__all__ = [
2632
"AgentRunConverter",
2733
"model",
2834
"toolset",
2935
"sandbox_toolset",
3036
"knowledgebase_toolset",
37+
"tool_resource",
3138
]

agentrun/integration/langchain/builtin.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414
from agentrun.integration.builtin import model as _model
1515
from agentrun.integration.builtin import ModelArgs
1616
from agentrun.integration.builtin import sandbox_toolset as _sandbox_toolset
17+
from agentrun.integration.builtin import tool_resource as _tool_resource
1718
from agentrun.integration.builtin import toolset as _toolset
1819
from agentrun.integration.utils.tool import Tool
1920
from agentrun.model import ModelProxy, ModelService
2021
from agentrun.sandbox import TemplateType
22+
from agentrun.tool.tool import Tool as ToolResourceType
2123
from agentrun.toolset import ToolSet
2224
from agentrun.utils.config import Config
2325

@@ -50,6 +52,24 @@ def toolset(
5052
)
5153

5254

55+
def tool_resource(
56+
name: Union[str, ToolResourceType],
57+
*,
58+
prefix: Optional[str] = None,
59+
modify_tool_name: Optional[Callable[[Tool], Tool]] = None,
60+
filter_tools_by_name: Optional[Callable[[str], bool]] = None,
61+
config: Optional[Config] = None,
62+
) -> List[Any]:
63+
"""将 ToolResource 封装为 LangChain ``StructuredTool`` 列表。 / LangChain Built-in ToolResource Integration"""
64+
65+
ts = _tool_resource(input=name, config=config)
66+
return ts.to_langchain(
67+
prefix=prefix,
68+
modify_tool_name=modify_tool_name,
69+
filter_tools_by_name=filter_tools_by_name,
70+
)
71+
72+
5373
def sandbox_toolset(
5474
template_name: str,
5575
*,

agentrun/integration/langgraph/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,19 @@
2525
"""
2626

2727
from .agent_converter import AgentRunConverter
28-
from .builtin import knowledgebase_toolset, model, sandbox_toolset, toolset
28+
from .builtin import (
29+
knowledgebase_toolset,
30+
model,
31+
sandbox_toolset,
32+
tool_resource,
33+
toolset,
34+
)
2935

3036
__all__ = [
3137
"AgentRunConverter",
3238
"model",
3339
"toolset",
3440
"sandbox_toolset",
3541
"knowledgebase_toolset",
42+
"tool_resource",
3643
]

0 commit comments

Comments
 (0)