mirror of https://github.com/kortix-ai/suna.git
136 lines
4.9 KiB
Python
136 lines
4.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test script to verify enhanced response processor for agent builder tools.
|
|
"""
|
|
|
|
import asyncio
|
|
import json
|
|
from backend.agentpress.response_processor import ResponseProcessor
|
|
from backend.agentpress.tool_registry import ToolRegistry
|
|
from backend.agentpress.tool import ToolResult
|
|
|
|
class MockTool:
|
|
"""Mock tool for testing."""
|
|
|
|
def success_response(self, data):
|
|
return ToolResult(success=True, output=json.dumps(data, indent=2))
|
|
|
|
def fail_response(self, msg):
|
|
return ToolResult(success=False, output=msg)
|
|
|
|
async def mock_add_message(thread_id, type, content, is_llm_message, metadata=None):
|
|
"""Mock add message callback."""
|
|
return {
|
|
"message_id": "test-message-id",
|
|
"thread_id": thread_id,
|
|
"type": type,
|
|
"content": content,
|
|
"is_llm_message": is_llm_message,
|
|
"metadata": metadata or {}
|
|
}
|
|
|
|
def test_update_agent_response():
|
|
"""Test update_agent tool response formatting."""
|
|
|
|
# Create mock tool result for update_agent
|
|
mock_tool = MockTool()
|
|
update_result = mock_tool.success_response({
|
|
"message": "Agent updated successfully",
|
|
"updated_fields": ["name", "description", "system_prompt"],
|
|
"agent": {
|
|
"agent_id": "test-agent-123",
|
|
"name": "Research Assistant",
|
|
"description": "An AI assistant specialized in research",
|
|
"system_prompt": "You are a research assistant with expertise in gathering, analyzing, and synthesizing information from various sources.",
|
|
"agentpress_tools": {
|
|
"web_search": {"enabled": True, "description": "Search the web"},
|
|
"sb_files": {"enabled": True, "description": "File operations"}
|
|
},
|
|
"configured_mcps": [
|
|
{"name": "Exa Search", "qualifiedName": "exa", "enabledTools": ["search"]}
|
|
],
|
|
"avatar": "🔬",
|
|
"avatar_color": "#4F46E5"
|
|
}
|
|
})
|
|
|
|
# Test with agent builder mode
|
|
tool_registry = ToolRegistry()
|
|
processor = ResponseProcessor(
|
|
tool_registry=tool_registry,
|
|
add_message_callback=mock_add_message,
|
|
is_agent_builder=True,
|
|
target_agent_id="test-agent-123"
|
|
)
|
|
|
|
tool_call = {
|
|
"function_name": "update_agent",
|
|
"xml_tag_name": "update_agent",
|
|
"arguments": {"name": "Research Assistant"}
|
|
}
|
|
|
|
structured_result = processor._create_structured_tool_result(tool_call, update_result)
|
|
|
|
print("=== Agent Builder Mode - Update Agent Tool Response ===")
|
|
print(structured_result["summary"])
|
|
print("\n" + "="*60 + "\n")
|
|
|
|
# Test without agent builder mode
|
|
processor_normal = ResponseProcessor(
|
|
tool_registry=tool_registry,
|
|
add_message_callback=mock_add_message,
|
|
is_agent_builder=False
|
|
)
|
|
|
|
structured_result_normal = processor_normal._create_structured_tool_result(tool_call, update_result)
|
|
|
|
print("=== Normal Mode - Update Agent Tool Response ===")
|
|
print(structured_result_normal["summary"])
|
|
print("\n" + "="*60 + "\n")
|
|
|
|
def test_get_current_agent_config_response():
|
|
"""Test get_current_agent_config tool response formatting."""
|
|
|
|
mock_tool = MockTool()
|
|
config_result = mock_tool.success_response({
|
|
"summary": "Agent 'Research Assistant' has 2 tools enabled and 1 MCP servers configured.",
|
|
"configuration": {
|
|
"agent_id": "test-agent-123",
|
|
"name": "Research Assistant",
|
|
"description": "An AI assistant specialized in research",
|
|
"system_prompt": "You are a research assistant with expertise in gathering, analyzing, and synthesizing information from various sources. Your approach is thorough and methodical.",
|
|
"agentpress_tools": {
|
|
"web_search": {"enabled": True, "description": "Search the web"},
|
|
"sb_files": {"enabled": False, "description": "File operations"}
|
|
},
|
|
"configured_mcps": [],
|
|
"avatar": "🔬",
|
|
"avatar_color": "#4F46E5"
|
|
}
|
|
})
|
|
|
|
tool_registry = ToolRegistry()
|
|
processor = ResponseProcessor(
|
|
tool_registry=tool_registry,
|
|
add_message_callback=mock_add_message,
|
|
is_agent_builder=True,
|
|
target_agent_id="test-agent-123"
|
|
)
|
|
|
|
tool_call = {
|
|
"function_name": "get_current_agent_config",
|
|
"xml_tag_name": "get_current_agent_config",
|
|
"arguments": {}
|
|
}
|
|
|
|
structured_result = processor._create_structured_tool_result(tool_call, config_result)
|
|
|
|
print("=== Agent Builder Mode - Get Current Agent Config Response ===")
|
|
print(structured_result["summary"])
|
|
print("\n" + "="*60 + "\n")
|
|
|
|
if __name__ == "__main__":
|
|
print("Testing Enhanced Response Processor for Agent Builder Tools\n")
|
|
test_update_agent_response()
|
|
test_get_current_agent_config_response()
|
|
print("✅ All tests completed!") |