Skip to content

Commit 2757f2f

Browse files
committed
feat(integrations): 添加 skill_tools 集成支持
在多个集成框架中添加了 `skill_tools` 函数,用于将 Skill 封装为不同 AI 框架的工具列表,包括 CrewAI、LangChain、PydanticAI、LangGraph、AgentScope 和 Google ADK。同时更新了相关的初始化文件和工具加载器。 Co-developed-by: Aone Copilot <noreply@alibaba-inc.com> Signed-off-by: Sodawyx <sodawyx@126.com>
1 parent 7d33985 commit 2757f2f

File tree

17 files changed

+1554
-2
lines changed

17 files changed

+1554
-2
lines changed

agentrun/integration/agentscope/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
knowledgebase_toolset,
88
model,
99
sandbox_toolset,
10+
skill_tools,
1011
tool_resource,
1112
toolset,
1213
)
@@ -17,4 +18,5 @@
1718
"sandbox_toolset",
1819
"knowledgebase_toolset",
1920
"tool_resource",
21+
"skill_tools",
2022
]

agentrun/integration/agentscope/builtin.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
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 skill_tools as _skill_tools
1718
from agentrun.integration.builtin import tool_resource as _tool_resource
1819
from agentrun.integration.builtin import toolset as _toolset
1920
from agentrun.integration.utils.tool import Tool
@@ -106,3 +107,18 @@ def knowledgebase_toolset(
106107
modify_tool_name=modify_tool_name,
107108
filter_tools_by_name=filter_tools_by_name,
108109
)
110+
111+
112+
def skill_tools(
113+
name: Optional[Union[str, List[str]]] = None,
114+
*,
115+
skills_dir: str = ".skills",
116+
prefix: Optional[str] = None,
117+
config: Optional[Config] = None,
118+
) -> List[Any]:
119+
"""将 Skill 封装为 AgentScope 工具列表。 / AgentScope Built-in Skill Integration"""
120+
121+
ts = _skill_tools(name=name, skills_dir=skills_dir, config=config)
122+
return ts.to_agentscope(
123+
prefix=prefix,
124+
)

agentrun/integration/builtin/__init__.py

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

@@ -17,4 +18,5 @@
1718
"tool_resource",
1819
"sandbox_toolset",
1920
"knowledgebase_toolset",
21+
"skill_tools",
2022
]
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"""内置 Skill 集成函数 / Built-in Skill Integration Functions
2+
3+
提供快速创建 Skill 工具集对象的便捷函数。
4+
Provides convenient functions for quickly creating Skill toolset objects.
5+
"""
6+
7+
from typing import List, Optional, Union
8+
9+
from agentrun.integration.utils.skill_loader import skill_tools as _skill_tools
10+
from agentrun.integration.utils.tool import CommonToolSet
11+
from agentrun.utils.config import Config
12+
13+
# Re-export for convenience
14+
skill_tools = _skill_tools
15+
16+
__all__ = ["skill_tools"]
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
"""内置 ToolResource 集成函数 / Built-in ToolResource Integration Functions
2+
3+
提供快速创建通用工具集对象的便捷函数(基于新版 Tool 模块)。
4+
Provides convenient functions for quickly creating common toolset objects (based on new Tool module).
5+
"""
6+
7+
from typing import Optional, Union
8+
9+
from agentrun.integration.utils.tool import CommonToolSet
10+
from agentrun.tool.client import ToolClient
11+
from agentrun.tool.tool import Tool as ToolResourceType
12+
from agentrun.utils.config import Config
13+
14+
15+
def tool_resource(
16+
input: Union[str, ToolResourceType], config: Optional[Config] = None
17+
) -> CommonToolSet:
18+
"""将 ToolResource 封装为通用工具集 / Wrap ToolResource as CommonToolSet
19+
20+
支持从工具名称或 ToolResource 实例创建通用工具集。
21+
Supports creating CommonToolSet from tool name or ToolResource instance.
22+
23+
Args:
24+
input: 工具名称或 ToolResource 实例 / Tool name or ToolResource instance
25+
config: 配置对象 / Configuration object
26+
27+
Returns:
28+
CommonToolSet: 通用工具集实例 / CommonToolSet instance
29+
30+
Examples:
31+
>>> # 从工具名称创建 / Create from tool name
32+
>>> ts = tool_resource("my-tool")
33+
>>>
34+
>>> # 从 ToolResource 实例创建 / Create from ToolResource instance
35+
>>> tool = ToolClient().get(name="my-tool")
36+
>>> ts = tool_resource(tool)
37+
>>>
38+
>>> # 转换为 LangChain 工具 / Convert to LangChain tools
39+
>>> lc_tools = ts.to_langchain()
40+
"""
41+
42+
resource = (
43+
input
44+
if isinstance(input, ToolResourceType)
45+
else ToolClient().get(name=input, config=config)
46+
)
47+
48+
return CommonToolSet.from_agentrun_tool(resource, config=config)

