07_SimpleA2AAgent.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. from hello_agents.protocols.a2a.implementation import A2AServer, A2A_AVAILABLE
  2. def create_calculator_agent():
  3. """创建一个计算器智能体"""
  4. if not A2A_AVAILABLE:
  5. print("❌ A2A SDK 未安装,请运行: pip install a2a-sdk")
  6. return None
  7. print("🧮 创建计算器智能体")
  8. # 创建 A2A 服务器
  9. calculator = A2AServer(
  10. name="calculator-agent",
  11. description="专业的数学计算智能体",
  12. version="1.0.0",
  13. capabilities={
  14. "math": ["addition", "subtraction", "multiplication", "division"],
  15. "advanced": ["power", "sqrt", "factorial"]
  16. }
  17. )
  18. # 添加基础计算技能
  19. @calculator.skill("add")
  20. def add_numbers(query: str) -> str:
  21. """加法计算"""
  22. try:
  23. # 简单解析 "计算 5 + 3" 格式
  24. parts = query.replace("计算", "").replace("加", "+").replace("加上", "+")
  25. if "+" in parts:
  26. numbers = [float(x.strip()) for x in parts.split("+")]
  27. result = sum(numbers)
  28. return f"计算结果: {' + '.join(map(str, numbers))} = {result}"
  29. else:
  30. return "请使用格式: 计算 5 + 3"
  31. except Exception as e:
  32. return f"计算错误: {e}"
  33. @calculator.skill("multiply")
  34. def multiply_numbers(query: str) -> str:
  35. """乘法计算"""
  36. try:
  37. parts = query.replace("计算", "").replace("乘以", "*").replace("×", "*")
  38. if "*" in parts:
  39. numbers = [float(x.strip()) for x in parts.split("*")]
  40. result = 1
  41. for num in numbers:
  42. result *= num
  43. return f"计算结果: {' × '.join(map(str, numbers))} = {result}"
  44. else:
  45. return "请使用格式: 计算 5 * 3"
  46. except Exception as e:
  47. return f"计算错误: {e}"
  48. @calculator.skill("info")
  49. def get_info(query: str) -> str:
  50. """获取智能体信息"""
  51. return f"我是 {calculator.name},可以进行基础数学计算。支持的技能: {list(calculator.skills.keys())}"
  52. print(f"✅ 计算器智能体创建成功,支持技能: {list(calculator.skills.keys())}")
  53. return calculator
  54. # 创建智能体
  55. calc_agent = create_calculator_agent()
  56. if calc_agent:
  57. # 测试技能
  58. print("\n🧪 测试智能体技能:")
  59. test_queries = [
  60. "获取信息",
  61. "计算 10 + 5",
  62. "计算 6 * 7"
  63. ]
  64. for query in test_queries:
  65. if "信息" in query:
  66. result = calc_agent.skills["info"](query)
  67. elif "+" in query:
  68. result = calc_agent.skills["add"](query)
  69. elif "*" in query or "×" in query:
  70. result = calc_agent.skills["multiply"](query)
  71. else:
  72. result = "未知查询类型"
  73. print(f" 📝 查询: {query}")
  74. print(f" 🤖 回复: {result}")
  75. print()