@export_module("autogen.agentchat.contrib.captainagent")
def format_ag2_tool(tool: Tool):
# get the args first
schema = get_function_schema(tool.func, description=tool.description)
arg_name = list(inspect.signature(tool.func).parameters.keys())[0]
arg_info = schema["function"]["parameters"]["properties"][arg_name]["properties"]
content = f'def {tool.name}({arg_name}):\n """\n'
content += indent(tool.description, " ") + "\n"
content += (
indent(
f"You must format all the arguments into a dictionary and pass them as **kwargs to {arg_name}. You should use print function to get the results.",
" ",
)
+ "\n"
+ indent(f"For example:\n\tresult = {tool.name}({arg_name}={{'arg1': 'value1' }})", " ")
+ "\n"
)
content += indent(f"Arguments passed in {arg_name}:\n", " ")
for arg, info in arg_info.items():
content += indent(f"{arg} ({info['type']}): {info['description']}\n", " " * 2)
content += ' """\n'
return content