diff --git a/src/crewai/agent.py b/src/crewai/agent.py index f68d6401b..5950e6624 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -393,30 +393,22 @@ class Agent(BaseAgent): return description def _render_text_description_and_args(self, tools: List[Any]) -> str: - """Render the tool name, description, and args in plain text. - - Output will be in the format of: - - .. code-block:: markdown - - search: This tool is used for search, args: {"query": {"type": "string"}} - calculator: This tool is used for math, \ - args: {"expression": {"type": "string"}} - """ tool_strings = [] for tool in tools: - args_schema = str(tool.model_fields) - if hasattr(tool, "func") and tool.func: - sig = signature(tool.func) - description = ( - f"Tool Name: {tool.name}{sig}\nTool Description: {tool.description}" - ) - else: - description = ( - f"Tool Name: {tool.name}\nTool Description: {tool.description}" - ) + args_schema = { + name: { + "description": field.description, + "type": field.annotation.__name__, + } + for name, field in tool.args_schema.model_fields.items() + } + description = ( + f"Tool Name: {tool.name}\nTool Description: {tool.description}" + ) tool_strings.append(f"{description}\nTool Arguments: {args_schema}") + print("TOOL STRINGS:", "\n".join(tool_strings)) + return "\n".join(tool_strings) def _validate_docker_installation(self) -> None: