new version
This commit is contained in:
Executable
+118
@@ -0,0 +1,118 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Search Agent 测试脚本
|
||||
# 测试通过 agent-manager 创建和使用 search agent
|
||||
|
||||
set -e
|
||||
|
||||
AGENT_MANAGER_URL="${AGENT_MANAGER_URL:-http://localhost:8000}"
|
||||
AGENT_NAME="test-search-agent-$(date +%s)"
|
||||
IMAGE="agnettaiji.azurecr.io/ai-agents/search-agent:v1.0"
|
||||
|
||||
echo "=========================================="
|
||||
echo "Search Agent 集成测试"
|
||||
echo "=========================================="
|
||||
echo "Agent Manager: ${AGENT_MANAGER_URL}"
|
||||
echo "Agent Name: ${AGENT_NAME}"
|
||||
echo "Image: ${IMAGE}"
|
||||
echo ""
|
||||
|
||||
# 1. 创建 Agent
|
||||
echo "📝 步骤 1: 创建 Search Agent..."
|
||||
CREATE_RESPONSE=$(curl -s -X POST "${AGENT_MANAGER_URL}/agents" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"name": "'"${AGENT_NAME}"'",
|
||||
"template": "search_agent",
|
||||
"config": {
|
||||
"cpu_request": "500m",
|
||||
"memory_request": "512Mi",
|
||||
"cpu_limit": "1000m",
|
||||
"memory_limit": "1Gi"
|
||||
},
|
||||
"env": {
|
||||
"LLM_BASE_URL": "https://apis.openroutex.com/openai/deployments/xchat52",
|
||||
"LLM_API_KEY": "your-llm-key",
|
||||
"LLM_MODEL": "xchat52",
|
||||
"SERPER_API_KEY": "your-serper-key",
|
||||
"JINA_API_KEY": "your-jina-key",
|
||||
"MAX_ITERATIONS": "3",
|
||||
"LOG_LEVEL": "INFO"
|
||||
}
|
||||
}')
|
||||
|
||||
echo "响应: ${CREATE_RESPONSE}"
|
||||
echo ""
|
||||
|
||||
# 检查创建是否成功
|
||||
if echo "${CREATE_RESPONSE}" | grep -q "error"; then
|
||||
echo "❌ 创建失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ Agent 创建成功"
|
||||
echo ""
|
||||
|
||||
# 2. 等待 Agent 启动
|
||||
echo "⏳ 步骤 2: 等待 Agent 启动..."
|
||||
sleep 10
|
||||
|
||||
# 3. 获取 Agent 状态
|
||||
echo "📊 步骤 3: 获取 Agent 状态..."
|
||||
STATUS_RESPONSE=$(curl -s "${AGENT_MANAGER_URL}/agents/${AGENT_NAME}/status")
|
||||
echo "状态: ${STATUS_RESPONSE}"
|
||||
echo ""
|
||||
|
||||
# 4. 获取 Agent 服务 URL
|
||||
SERVICE_URL=$(echo "${STATUS_RESPONSE}" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('service_url', ''))" 2>/dev/null || echo "")
|
||||
echo "Service URL: ${SERVICE_URL}"
|
||||
echo ""
|
||||
|
||||
if [ -z "${SERVICE_URL}" ]; then
|
||||
echo "❌ 无法获取 Service URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 5. 测试健康检查
|
||||
echo "🏥 步骤 4: 测试健康检查..."
|
||||
HEALTH_RESPONSE=$(curl -s "${SERVICE_URL}/health")
|
||||
echo "健康检查响应: ${HEALTH_RESPONSE}"
|
||||
echo ""
|
||||
|
||||
# 6. 测试搜索功能(如果有配置的 API keys)
|
||||
echo "🔍 步骤 5: 测试搜索功能..."
|
||||
SEARCH_RESPONSE=$(curl -s -X POST "${SERVICE_URL}/search" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"query": "什么是Kubernetes?",
|
||||
"auto_configure": true
|
||||
}')
|
||||
echo "搜索响应: ${SEARCH_RESPONSE}"
|
||||
echo ""
|
||||
|
||||
# 7. 列出所有 Agents
|
||||
echo "📋 步骤 6: 列出所有 Agents..."
|
||||
LIST_RESPONSE=$(curl -s "${AGENT_MANAGER_URL}/agents")
|
||||
echo "Agent 列表: ${LIST_RESPONSE}"
|
||||
echo ""
|
||||
|
||||
# 8. 清理(可选)
|
||||
read -p "是否删除测试 Agent? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "🗑️ 删除 Agent..."
|
||||
DELETE_RESPONSE=$(curl -s -X DELETE "${AGENT_MANAGER_URL}/agents/${AGENT_NAME}")
|
||||
echo "删除响应: ${DELETE_RESPONSE}"
|
||||
echo ""
|
||||
echo "✅ Agent 已删除"
|
||||
else
|
||||
echo "⏭️ 保留 Agent: ${AGENT_NAME}"
|
||||
echo ""
|
||||
echo "手动删除命令:"
|
||||
echo " curl -X DELETE ${AGENT_MANAGER_URL}/agents/${AGENT_NAME}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "测试完成!"
|
||||
echo "=========================================="
|
||||
Executable
+34
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env python3
|
||||
"""测试 search_agent.py 的导入"""
|
||||
import sys
|
||||
import os
|
||||
|
||||
# 模拟 Docker 容器中的路径结构
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'search_agent'))
|
||||
|
||||
print("当前工作目录:", os.getcwd())
|
||||
print("Python 路径:", sys.path[:3])
|
||||
print("")
|
||||
|
||||
try:
|
||||
print("测试导入 config...")
|
||||
from config import Config
|
||||
print("✅ config.Config 导入成功")
|
||||
|
||||
print("\n测试导入 agent.search_agent...")
|
||||
from agent.search_agent import SearchAgent
|
||||
print("✅ agent.search_agent.SearchAgent 导入成功")
|
||||
|
||||
print("\n测试导入 agent_callback_utils...")
|
||||
from agent_callback_utils import AgentCallbackHandler, CallbackContextManager
|
||||
print("✅ agent_callback_utils 导入成功")
|
||||
|
||||
print("\n" + "="*50)
|
||||
print("✅ 所有导入测试通过!")
|
||||
print("="*50)
|
||||
|
||||
except Exception as e:
|
||||
print(f"\n❌ 导入失败: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user