Files
daily-opencode-workspace/.opencode/skills/uni-agent/setup.sh

108 lines
3.1 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
#
# UniAgent 一键安装脚本
#
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
CONFIG_DIR="$SCRIPT_DIR/config"
echo "=========================================="
echo " UniAgent - 统一智能体协议适配层"
echo " Connect Any Agent, Any Protocol"
echo "=========================================="
echo ""
# 1. 检查 Python
echo "[1/4] 检查 Python 环境..."
if ! command -v python3 &> /dev/null; then
echo "❌ 未找到 Python3请先安装 Python 3.8+"
exit 1
fi
PYTHON_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
echo "✅ Python $PYTHON_VERSION"
# 2. 安装依赖
echo ""
echo "[2/4] 安装 Python 依赖..."
pip3 install -q pyyaml aiohttp anp --break-system-packages 2>/dev/null || pip3 install -q pyyaml aiohttp anp --user 2>/dev/null || pip3 install -q pyyaml aiohttp anp
echo "✅ 依赖安装完成"
# 3. 检查/生成 DID 身份(用于 ANP
echo ""
echo "[3/4] 配置 DID 身份 (ANP 协议)..."
if [ -f "$CONFIG_DIR/did.json" ] && [ -f "$CONFIG_DIR/private-key.pem" ]; then
echo "✅ 已存在 DID 身份,跳过生成"
DID_ID=$(python3 -c "import json; print(json.load(open('$CONFIG_DIR/did.json'))['id'])" 2>/dev/null || echo "unknown")
echo " DID: $DID_ID"
else
echo "⚙️ 生成本地临时身份..."
# 生成 secp256k1 私钥
openssl ecparam -name secp256k1 -genkey -noout -out "$CONFIG_DIR/private-key.pem" 2>/dev/null
# 生成随机 ID
RANDOM_ID=$(openssl rand -hex 8)
# 创建 DID 文档
cat > "$CONFIG_DIR/did.json" << EOF
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/secp256k1-2019/v1"
],
"id": "did:wba:local:user:$RANDOM_ID",
"verificationMethod": [
{
"id": "did:wba:local:user:$RANDOM_ID#key-1",
"type": "EcdsaSecp256k1VerificationKey2019",
"controller": "did:wba:local:user:$RANDOM_ID"
}
],
"authentication": [
"did:wba:local:user:$RANDOM_ID#key-1"
]
}
EOF
echo "✅ 本地身份生成完成"
echo " DID: did:wba:local:user:$RANDOM_ID"
fi
# 4. 验证安装
echo ""
echo "[4/4] 验证安装..."
cd "$SCRIPT_DIR"
if python3 scripts/uni_cli.py list &> /dev/null; then
echo "✅ 安装成功!"
else
echo "⚠️ 安装可能有问题,请检查错误信息"
fi
echo ""
echo "=========================================="
echo " 安装完成!"
echo "=========================================="
echo ""
echo "支持的协议:"
echo " - ANP (Agent Network Protocol) ✅ 已实现"
echo " - MCP (Model Context Protocol) ✅ 已实现"
echo " - A2A (Agent-to-Agent) ✅ 已实现"
echo " - AITP (Agent Interaction & Tx) ✅ 已实现"
echo " - AP (Agent Protocol) ✅ 已实现"
echo " - LMOS (Eclipse LMOS) ✅ 已实现"
echo ""
echo "快速开始:"
echo ""
echo " # 列出已注册 Agent"
echo " python scripts/uni_cli.py list"
echo ""
echo " # 调用 ANP Agent 查天气"
echo " python scripts/uni_cli.py call amap@anp maps_weather '{\"city\":\"北京\"}'"
echo ""
echo " # 查看 Agent 方法"
echo " python scripts/uni_cli.py methods amap@anp"
echo ""