119 lines
3.2 KiB
Bash
Executable File
119 lines
3.2 KiB
Bash
Executable File
#!/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 "=========================================="
|