#!/usr/bin/env python3
"""
测试智能体改进效果的脚本
用于验证pwd命令识别和工具调用优化
"""

import os
import sys
from pathlib import Path

# 添加项目根目录到路径
project_root = Path(__file__).parent
sys.path.insert(0, str(project_root))

from src.agents.agent_universal import UniversalAgent

def test_simple_commands():
    """测试简单命令的识别和执行"""
    print("🧪 测试智能体改进效果")
    print("=" * 50)
    
    # 创建智能体实例
    try:
        agent = UniversalAgent()
        print("✅ 智能体初始化成功")
    except Exception as e:
        print(f"❌ 智能体初始化失败: {e}")
        return
    
    # 测试用例
    test_cases = [
        "pwd",
        "ls",
        "查看当前目录",
        "列出文件",
        "whoami",
        "date"
    ]
    
    print("\n📝 开始测试命令识别:")
    print("-" * 30)
    
    for i, command in enumerate(test_cases, 1):
        print(f"\n测试 {i}: {command}")
        print("-" * 20)
        
        try:
            # 这里我们只测试工具调用逻辑，不实际执行LLM
            # 因为需要API密钥，我们只检查工具注册情况
            tool_registry = agent.tool_registry
            
            # 检查工具注册情况
            print(f"✅ 工具注册表类型: {type(tool_registry)}")
            
            # 尝试获取终端工具
            if hasattr(tool_registry, 'get_tool'):
                terminal_tool = tool_registry.get_tool("terminal_exec")
            elif hasattr(tool_registry, 'tools'):
                terminal_tool = tool_registry.tools.get("terminal_exec")
            else:
                print(f"🔍 ToolRegistry属性: {dir(tool_registry)}")
                terminal_tool = None
            
            if terminal_tool:
                print(f"✅ 终端工具已注册: {terminal_tool.name}")
                print(f"📝 工具描述: {terminal_tool.description}")
                print(f"🔧 支持参数: {terminal_tool.get_parameters()}")
            else:
                print("❌ 终端工具未注册")
                
        except Exception as e:
            print(f"❌ 测试失败: {e}")
    
    print("\n🎯 修改总结:")
    print("-" * 20)
    print("1. ✅ 系统提示词已优化，添加了明确的工具调用规则")
    print("2. ✅ 终端工具描述已改进，更用户友好")
    print("3. ✅ 参数描述已优化，添加了具体示例")
    print("4. ✅ 触发关键词已明确定义")
    print("5. ✅ 添加了更多使用示例")
    
    print("\n📋 预期改进效果:")
    print("-" * 20)
    print("- pwd命令现在应该能正确识别并调用terminal_exec工具")
    print("- '查看当前目录'等自然语言描述也能触发工具调用")
    print("- 智能体不再猜测命令结果，而是调用工具获取真实结果")
    print("- 工具调用更加主动和准确")

if __name__ == "__main__":
    test_simple_commands()
