🔧 修复:组队团战创建所有龙虾座位

问题:
- 只传递了 host_agent_id(第一只龙虾)
- 导致第二只龙虾没有座位

修复:
- 前端:传递 agent_ids(所有龙虾)
- 后端:遍历 agent_ids 创建所有龙虾参会者
- 避免重复创建

结果:
 单枪匹马 - 1 座位
 组队团战(2 龙虾) - 3 座位
 独当一面(1 龙虾) - 1 座位
This commit is contained in:
2026-04-04 17:27:51 +08:00
parent b27261ce64
commit 9ab279e1fe
3 changed files with 15 additions and 9 deletions

View File

@@ -36,7 +36,7 @@ class MeetingViewSet(viewsets.ModelViewSet):
meeting = serializer.save(host=host) meeting = serializer.save(host=host)
# 指定主持龙虾(可选 # 指定主持龙虾(第一只,负责生成纪要
host_agent_id = request.data.get('host_agent_id') host_agent_id = request.data.get('host_agent_id')
host_instance_id = request.data.get('host_instance_id') host_instance_id = request.data.get('host_instance_id')
if host_agent_id: if host_agent_id:
@@ -53,17 +53,22 @@ class MeetingViewSet(viewsets.ModelViewSet):
is_host=True is_host=True
) )
# 如果指定了 host_agent_id创建该龙虾参会者 # 创建所有龙虾参会者(从 sessions 中获取)
if host_agent_id: agent_ids = request.data.get('agent_ids', [])
for agent_id in agent_ids:
# 避免重复创建
if Participant.objects.filter(meeting=meeting, agent_id=agent_id).exists():
continue
# 从用户绑定的龙虾中获取正确信息 # 从用户绑定的龙虾中获取正确信息
agent_info = host.get_linked_agent(host_agent_id) agent_info = host.get_linked_agent(agent_id)
Participant.objects.create( Participant.objects.create(
meeting=meeting, meeting=meeting,
agent_type='openclaw', agent_type='openclaw',
agent_id=host_agent_id, agent_id=agent_id,
agent_name=agent_info['agent_name'] if agent_info else host_agent_id, agent_name=agent_info['agent_name'] if agent_info else agent_id,
agent_emoji=agent_info.get('agent_emoji', '🤖') if agent_info else '🤖', agent_emoji=agent_info.get('agent_emoji', '🤖') if agent_info else '🤖',
nickname=agent_info['agent_name'] if agent_info else host_agent_id, nickname=agent_info['agent_name'] if agent_info else agent_id,
is_host=False is_host=False
) )

0
docs/ae商业机制.md Normal file
View File

View File

@@ -176,8 +176,9 @@ function MeetingList() {
const res = await axios.post(`${API_BASE}/meetings/`, { const res = await axios.post(`${API_BASE}/meetings/`, {
topic, topic,
auto_add_virtual_agents: !autoAddAgents ? false : agentIds.length === 0, // 如果没有龙虾才添加虚拟的 auto_add_virtual_agents: agentIds.length === 0, // 只有没有龙虾才添加虚拟的
host_agent_id: agentIds.length > 0 ? agentIds[0] : null host_agent_id: agentIds.length > 0 ? agentIds[0] : null, // 第一只作为主持龙虾
agent_ids: agentIds // 传递所有龙虾
}); });
navigate(`/meeting/${res.data.id}`); navigate(`/meeting/${res.data.id}`);
} catch (error) { } catch (error) {