41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from .tools.builtin_tools import BUILTIN_TOOLS
|
|
|
|
|
|
def run_declared_tools(tool_names: list[str], user_input: str) -> list[dict]:
|
|
results = []
|
|
for tool_name in tool_names:
|
|
tool = BUILTIN_TOOLS.get(tool_name)
|
|
if tool is None:
|
|
results.append(
|
|
{
|
|
"tool_name": tool_name,
|
|
"success": False,
|
|
"arguments": {"user_input": user_input},
|
|
"result": {},
|
|
"error": "工具未注册",
|
|
}
|
|
)
|
|
continue
|
|
try:
|
|
result = tool(user_input=user_input)
|
|
results.append(
|
|
{
|
|
"tool_name": tool_name,
|
|
"success": True,
|
|
"arguments": {"user_input": user_input},
|
|
"result": result,
|
|
"error": "",
|
|
}
|
|
)
|
|
except Exception as exc:
|
|
results.append(
|
|
{
|
|
"tool_name": tool_name,
|
|
"success": False,
|
|
"arguments": {"user_input": user_input},
|
|
"result": {},
|
|
"error": str(exc),
|
|
}
|
|
)
|
|
return results
|