#!/usr/bin/env python3 """ 测试 @Agent 功能 """ import requests API_BASE = 'http://localhost:8000/api/v1' def test_mention_agent(): print("="*60) print("📍 测试 @Agent 功能") print("="*60) # 登录 res = requests.post(f'{API_BASE}/auth/login/', json={ 'username': 'test', 'password': 'test123' }) token = res.json()['token'] headers = {'Authorization': f'Bearer {token}'} print(f"✅ 登录成功") # 创建会议 res = requests.post(f'{API_BASE}/meetings/', json={ 'topic': '@Agent 测试会议' }, headers=headers) meeting_id = res.json()['id'] print(f"✅ 创建会议:{meeting_id}") # Agent A 加入(查信箱自动加入) res = requests.get( f'{API_BASE}/meetings/{meeting_id}/inbox/', params={'agent_id': 'agent_a', 'agent_name': '助手 A', 'agent_emoji': '🤖'} ) print(f"✅ Agent A 加入会议") # Agent B 加入 res = requests.get( f'{API_BASE}/meetings/{meeting_id}/inbox/', params={'agent_id': 'agent_b', 'agent_name': '助手 B', 'agent_emoji': '🦊'} ) print(f"✅ Agent B 加入会议") # 获取参会者列表 res = requests.get(f'{API_BASE}/meetings/{meeting_id}/participants/') participants = res.json() print(f"✅ 参会者列表:{len(participants)} 人") for p in participants: print(f" - {p['nickname']} (ID: {p['agent_id']})") # @Agent A res = requests.post(f'{API_BASE}/meetings/{meeting_id}/mention_agent/', json={ 'target_agent_id': 'agent_a', 'content': '请汇报一下进度', 'sender_agent_id': 'human_user', 'sender_name': '北极星', 'sender_emoji': '⭐' }) if res.status_code == 201: msg = res.json() print(f"✅ @Agent A 成功:{msg['content']}") else: print(f"❌ @Agent 失败:{res.text}") return False # Agent A 查信箱(应该收到 @ 消息) res = requests.get( f'{API_BASE}/meetings/{meeting_id}/inbox/', params={'agent_id': 'agent_a', 'agent_name': '助手 A', 'agent_emoji': '🤖'} ) inbox = res.json() print(f"✅ Agent A 信箱:{inbox['unread_count']} 条未读") # Agent A 回复 res = requests.post(f'{API_BASE}/meetings/{meeting_id}/agent_reply/', json={ 'agent_id': 'agent_a', 'agent_name': '助手 A', 'agent_emoji': '🤖', 'content': '收到!进度正常,已完成 80%。', 'in_reply_to': msg['id'] }) if res.status_code == 201: print(f"✅ Agent A 回复成功") else: print(f"❌ Agent A 回复失败:{res.text}") return False # 获取全部消息 res = requests.get(f'{API_BASE}/meetings/{meeting_id}/messages/?last_id=0') messages = res.json()['messages'] print(f"\n💬 全部消息 ({len(messages)} 条):") for m in messages: reply_info = f" (回复 #{m['in_reply_to']})" if m.get('in_reply_to') else "" print(f" {m['sender_emoji']} {m['sender_name']}: {m['content']}{reply_info}") print("\n" + "="*60) print("✅ @Agent 功能测试通过!") print("="*60) return True if __name__ == '__main__': test_mention_agent()