🔧 修复:组队团战创建所有龙虾座位
问题: - 只传递了 host_agent_id(第一只龙虾) - 导致第二只龙虾没有座位 修复: - 前端:传递 agent_ids(所有龙虾) - 后端:遍历 agent_ids 创建所有龙虾参会者 - 避免重复创建 结果: ✅ 单枪匹马 - 1 座位 ✅ 组队团战(2 龙虾) - 3 座位 ✅ 独当一面(1 龙虾) - 1 座位
This commit is contained in:
@@ -36,7 +36,7 @@ class MeetingViewSet(viewsets.ModelViewSet):
|
||||
|
||||
meeting = serializer.save(host=host)
|
||||
|
||||
# 指定主持龙虾(可选)
|
||||
# 指定主持龙虾(第一只,负责生成纪要)
|
||||
host_agent_id = request.data.get('host_agent_id')
|
||||
host_instance_id = request.data.get('host_instance_id')
|
||||
if host_agent_id:
|
||||
@@ -53,17 +53,22 @@ class MeetingViewSet(viewsets.ModelViewSet):
|
||||
is_host=True
|
||||
)
|
||||
|
||||
# 如果指定了 host_agent_id,创建该龙虾参会者
|
||||
if host_agent_id:
|
||||
# 创建所有龙虾参会者(从 sessions 中获取)
|
||||
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(
|
||||
meeting=meeting,
|
||||
agent_type='openclaw',
|
||||
agent_id=host_agent_id,
|
||||
agent_name=agent_info['agent_name'] if agent_info else host_agent_id,
|
||||
agent_id=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 '🤖',
|
||||
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
|
||||
)
|
||||
|
||||
|
||||
0
docs/ae商业机制.md
Normal file
0
docs/ae商业机制.md
Normal file
@@ -176,8 +176,9 @@ function MeetingList() {
|
||||
|
||||
const res = await axios.post(`${API_BASE}/meetings/`, {
|
||||
topic,
|
||||
auto_add_virtual_agents: !autoAddAgents ? false : agentIds.length === 0, // 如果没有龙虾才添加虚拟的
|
||||
host_agent_id: agentIds.length > 0 ? agentIds[0] : null
|
||||
auto_add_virtual_agents: agentIds.length === 0, // 只有没有龙虾时才添加虚拟的
|
||||
host_agent_id: agentIds.length > 0 ? agentIds[0] : null, // 第一只作为主持龙虾
|
||||
agent_ids: agentIds // 传递所有龙虾
|
||||
});
|
||||
navigate(`/meeting/${res.data.id}`);
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user