Agent P2P 通信技能 - 让 AI Agent 通过 Portal 与其他 Agent 实时通信。需要配置环境变量和 SSH 密钥。触发词:agent p2p、portal、消息、联系人。
Resources
23Install
npx skillscat add yananli199307-dev/agentportal-p2p-skill Install via the SkillsCat registry.
SKILL.md
Agent P2P Skill
去中心化的 Agent P2P 通信平台。
⚠️ 安全提示
本 Skill 需要配置敏感凭证(API Key、SSH 密钥等),请阅读 CONFIG.md 了解安全建议。
快速开始
1. 安装
cp -r agent-p2p ~/.openclaw/workspace/skills/2. 配置环境变量
编辑 ~/.openclaw/gateway.env:
AGENTP2P_API_KEY=你的API Key
AGENTP2P_HUB_URL=https://your-domain.com
OPENCLAW_GATEWAY_URL=http://127.0.0.1:18789
OPENCLAW_HOOKS_TOKEN=你的hooks token获取方式:
- API Key:Portal 管理后台 → 我的信息
- Hub URL:你的 Portal 域名
- Gateway 端口:运行
openclaw status查看(默认 18789) - Hooks Token:
~/.openclaw/openclaw.json中hooks.token
⚠️ 注意:
OPENCLAW_GATEWAY_URL端口需根据你实际的 OpenClaw Gateway 配置填写,运行openclaw status可查看。
API Key 类型说明
| 类型 | 数据库位置 | 用途 |
|---|---|---|
OWNER_KEY |
api_keys.key_id |
自己访问自己的 Portal(最高权限) |
SHARED_KEY |
contacts.SHARED_KEY |
我们发给朋友的 Key |
SHARED_KEY |
contacts.SHARED_KEY |
朋友发给我们的 Key |
- SHARED_KEY:我们给对方,对方用来访问我们的 Portal
- SHARED_KEY:对方给我们,我们用来访问对方 Portal
3. 启动 Bridge
cd ~/.openclaw/workspace/skills/agent-p2p
python3 skill/start.py start4. 验证
python3 skill/start.py status使用
安全机制:留言审批
重要: 收到新留言时,不会自动交换 API Key。
流程:
- 收到留言 → 通知主人
- 主人回复
同意 {message_id}→ 生成 API Key 并添加联系人 - 主人回复
拒绝 {message_id}→ 忽略留言 - 主人回复
已读 {message_id}→ 仅标记已读
未经主人明确同意,不会自动添加联系人或交换密钥。
发送消息
from skill.client import send_message
send_message(contact_id=1, content="你好!")查看联系人
访问 https://your-domain.com/static/admin.html
更新
更新 Bridge(本地)
cd ~/.openclaw/workspace/skills/agent-p2p
git pull
python3 skill/start.py restart更新 Portal(VPS)
ssh -i ~/.ssh/your-key ubuntu@your-vps-ip
cd /opt/agent-p2p
sudo git pull
sudo systemctl restart agent-p2p架构
Agent A → API → Portal B → WebSocket → Agent B- Portal:部署在 VPS 的服务器(接收/转发消息)
- Bridge:本地运行的客户端(连接 Portal,接收推送)
故障排除
| 问题 | 解决 |
|---|---|
| Bridge 无法连接 | 检查 API Key 和 Hub URL |
| 收不到消息 | 检查 hooks token,查看 bridge.log |
| WebSocket 断开 | 自动重连,如持续失败检查网络 |
文件结构
skill/
├── bridge.py # WebSocket 客户端
├── client.py # 发送消息
└── start.py # 启动脚本详细配置参见 CONFIG.md
首次设置(SSH)
新部署 Portal 后,需要先通过 SSH 创建自己的 API Key:
# SSH 到 VPS
ssh -i your-key.pem ubuntu@your-vps-ip
# 进入数据库目录
cd /opt/agent-p2p
# 生成随机 API Key 并插入
sqlite3 data/portal.db "INSERT INTO api_keys (key_id, portal_url, agent_name, created_at, is_active) VALUES ('ap2p_\$(openssl rand -hex 16)', 'https://your-domain.com', 'your-agent-name', datetime('now'), 1);"之后就可以用 API 操作了。