liurenchaxin/examples/debates/adk_debate_test.py

130 lines
3.2 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
稷下学宫 Google ADK 论道系统测试
基于 Google ADK 的八仙论道原型
"""
import os
import asyncio
from google.adk import Agent
from google.adk.tools import FunctionTool
# 八仙智能体定义
def create_baxian_agents():
"""创建八仙智能体"""
# 铁拐李 - 逆向思维专家
tie_guai_li = Agent(
name="铁拐李",
model="gemini-2.5-flash"
)
# 汉钟离 - 平衡协调者
han_zhong_li = Agent(
name="汉钟离",
model="gemini-2.5-flash"
)
# 张果老 - 历史智慧者
zhang_guo_lao = Agent(
name="张果老",
model="gemini-2.5-flash"
)
# 蓝采和 - 创新思维者
lan_cai_he = Agent(
name="蓝采和",
model="gemini-2.5-flash"
)
# 何仙姑 - 直觉洞察者
he_xian_gu = Agent(
name="何仙姑",
model="gemini-2.5-flash"
)
# 吕洞宾 - 理性分析者
lu_dong_bin = Agent(
name="吕洞宾",
model="gemini-2.5-flash"
)
# 韩湘子 - 艺术感知者
han_xiang_zi = Agent(
name="韩湘子",
model="gemini-2.5-flash"
)
# 曹国舅 - 实务执行者
cao_guo_jiu = Agent(
name="曹国舅",
model="gemini-2.5-flash"
)
return {
"铁拐李": tie_guai_li,
"汉钟离": han_zhong_li,
"张果老": zhang_guo_lao,
"蓝采和": lan_cai_he,
"何仙姑": he_xian_gu,
"吕洞宾": lu_dong_bin,
"韩湘子": han_xiang_zi,
"曹国舅": cao_guo_jiu
}
def test_single_agent():
"""测试单个智能体"""
print("🧪 测试单个智能体...")
# 创建铁拐李智能体
tie_guai_li = Agent(
name="铁拐李",
model="gemini-2.5-flash"
)
print(f"✅ 智能体 '{tie_guai_li.name}' 创建成功")
print(f"📱 使用模型: {tie_guai_li.model}")
return tie_guai_li
def test_baxian_creation():
"""测试八仙智能体创建"""
print("\n🎭 创建八仙智能体...")
baxian = create_baxian_agents()
print(f"✅ 成功创建 {len(baxian)} 个智能体:")
for name, agent in baxian.items():
print(f" - {name}: {agent.model}")
return baxian
def main():
"""主测试函数"""
print("🚀 开始稷下学宫 ADK 论道系统测试...")
# 检查API密钥
api_key = os.getenv('GOOGLE_API_KEY')
if not api_key:
print("❌ 未找到 GOOGLE_API_KEY 环境变量")
print("请使用: doppler run -- python src/jixia/debates/adk_debate_test.py")
return
print(f"✅ API密钥已配置 (长度: {len(api_key)} 字符)")
# 测试单个智能体
single_agent = test_single_agent()
# 测试八仙智能体创建
baxian = test_baxian_creation()
print("\n🎉 ADK 论道系统基础测试完成!")
print("\n📝 下一步:")
print(" 1. 实现智能体间的对话逻辑")
print(" 2. 集成 RapidAPI 数据源")
print(" 3. 创建论道主题和流程")
print(" 4. 连接 Streamlit 界面")
if __name__ == "__main__":
main()