From 1954a768f3febdce24f047df236e6aa3d956733e Mon Sep 17 00:00:00 2001 From: flying-hero <462087392@qq.com> Date: Sat, 4 Apr 2026 16:50:30 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20=E4=BF=AE=E5=A4=8D=EF=BC=9A?= =?UTF-8?q?=E7=BB=84=E9=98=9F=E5=9B=A2=E6=88=98=E6=97=B6=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=89=80=E6=9C=89=E9=BE=99=E8=99=BE=E5=BA=A7=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题: - 登录选了 N 只龙虾,但创建会议只有人类座位 修复: - 前端:创建会议时传递 host_agent_id(第一只龙虾) - 后端:根据 host_agent_id 创建龙虾参会者 - 优化:只有没有龙虾时才添加虚拟坐席 结果: ✅ 单枪匹马 - 1 个座位 ✅ 组队团战(2 龙虾)- 3 个座位 ✅ 独当一面(1 龙虾)- 1 个座位 --- backend/meetings/views.py | 6 +++--- frontend/src/App.js | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/backend/meetings/views.py b/backend/meetings/views.py index ad8b80a9..19427434 100644 --- a/backend/meetings/views.py +++ b/backend/meetings/views.py @@ -53,7 +53,7 @@ class MeetingViewSet(viewsets.ModelViewSet): is_host=True ) - # 创建虚拟龙虾参会者(如果指定了 host_agent_id) + # 如果指定了 host_agent_id,创建该龙虾参会者 if host_agent_id: Participant.objects.create( meeting=meeting, @@ -65,8 +65,8 @@ class MeetingViewSet(viewsets.ModelViewSet): is_host=False ) - # 如果没有指定 host_agent_id,创建两个虚拟龙虾 - if not host_agent_id and request.data.get('auto_add_virtual_agents', True): + # 如果没有龙虾,添加虚拟坐席 + if request.data.get('auto_add_virtual_agents', False): Participant.objects.create( meeting=meeting, agent_type='openclaw', diff --git a/frontend/src/App.js b/frontend/src/App.js index bfb33e37..ef597137 100644 --- a/frontend/src/App.js +++ b/frontend/src/App.js @@ -167,9 +167,14 @@ function MeetingList() { const createMeeting = async (e) => { e.preventDefault(); try { + // 获取当前登录的龙虾 + const sessions = JSON.parse(localStorage.getItem('sessions') || '[]'); + const agentIds = sessions.filter(s => s.session_type === 'agent').map(s => s.agent_id); + const res = await axios.post(`${API_BASE}/meetings/`, { topic, - auto_add_virtual_agents: autoAddAgents + auto_add_virtual_agents: !autoAddAgents ? false : agentIds.length === 0, // 如果没有龙虾才添加虚拟的 + host_agent_id: agentIds.length > 0 ? agentIds[0] : null }); navigate(`/meeting/${res.data.id}`); } catch (error) {