agentrun/integration/crewai/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
knowledgebase_toolset,
99
model,
1010
sandbox_toolset,
11+
skill_tools,
1112
tool_resource,
1213
)
1314

@@ -16,4 +17,5 @@
1617
"sandbox_toolset",
1718
"knowledgebase_toolset",
1819
"tool_resource",
20+
"skill_tools",
1921
]

agentrun/integration/crewai/builtin.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
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 skill_tools as _skill_tools
1718
from agentrun.integration.builtin import tool_resource as _tool_resource
1819
from agentrun.integration.builtin import toolset as _toolset
1920
from agentrun.integration.utils.tool import Tool
@@ -106,3 +107,18 @@ def knowledgebase_toolset(
106107
modify_tool_name=modify_tool_name,
107108
filter_tools_by_name=filter_tools_by_name,
108109
)
110+
111+
112+
def skill_tools(
113+
name: Optional[Union[str, List[str]]] = None,
114+
*,
115+
skills_dir: str = ".skills",
116+
prefix: Optional[str] = None,
117+
config: Optional[Config] = None,
118+
) -> List[Any]:
119+
"""将 Skill 封装为 CrewAI 工具列表。 / CrewAI Built-in Skill Integration"""
120+
121+
ts = _skill_tools(name=name, skills_dir=skills_dir, config=config)
122+
return ts.to_crewai(
123+
prefix=prefix,
124+
)

agentrun/integration/google_adk/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
knowledgebase_toolset,
88
model,
99
sandbox_toolset,
10+
skill_tools,
1011
tool_resource,
1112
toolset,
1213
)
@@ -17,4 +18,5 @@
1718
"sandbox_toolset",
1819
"knowledgebase_toolset",
1920
"tool_resource",
21+
"skill_tools",
2022
]

agentrun/integration/google_adk/builtin.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
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 skill_tools as _skill_tools
1718
from agentrun.integration.builtin import tool_resource as _tool_resource
1819
from agentrun.integration.builtin import toolset as _toolset
1920
from agentrun.integration.utils.tool import Tool
@@ -106,3 +107,18 @@ def knowledgebase_toolset(
106107
modify_tool_name=modify_tool_name,
107108
filter_tools_by_name=filter_tools_by_name,
108109
)
110+
111+
112+
def skill_tools(
113+
name: Optional[Union[str, List[str]]] = None,
114+
*,
115+
skills_dir: str = ".skills",
116+
prefix: Optional[str] = None,
117+
config: Optional[Config] = None,
118+
) -> List[Any]:
119+
"""将 Skill 封装为 Google ADK 工具列表。 / Google ADK Built-in Skill Integration"""
120+
121+
ts = _skill_tools(name=name, skills_dir=skills_dir, config=config)
122+
return ts.to_google_adk(
123+
prefix=prefix,
124+
)

agentrun/integration/langchain/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
knowledgebase_toolset,
2525
model,
2626
sandbox_toolset,
27+
skill_tools,
2728
tool_resource,
2829
toolset,
2930
)
@@ -35,4 +36,5 @@
3536
"sandbox_toolset",
3637
"knowledgebase_toolset",
3738
"tool_resource",
39+
"skill_tools",
3840
]

0 commit comments

Comments
 (0)