🔔 飞行侠实现:实例注册 + Webhook 推送
新功能: - instances 应用:OpenClaw 实例管理 - Instance 模型:实例注册,Agent 列表,Webhook URL - MeetingInstanceMap:会议 - 实例映射 - Webhook 推送:消息发送时自动通知相关实例 API 端点: - POST /api/v1/instances/register/ - 实例注册 - POST /api/v1/instances/join-meeting/ - 加入会议 - GET /api/v1/instances/ - 实例列表 - POST /api/v1/instances/webhook-test/ - Webhook 测试 集成: - send_message API 自动触发 Webhook 推送 - 支持广播和定向推送 测试: - test_webhook.py: 完整测试流程 使用场景: 1. 每台 OpenClaw 机器注册实例 2. Agent 加入会议时关联实例 3. 消息发送时推送到对应机器 4. 本机 OpenClaw 收到通知,触发 Agent 响应
This commit is contained in:
@@ -238,6 +238,26 @@ class MeetingViewSet(viewsets.ModelViewSet):
|
||||
requires_response=request.data.get('requires_response', False)
|
||||
)
|
||||
|
||||
# Webhook 推送通知
|
||||
try:
|
||||
from instances.webhook import push_message_to_instances
|
||||
from meetings.serializers import MessageSerializer
|
||||
|
||||
message_data = MessageSerializer(message).data
|
||||
target_agents = None
|
||||
|
||||
# 如果不是广播,只推送给特定 Agent
|
||||
if not message.is_broadcast:
|
||||
# 从@消息中提取目标 Agent
|
||||
if content.startswith('@'):
|
||||
# 简单解析 @Agent
|
||||
pass
|
||||
|
||||
push_message_to_instances(str(meeting.id), message_data, target_agents)
|
||||
except Exception as e:
|
||||
# Webhook 失败不影响消息发送
|
||||
pass
|
||||
|
||||
return Response(MessageSerializer(message).data, status=status.HTTP_201_CREATED)
|
||||
|
||||
@action(detail=True, methods=['get'])
|
||||
|
||||
Reference in New Issue
Block a user