1
0

06_MultiAgentDocumentAssist.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. """
  2. 多Agent协作的智能文档助手
  3. 使用两个SimpleAgent分工协作:
  4. - Agent1:GitHub搜索专家
  5. - Agent2:文档生成专家
  6. """
  7. from hello_agents import SimpleAgent, HelloAgentsLLM
  8. from hello_agents.tools import MCPTool
  9. from dotenv import load_dotenv
  10. # 加载.env文件中的环境变量
  11. load_dotenv(dotenv_path="../HelloAgents/.env")
  12. print("="*70)
  13. print("多Agent协作的智能文档助手")
  14. print("="*70)
  15. # ============================================================
  16. # Agent 1: GitHub搜索专家
  17. # ============================================================
  18. print("\n【步骤1】创建GitHub搜索专家...")
  19. github_searcher = SimpleAgent(
  20. name="GitHub搜索专家",
  21. llm=HelloAgentsLLM(),
  22. system_prompt="""你是一个GitHub搜索专家。
  23. 你的任务是搜索GitHub仓库并返回结果。
  24. 请返回清晰、结构化的搜索结果,包括:
  25. - 仓库名称
  26. - 简短描述
  27. 保持简洁,不要添加额外的解释。"""
  28. )
  29. # 添加GitHub工具
  30. github_tool = MCPTool(
  31. name="gh",
  32. server_command=["npx", "-y", "@modelcontextprotocol/server-github"]
  33. )
  34. github_searcher.add_tool(github_tool)
  35. # ============================================================
  36. # Agent 2: 文档生成专家
  37. # ============================================================
  38. print("\n【步骤2】创建文档生成专家...")
  39. document_writer = SimpleAgent(
  40. name="文档生成专家",
  41. llm=HelloAgentsLLM(),
  42. system_prompt="""你是一个文档生成专家。
  43. 你的任务是根据提供的信息生成结构化的Markdown报告。
  44. 报告应该包括:
  45. - 标题
  46. - 简介
  47. - 主要内容(分点列出,包括项目名称、描述等)
  48. - 总结
  49. 请直接输出完整的Markdown格式报告内容,不要使用工具保存。"""
  50. )
  51. # 添加文件系统工具
  52. fs_tool = MCPTool(
  53. name="fs",
  54. server_command=["npx", "-y", "@modelcontextprotocol/server-filesystem", "."]
  55. )
  56. document_writer.add_tool(fs_tool)
  57. # ============================================================
  58. # 执行任务
  59. # ============================================================
  60. print("\n" + "="*70)
  61. print("开始执行任务...")
  62. print("="*70)
  63. try:
  64. # 步骤1:GitHub搜索
  65. print("\n【步骤3】Agent1 搜索GitHub...")
  66. search_task = "搜索关于'AI agent'的GitHub仓库,返回前5个最相关的结果"
  67. search_results = github_searcher.run(search_task)
  68. print("\n搜索结果:")
  69. print("-" * 70)
  70. print(search_results)
  71. print("-" * 70)
  72. # 步骤2:生成报告
  73. print("\n【步骤4】Agent2 生成报告...")
  74. report_task = f"""
  75. 根据以下GitHub搜索结果,生成一份Markdown格式的研究报告:
  76. {search_results}
  77. 报告要求:
  78. 1. 标题:# AI Agent框架研究报告
  79. 2. 简介:说明这是关于AI Agent的GitHub项目调研
  80. 3. 主要发现:列出找到的项目及其特点(包括名称、描述等)
  81. 4. 总结:总结这些项目的共同特点
  82. 请直接输出完整的Markdown格式报告。
  83. """
  84. report_content = document_writer.run(report_task)
  85. print("\n报告内容:")
  86. print("=" * 70)
  87. print(report_content)
  88. print("=" * 70)
  89. # 步骤3:保存报告
  90. print("\n【步骤5】保存报告到文件...")
  91. import os
  92. try:
  93. with open("report.md", "w", encoding="utf-8") as f:
  94. f.write(report_content)
  95. print("✅ 报告已保存到 report.md")
  96. # 验证文件
  97. file_size = os.path.getsize("report.md")
  98. print(f"✅ 文件大小: {file_size} 字节")
  99. except Exception as e:
  100. print(f"❌ 保存失败: {e}")
  101. print("\n" + "="*70)
  102. print("任务完成!")
  103. print("="*70)
  104. except Exception as e:
  105. print(f"\n❌ 错误: {e}")
  106. import traceback
  107. traceback.print_exc()