| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- from hello_agents.protocols.a2a.implementation import A2AServer, A2A_AVAILABLE
- def create_calculator_agent():
- """创建一个计算器智能体"""
- if not A2A_AVAILABLE:
- print("❌ A2A SDK 未安装,请运行: pip install a2a-sdk")
- return None
- print("🧮 创建计算器智能体")
- # 创建 A2A 服务器
- calculator = A2AServer(
- name="calculator-agent",
- description="专业的数学计算智能体",
- version="1.0.0",
- capabilities={
- "math": ["addition", "subtraction", "multiplication", "division"],
- "advanced": ["power", "sqrt", "factorial"]
- }
- )
- # 添加基础计算技能
- @calculator.skill("add")
- def add_numbers(query: str) -> str:
- """加法计算"""
- try:
- # 简单解析 "计算 5 + 3" 格式
- parts = query.replace("计算", "").replace("加", "+").replace("加上", "+")
- if "+" in parts:
- numbers = [float(x.strip()) for x in parts.split("+")]
- result = sum(numbers)
- return f"计算结果: {' + '.join(map(str, numbers))} = {result}"
- else:
- return "请使用格式: 计算 5 + 3"
- except Exception as e:
- return f"计算错误: {e}"
- @calculator.skill("multiply")
- def multiply_numbers(query: str) -> str:
- """乘法计算"""
- try:
- parts = query.replace("计算", "").replace("乘以", "*").replace("×", "*")
- if "*" in parts:
- numbers = [float(x.strip()) for x in parts.split("*")]
- result = 1
- for num in numbers:
- result *= num
- return f"计算结果: {' × '.join(map(str, numbers))} = {result}"
- else:
- return "请使用格式: 计算 5 * 3"
- except Exception as e:
- return f"计算错误: {e}"
- @calculator.skill("info")
- def get_info(query: str) -> str:
- """获取智能体信息"""
- return f"我是 {calculator.name},可以进行基础数学计算。支持的技能: {list(calculator.skills.keys())}"
- print(f"✅ 计算器智能体创建成功,支持技能: {list(calculator.skills.keys())}")
- return calculator
- # 创建智能体
- calc_agent = create_calculator_agent()
- if calc_agent:
- # 测试技能
- print("\n🧪 测试智能体技能:")
- test_queries = [
- "获取信息",
- "计算 10 + 5",
- "计算 6 * 7"
- ]
- for query in test_queries:
- if "信息" in query:
- result = calc_agent.skills["info"](query)
- elif "+" in query:
- result = calc_agent.skills["add"](query)
- elif "*" in query or "×" in query:
- result = calc_agent.skills["multiply"](query)
- else:
- result = "未知查询类型"
- print(f" 📝 查询: {query}")
- print(f" 🤖 回复: {result}")
- print()
|