dspy.Tool
dspy.Tool(func: Callable, name: Optional[str] = None, desc: Optional[str] = None, args: Optional[dict[str, Any]] = None, arg_types: Optional[dict[str, Any]] = None, arg_desc: Optional[dict[str, str]] = None)
Tool 类。
此类用于简化在 LLM 中进行工具调用(函数调用)的工具创建。目前仅支持函数。
初始化 Tool 类。
用户可以选择指定 name
、desc
、args
和 arg_types
,或者让 dspy.Tool
从函数中自动推断值。对于用户指定的值,将不会对其执行自动推断。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
func
|
Callable
|
工具包装的实际函数。 |
必需 |
name
|
可选[字符串]
|
工具的名称。默认为 None。 |
None
|
desc
|
可选[字符串]
|
工具的描述。默认为 None。 |
None
|
args
|
可选[字典[字符串, 任意类型]]
|
工具的参数及其模式,表示为一个字典,从参数名称到参数的 JSON 模式。默认为 None。 |
None
|
arg_types
|
可选[字典[字符串, 任意类型]]
|
工具的参数类型,表示为一个字典,从参数名称到参数的类型。默认为 None。 |
None
|
arg_desc
|
可选[字典[字符串, 字符串]]
|
每个参数的描述,表示为一个字典,从参数名称到描述字符串。默认为 None。 |
None
|
Example
def foo(x: int, y: str = "hello"):
return str(x) + y
tool = Tool(foo)
print(tool.args)
# Expected output: {'x': {'type': 'integer'}, 'y': {'type': 'string', 'default': 'hello'}}
源代码位于 dspy/primitives/tool.py
函数
__call__(**kwargs)
源代码位于 dspy/primitives/tool.py
acall(**kwargs)
async
源代码位于 dspy/primitives/tool.py
from_mcp_tool(session: mcp.client.session.ClientSession, tool: mcp.types.Tool) -> Tool
classmethod
从 MCP 工具和 ClientSession 构建 DSPy 工具。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
session
|
ClientSession
|
要使用的 MCP 会话。 |
必需 |
tool
|
工具
|
要转换的 MCP 工具。 |
必需 |
返回值
类型 | 描述 |
---|---|
工具
|
一个 Tool 对象。 |