agentUniverse 0.0.10.dev1__tar.gz → 0.0.11.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/PKG-INFO +1 -1
  2. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/executing_agent/executing_agent.py +4 -2
  3. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/chat_memory.py +7 -6
  4. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/memory.py +6 -3
  5. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/expressing_planner/expressing_planner.py +2 -2
  6. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/peer_planner/peer_planner.py +17 -3
  7. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/planner.py +53 -9
  8. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/planning_planner/planning_planner.py +1 -2
  9. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/rag_planner/rag_planner.py +1 -3
  10. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/react_planner/react_planner.py +3 -3
  11. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/react_planner/stream_callback.py +32 -5
  12. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/reviewing_planner/reviewing_planner.py +1 -2
  13. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/request_task.py +8 -3
  14. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/thread_with_result.py +3 -0
  15. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/annotation/trace.py +1 -17
  16. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/component/component_manager_base.py +1 -1
  17. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/monitor/monitor.py +53 -8
  18. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/llm.py +11 -8
  19. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/openai_llm.py +9 -10
  20. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/openai_style_llm.py +8 -7
  21. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/pyproject.toml +1 -1
  22. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/LICENSE +0 -0
  23. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/README_PYPI.md +0 -0
  24. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/__init__.py +0 -0
  25. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/__init__.py +0 -0
  26. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/__init__.py +0 -0
  27. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/__init__.py +0 -0
  28. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/embedding/__init__.py +0 -0
  29. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/embedding/dashscope_embedding.py +0 -0
  30. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/embedding/embedding.py +0 -0
  31. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/embedding/openai_embedding.py +0 -0
  32. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/knowledge.py +0 -0
  33. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/knowledge_manager.py +0 -0
  34. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/reader/__init__.py +0 -0
  35. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/reader/file/__init__.py +0 -0
  36. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/reader/file/docx_reader.py +0 -0
  37. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/reader/file/file_reader.py +0 -0
  38. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/reader/file/pdf_reader.py +0 -0
  39. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/reader/file/pptx_reader.py +0 -0
  40. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/reader/file/web_pdf_reader.py +0 -0
  41. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/reader/reader.py +0 -0
  42. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/store/__init__.py +0 -0
  43. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/store/chroma_store.py +0 -0
  44. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/store/document.py +0 -0
  45. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/store/milvus_store.py +0 -0
  46. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/store/query.py +0 -0
  47. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/knowledge/store/store.py +0 -0
  48. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/tool/__init__.py +0 -0
  49. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/tool/enum.py +0 -0
  50. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/tool/tool.py +0 -0
  51. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/action/tool/tool_manager.py +0 -0
  52. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/agent.py +0 -0
  53. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/agent_manager.py +0 -0
  54. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/agent_model.py +0 -0
  55. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/__init__.py +0 -0
  56. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/executing_agent/__init__.py +0 -0
  57. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/executing_agent/default_cn_prompt.yaml +0 -0
  58. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/executing_agent/default_en_prompt.yaml +0 -0
  59. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/executing_agent/executing_agent.yaml +0 -0
  60. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/expressing_agent/__init__.py +0 -0
  61. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/expressing_agent/default_cn_prompt.yaml +0 -0
  62. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/expressing_agent/default_en_prompt.yaml +0 -0
  63. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/expressing_agent/expressing_agent.py +0 -0
  64. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/expressing_agent/expressing_agent.yaml +0 -0
  65. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/nl2api_agent/__init__.py +0 -0
  66. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/nl2api_agent/default_cn_prompt.yaml +0 -0
  67. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/nl2api_agent/default_en_prompt.yaml +0 -0
  68. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/nl2api_agent/nl2api_agent.py +0 -0
  69. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/nl2api_agent/nl2api_agent.yaml +0 -0
  70. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/peer_agent/__init__.py +0 -0
  71. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/peer_agent/peer_agent.py +0 -0
  72. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/peer_agent/peer_agent.yaml +0 -0
  73. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/planning_agent/__init__.py +0 -0
  74. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/planning_agent/default_cn_prompt.yaml +0 -0
  75. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/planning_agent/default_en_prompt.yaml +0 -0
  76. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/planning_agent/planning_agent.py +0 -0
  77. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/planning_agent/planning_agent.yaml +0 -0
  78. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/rag_agent/__init__.py +0 -0
  79. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/rag_agent/default_cn_prompt.yaml +0 -0
  80. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/rag_agent/default_en_prompt.yaml +0 -0
  81. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/rag_agent/rag_agent.py +0 -0
  82. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/rag_agent/rag_agent.yaml +0 -0
  83. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/react_agent/__init__.py +0 -0
  84. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/react_agent/default_cn_prompt.yaml +0 -0
  85. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/react_agent/default_en_prompt.yaml +0 -0
  86. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/react_agent/react_agent.py +0 -0
  87. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/react_agent/react_agent.yaml +0 -0
  88. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/reviewing_agent/__init__.py +0 -0
  89. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/reviewing_agent/default_cn_prompt.yaml +0 -0
  90. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/reviewing_agent/default_en_prompt.yaml +0 -0
  91. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/reviewing_agent/reviewing_agent.py +0 -0
  92. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/default/reviewing_agent/reviewing_agent.yaml +0 -0
  93. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/input_object.py +0 -0
  94. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/__init__.py +0 -0
  95. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/default/__init__.py +0 -0
  96. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/default/default_memory.py +0 -0
  97. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/default/default_memory.yaml +0 -0
  98. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/enum.py +0 -0
  99. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/langchain_instance.py +0 -0
  100. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/memory_manager.py +0 -0
  101. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/message.py +0 -0
  102. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/summarizer_cn_prompt.yaml +0 -0
  103. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/memory/summarizer_en_prompt.yaml +0 -0
  104. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/output_object.py +0 -0
  105. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/__init__.py +0 -0
  106. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/__init__.py +0 -0
  107. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/executing_planner/__init__.py +0 -0
  108. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/executing_planner/executing_planner.py +0 -0
  109. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/executing_planner/executing_planner.yaml +0 -0
  110. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/expressing_planner/__init__.py +0 -0
  111. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/expressing_planner/expressing_planner.yaml +0 -0
  112. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/nl2api_planner/__init__.py +0 -0
  113. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/nl2api_planner/nl2api_planner.py +0 -0
  114. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/nl2api_planner/nl2api_planner.yaml +0 -0
  115. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/peer_planner/__init__.py +0 -0
  116. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/peer_planner/peer_planner.yaml +0 -0
  117. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/planner_manager.py +0 -0
  118. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/planning_planner/__init__.py +0 -0
  119. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/planning_planner/planning_planner.yaml +0 -0
  120. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/rag_planner/__init__.py +0 -0
  121. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/rag_planner/rag_planner.yaml +0 -0
  122. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/react_planner/__init__.py +0 -0
  123. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/react_planner/react_planner.yaml +0 -0
  124. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/reviewing_planner/__init__.py +0 -0
  125. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent/plan/planner/reviewing_planner/reviewing_planner.yaml +0 -0
  126. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/__init__.py +0 -0
  127. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/service.py +0 -0
  128. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/service_configer.py +0 -0
  129. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/service_instance.py +0 -0
  130. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/service_manager.py +0 -0
  131. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/__init__.py +0 -0
  132. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/dal/__init__.py +0 -0
  133. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/dal/entity/__init__.py +0 -0
  134. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/dal/entity/request_do.py +0 -0
  135. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/dal/request_library.py +0 -0
  136. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/flask_server.py +0 -0
  137. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/gunicorn_server.py +0 -0
  138. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/post_fork_queue.py +0 -0
  139. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/rpc/__init__.py +0 -0
  140. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/rpc/grpc/__init__.py +0 -0
  141. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/rpc/grpc/agentuniverse_service.proto +0 -0
  142. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/rpc/grpc/agentuniverse_service_pb2.py +0 -0
  143. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/rpc/grpc/agentuniverse_service_pb2_grpc.py +0 -0
  144. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/rpc/grpc/grpc_server_booster.py +0 -0
  145. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/rpc/rpc_server.py +0 -0
  146. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/web_booster.py +0 -0
  147. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/agent_serve/web/web_util.py +0 -0
  148. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/__init__.py +0 -0
  149. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/agentuniverse.py +0 -0
  150. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/annotation/__init__.py +0 -0
  151. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/annotation/singleton.py +0 -0
  152. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/component/__init__.py +0 -0
  153. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/component/application_component_manager.py +0 -0
  154. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/component/component_base.py +0 -0
  155. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/component/component_configer_util.py +0 -0
  156. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/component/component_enum.py +0 -0
  157. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/__init__.py +0 -0
  158. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/application_configer/__init__.py +0 -0
  159. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/application_configer/app_configer.py +0 -0
  160. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/application_configer/application_config_manager.py +0 -0
  161. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/__init__.py +0 -0
  162. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/component_configer.py +0 -0
  163. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/configers/__init__.py +0 -0
  164. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/configers/agent_configer.py +0 -0
  165. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/configers/knowledge_configer.py +0 -0
  166. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/configers/llm_configer.py +0 -0
  167. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/configers/memory_configer.py +0 -0
  168. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/configers/planner_configer.py +0 -0
  169. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/configers/prompt_configer.py +0 -0
  170. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/configers/sqldb_wrapper_config.py +0 -0
  171. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/component_configer/configers/tool_configer.py +0 -0
  172. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/config_type_enum.py +0 -0
  173. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/configer.py +0 -0
  174. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/custom_configer/__init__.py +0 -0
  175. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/config/custom_configer/custom_key_configer.py +0 -0
  176. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/context/__init__.py +0 -0
  177. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/context/framework_context.py +0 -0
  178. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/context/framework_context_manager.py +0 -0
  179. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/__init__.py +0 -0
  180. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/env_util.py +0 -0
  181. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/logging/__init__.py +0 -0
  182. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/logging/general_logger.py +0 -0
  183. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/logging/logging_config.py +0 -0
  184. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/logging/logging_util.py +0 -0
  185. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/memory_util.py +0 -0
  186. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/monitor/__init__.py +0 -0
  187. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/prompt/__init__.py +0 -0
  188. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/prompt/combine_cn_prompt.yaml +0 -0
  189. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/prompt/combine_en_prompt.yaml +0 -0
  190. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/prompt/summary_cn_prompt.yaml +0 -0
  191. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/prompt/summary_en_prompt.yaml +0 -0
  192. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/prompt_util.py +0 -0
  193. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/base/util/system_util.py +0 -0
  194. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/database/__init__.py +0 -0
  195. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/database/sqldb_wrapper.py +0 -0
  196. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/database/sqldb_wrapper_manager.py +0 -0
  197. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/__init__.py +0 -0
  198. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/claude_langchain_instance.py +0 -0
  199. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/__init__.py +0 -0
  200. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/baichuan_openai_style_llm.py +0 -0
  201. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/baichuan_openai_style_llm.yaml +0 -0
  202. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/claude_llm.py +0 -0
  203. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/claude_llm.yaml +0 -0
  204. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/deep_seek_openai_style_llm.py +0 -0
  205. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/deep_seek_openai_style_llm.yaml +0 -0
  206. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/default_ollama_llm.py +0 -0
  207. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/default_ollama_llm.yaml +0 -0
  208. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/default_openai_llm.py +0 -0
  209. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/default_openai_llm.yaml +0 -0
  210. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/kimi_openai_style_llm.py +0 -0
  211. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/kimi_openai_style_llm.yaml +0 -0
  212. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/qwen_openai_style_llm.py +0 -0
  213. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/qwen_openai_style_llm.yaml +0 -0
  214. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/wenxin_llm.py +0 -0
  215. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/default/wenxin_llm.yaml +0 -0
  216. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/langchain_instance.py +0 -0
  217. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/llm_manager.py +0 -0
  218. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/llm_output.py +0 -0
  219. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/ollama_langchain_instance.py +0 -0
  220. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/openai_style_langchain_instance.py +0 -0
  221. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/llm/wenxin_langchain_instance.py +0 -0
  222. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/prompt/__init__.py +0 -0
  223. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/prompt/chat_prompt.py +0 -0
  224. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/prompt/enum.py +0 -0
  225. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/prompt/prompt.py +0 -0
  226. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/prompt/prompt_manager.py +0 -0
  227. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse/prompt/prompt_model.py +0 -0
  228. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse_connector/__init__.py +0 -0
  229. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse_extension/__init__.py +0 -0
  230. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse_extension/logger/__init__.py +0 -0
  231. {agentuniverse-0.0.10.dev1 → agentuniverse-0.0.11.dev1}/agentuniverse_extension/logger/sls_sink.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: agentUniverse
3
- Version: 0.0.10.dev1
3
+ Version: 0.0.11.dev1
4
4
  Summary: agentUniverse is a framework for developing applications powered by multi-agent base on large language model.
5
5
  Home-page: https://github.com/alipay/agentUniverse
6
6
  Author: AntGroup
@@ -76,7 +76,8 @@ class ExecutingAgent(Agent):
76
76
  framework = agent_input.get('framework', [])
77
77
  futures = []
78
78
  for task in framework:
79
- agent_input_copy: dict = copy.deepcopy(agent_input)
79
+ # note: agent input shallow copy.
80
+ agent_input_copy: dict = dict(agent_input)
80
81
  agent_input_copy['input'] = task
81
82
  planner: Planner = PlannerManager().get_instance_obj(self.agent_model.plan.get('planner').get('name'))
82
83
  futures.append(
@@ -99,7 +100,8 @@ class ExecutingAgent(Agent):
99
100
  # get agent toolsets.
100
101
  action: dict = self.agent_model.action or dict()
101
102
  tools: list = action.get('tool') or list()
102
- input_object_copy: InputObject = copy.deepcopy(input_object)
103
+ # note: input object shallow copy.
104
+ input_object_copy: InputObject = InputObject(input_object.to_dict())
103
105
  # wrap input_object for agent knowledge.
104
106
  input_object_copy.add_data(planner_input_key, subtask)
105
107
  # wrap input_object for agent toolsets.
@@ -50,17 +50,18 @@ class ChatMemory(Memory):
50
50
  max_token_limit=self.max_tokens, messages=self.messages,
51
51
  prompt_version=self.prompt_version)
52
52
 
53
- def set_by_agent_model(self, **kwargs) -> None:
53
+ def set_by_agent_model(self, **kwargs):
54
54
  """ Assign values of parameters to the ChatMemory model in the agent configuration."""
55
- super().set_by_agent_model(**kwargs)
55
+ copied_obj = super().set_by_agent_model(**kwargs)
56
56
  if 'messages' in kwargs and kwargs['messages']:
57
- self.messages = kwargs['messages']
57
+ copied_obj.messages = kwargs['messages']
58
58
  if 'llm' in kwargs and kwargs['llm']:
59
- self.llm = kwargs['llm']
59
+ copied_obj.llm = kwargs['llm']
60
60
  if 'input_key' in kwargs and kwargs['input_key']:
61
- self.input_key = kwargs['input_key']
61
+ copied_obj.input_key = kwargs['input_key']
62
62
  if 'output_key' in kwargs and kwargs['output_key']:
63
- self.output_key = kwargs['output_key']
63
+ copied_obj.output_key = kwargs['output_key']
64
+ return copied_obj
64
65
 
65
66
  def initialize_by_component_configer(self, component_configer: MemoryConfiger) -> 'ChatMemory':
66
67
  """Initialize the chat memory by the ComponentConfiger object.
@@ -40,12 +40,15 @@ class Memory(ComponentBase):
40
40
  """Convert the agentUniverse(aU) memory class to the langchain memory class."""
41
41
  pass
42
42
 
43
- def set_by_agent_model(self, **kwargs) -> None:
43
+ def set_by_agent_model(self, **kwargs):
44
44
  """ Assign values of parameters to the Memory model in the agent configuration."""
45
+ # note: default shallow copy
46
+ copied_obj = self.model_copy()
45
47
  if 'memory_key' in kwargs and kwargs['memory_key']:
46
- self.memory_key = kwargs['memory_key']
48
+ copied_obj.memory_key = kwargs['memory_key']
47
49
  if 'max_tokens' in kwargs and kwargs['max_tokens']:
48
- self.max_tokens = kwargs['max_tokens']
50
+ copied_obj.max_tokens = kwargs['max_tokens']
51
+ return copied_obj
49
52
 
50
53
  def get_instance_code(self) -> str:
51
54
  """Return the full name of the memory."""
@@ -51,8 +51,8 @@ class ExpressingPlanner(Planner):
51
51
  history_messages_key="chat_history",
52
52
  input_messages_key=self.input_key,
53
53
  ) | StrOutputParser()
54
- res = asyncio.run(
55
- chain_with_history.ainvoke(input=planner_input, config={"configurable": {"session_id": "unused"}}))
54
+
55
+ res = self.invoke_chain(agent_model, chain_with_history, planner_input, chat_history, input_object)
56
56
  return {**planner_input, self.output_key: res, 'chat_history': generate_memories(chat_history)}
57
57
 
58
58
  def handle_prompt(self, agent_model: AgentModel, planner_input: dict) -> Prompt:
@@ -42,7 +42,7 @@ class PeerPlanner(Planner):
42
42
  """
43
43
  planner_config = agent_model.plan.get('planner')
44
44
  sub_agents = self.generate_sub_agents(planner_config)
45
- return self.agents_run(sub_agents, planner_config, planner_input, input_object)
45
+ return self.agents_run(agent_model, sub_agents, planner_config, planner_input, input_object)
46
46
 
47
47
  @staticmethod
48
48
  def generate_sub_agents(planner_config: dict) -> dict:
@@ -79,7 +79,8 @@ class PeerPlanner(Planner):
79
79
  elif context:
80
80
  input_object.add_data('expert_framework', context)
81
81
 
82
- def agents_run(self, agents: dict, planner_config: dict, agent_input: dict, input_object: InputObject) -> dict:
82
+ def agents_run(self, agent_mode: AgentModel, agents: dict, planner_config: dict, agent_input: dict,
83
+ input_object: InputObject) -> dict:
83
84
  """Planner agents run.
84
85
 
85
86
  Args:
@@ -125,6 +126,10 @@ class PeerPlanner(Planner):
125
126
  for index, one_framework in enumerate(planning_result.get_data('framework')):
126
127
  logger_info += f"[{index + 1}] {one_framework} \n"
127
128
  LOGGER.info(logger_info)
129
+ self.stream_output(input_object, {"data": {
130
+ 'output': planning_result.to_dict(),
131
+ "agent_info": agent_mode.info
132
+ }, "type": "planning"})
128
133
 
129
134
  if not executing_result or jump_step in ["planning", "executing"]:
130
135
  if not executingAgent:
@@ -143,6 +148,10 @@ class PeerPlanner(Planner):
143
148
  one_exec_log_info += f"[{index + 1}] output: {one_exec_res['output']}\n"
144
149
  logger_info += one_exec_log_info
145
150
  LOGGER.info(logger_info)
151
+ self.stream_output(input_object, {"data": {
152
+ 'output': executing_result.to_dict(),
153
+ "agent_info": agent_mode.info
154
+ }, "type": "executing"})
146
155
 
147
156
  if not expressing_result or jump_step in ["planning", "executing", "expressing"]:
148
157
  if not expressingAgent:
@@ -157,6 +166,10 @@ class PeerPlanner(Planner):
157
166
  logger_info = f"\nExpressing agent execution result is :\n"
158
167
  logger_info += f"{expressing_result.get_data('output')}"
159
168
  LOGGER.info(logger_info)
169
+ self.stream_output(input_object, {"data": {
170
+ 'output': expressing_result.get_data('output'),
171
+ "agent_info": agent_mode.info
172
+ }, "type": "expressing"})
160
173
 
161
174
  if not reviewing_result or jump_step in ["planning", "executing", "expressing", "reviewing"]:
162
175
  if not reviewingAgent:
@@ -172,6 +185,7 @@ class PeerPlanner(Planner):
172
185
  else:
173
186
  LOGGER.info(f"Starting reviewing agent.")
174
187
  reviewing_result = reviewingAgent.run(**input_object.to_dict())
188
+
175
189
  input_object.add_data('reviewing_result', reviewing_result)
176
190
 
177
191
  # add reviewing agent log info
@@ -179,7 +193,7 @@ class PeerPlanner(Planner):
179
193
  reviewing_info_str = f"review suggestion: {reviewing_result.get_data('suggestion')} \n"
180
194
  reviewing_info_str += f"review score: {reviewing_result.get_data('score')} \n"
181
195
  LOGGER.info(logger_info + reviewing_info_str)
182
-
196
+ self.stream_output(input_object, {"data": reviewing_result.to_dict(), "type": "reviewing"})
183
197
  if reviewing_result.get_data('score') and reviewing_result.get_data('score') >= eval_threshold:
184
198
  loopResults.append({
185
199
  "planning_result": planning_result,
@@ -6,15 +6,18 @@
6
6
  # @FileName: planner.py
7
7
  """Base class for Planner."""
8
8
  from abc import abstractmethod
9
- import copy
10
9
  import logging
11
- from typing import Optional, List
10
+ from queue import Queue
11
+ from typing import Optional, List, Any
12
+
13
+ from langchain_core.runnables import RunnableSerializable
12
14
 
13
15
  from agentuniverse.agent.action.knowledge.knowledge import Knowledge
14
16
  from agentuniverse.agent.action.knowledge.knowledge_manager import KnowledgeManager
15
17
  from agentuniverse.agent.action.knowledge.store.document import Document
16
18
  from agentuniverse.agent.action.knowledge.store.query import Query
17
19
  from agentuniverse.agent.action.tool.tool_manager import ToolManager
20
+ from agentuniverse.agent.agent_manager import AgentManager
18
21
  from agentuniverse.agent.agent_model import AgentModel
19
22
  from agentuniverse.agent.input_object import InputObject
20
23
  from agentuniverse.agent.memory.chat_memory import ChatMemory
@@ -27,7 +30,7 @@ from agentuniverse.base.config.component_configer.configers.planner_configer imp
27
30
  from agentuniverse.llm.llm import LLM
28
31
  from agentuniverse.llm.llm_manager import LLMManager
29
32
  from agentuniverse.prompt.prompt import Prompt
30
- from agentuniverse.base.util.memory_util import generate_messages
33
+ from agentuniverse.base.util.memory_util import generate_messages, generate_memories
31
34
 
32
35
  logging.getLogger().setLevel(logging.ERROR)
33
36
 
@@ -84,11 +87,10 @@ class Planner(ComponentBase):
84
87
  params['input_key'] = self.input_key
85
88
  params['output_key'] = self.output_key
86
89
 
87
- memory: ChatMemory = MemoryManager().get_instance_obj(component_instance_name=memory_name, new_instance=True)
90
+ memory: ChatMemory = MemoryManager().get_instance_obj(component_instance_name=memory_name)
88
91
  if memory is None:
89
92
  return None
90
- memory.set_by_agent_model(**params)
91
- return memory
93
+ return memory.set_by_agent_model(**params)
92
94
 
93
95
  def run_all_actions(self, agent_model: AgentModel, planner_input: dict, input_object: InputObject):
94
96
  """Tool and knowledge processing.
@@ -101,6 +103,7 @@ class Planner(ComponentBase):
101
103
  action: dict = agent_model.action or dict()
102
104
  tools: list = action.get('tool') or list()
103
105
  knowledge: list = action.get('knowledge') or list()
106
+ agents: list = action.get('agent') or list()
104
107
 
105
108
  action_result: list = list()
106
109
 
@@ -120,6 +123,16 @@ class Planner(ComponentBase):
120
123
  for document in knowledge_res:
121
124
  action_result.append(document.text)
122
125
 
126
+ for agent_name in agents:
127
+ agent = AgentManager().get_instance_obj(agent_name)
128
+ if agent is None:
129
+ continue
130
+ agent_input = {key: input_object.get_data(key) for key in agent.input_keys()}
131
+ output_object = agent.run(**agent_input)
132
+ action_result.append("\n".join([output_object.get_data(key)
133
+ for key in agent.output_keys()
134
+ if output_object.get_data(key) is not None]))
135
+
123
136
  planner_input['background'] = planner_input['background'] or '' + "\n".join(action_result)
124
137
 
125
138
  def handle_prompt(self, agent_model: AgentModel, planner_input: dict):
@@ -142,9 +155,8 @@ class Planner(ComponentBase):
142
155
  LLM: The language model.
143
156
  """
144
157
  llm_name = agent_model.profile.get('llm_model').get('name')
145
- llm: LLM = LLMManager().get_instance_obj(component_instance_name=llm_name, new_instance=True)
146
- llm.set_by_agent_model(**agent_model.profile.get('llm_model'))
147
- return llm
158
+ llm: LLM = LLMManager().get_instance_obj(component_instance_name=llm_name)
159
+ return llm.set_by_agent_model(**agent_model.profile.get('llm_model'))
148
160
 
149
161
  def initialize_by_component_configer(self, component_configer: PlannerConfiger) -> 'Planner':
150
162
  """Initialize the planner by the PlannerConfiger object.
@@ -159,3 +171,35 @@ class Planner(ComponentBase):
159
171
  self.input_key = component_configer.input_key or self.input_key
160
172
  self.output_key = component_configer.output_key or self.output_key
161
173
  return self
174
+
175
+ @staticmethod
176
+ def stream_output(input_object: InputObject, data: dict):
177
+ """Stream output.
178
+
179
+ Args:
180
+ input_object (InputObject): Agent input object.
181
+ data (dict): The data to be streamed.
182
+ """
183
+ output_stream: Queue = input_object.get_data('output_stream', None)
184
+ if output_stream is None:
185
+ return
186
+ output_stream.put_nowait(data)
187
+
188
+ def invoke_chain(self, agent_model: AgentModel, chain: RunnableSerializable[Any, str], planner_input: dict, chat_history,
189
+ input_object: InputObject):
190
+
191
+ if not input_object.get_data('output_stream'):
192
+ res = chain.invoke(input=planner_input, config={"configurable": {"session_id": "unused"}})
193
+ return res
194
+ result = []
195
+ for token in chain.stream(input=planner_input, config={"configurable": {"session_id": "unused"}}):
196
+ self.stream_output(input_object, {
197
+ 'type': 'token',
198
+ 'data': {
199
+ 'chunk': token,
200
+ 'agent_info': agent_model.info
201
+ }
202
+ })
203
+ result.append(token)
204
+ return "".join(result)
205
+
@@ -52,8 +52,7 @@ class PlanningPlanner(Planner):
52
52
  history_messages_key="chat_history",
53
53
  input_messages_key=self.input_key,
54
54
  ) | StrOutputParser()
55
- res = asyncio.run(
56
- chain_with_history.ainvoke(input=planner_input, config={"configurable": {"session_id": "unused"}}))
55
+ res = self.invoke_chain(agent_model, chain_with_history, planner_input, chat_history, input_object)
57
56
  return {**planner_input, self.output_key: res, 'chat_history': generate_memories(chat_history)}
58
57
 
59
58
  def handle_prompt(self, agent_model: AgentModel, planner_input: dict) -> Prompt:
@@ -5,7 +5,6 @@
5
5
  # @Email : lc299034@antgroup.com
6
6
  # @FileName: rag_planner.py
7
7
  """Rag planner module."""
8
- import asyncio
9
8
 
10
9
  from langchain_core.chat_history import InMemoryChatMessageHistory
11
10
  from langchain_core.output_parsers import StrOutputParser
@@ -55,8 +54,7 @@ class RagPlanner(Planner):
55
54
  history_messages_key="chat_history",
56
55
  input_messages_key=self.input_key,
57
56
  ) | StrOutputParser()
58
- res = asyncio.run(
59
- chain_with_history.ainvoke(input=planner_input, config={"configurable": {"session_id": "unused"}}))
57
+ res = self.invoke_chain(agent_model, chain_with_history, planner_input, chat_history, input_object)
60
58
  return {**planner_input, self.output_key: res, 'chat_history': generate_memories(chat_history)}
61
59
 
62
60
  def handle_prompt(self, agent_model: AgentModel, planner_input: dict) -> ChatPrompt:
@@ -64,14 +64,14 @@ class ReActPlanner(Planner):
64
64
  max_iterations=agent_model.plan.get('planner').get("max_iterations", 15))
65
65
 
66
66
  return agent_executor.invoke(input=planner_input, memory=memory.as_langchain() if memory else None,
67
- chat_history=chat_history, config=self.get_run_config(input_object))
67
+ chat_history=chat_history, config=self.get_run_config(agent_model, input_object))
68
68
 
69
69
  @staticmethod
70
- def get_run_config(input_object: InputObject) -> RunnableConfig:
70
+ def get_run_config(agent_model: AgentModel, input_object: InputObject) -> RunnableConfig:
71
71
  config = RunnableConfig()
72
72
  callbacks = []
73
73
  output_stream = input_object.get_data('output_stream')
74
- callbacks.append(StreamOutPutCallbackHandler(output_stream))
74
+ callbacks.append(StreamOutPutCallbackHandler(output_stream, agent_info=agent_model.info))
75
75
  config.setdefault("callbacks", callbacks)
76
76
  return config
77
77
 
@@ -16,10 +16,13 @@ from langchain_core.callbacks import BaseCallbackHandler
16
16
  class StreamOutPutCallbackHandler(BaseCallbackHandler):
17
17
  """Callback Handler that prints to std out."""
18
18
 
19
- def __init__(self, queue_stream: asyncio.Queue, color: Optional[str] = None) -> None:
19
+ def __init__(self, queue_stream: asyncio.Queue, color: Optional[str] = None, agent_info: dict = None) -> None:
20
20
  """Initialize callback handler."""
21
21
  self.queueStream = queue_stream
22
22
  self.color = color
23
+ if agent_info is None:
24
+ agent_info = {}
25
+ self.agent_info = agent_info
23
26
 
24
27
  def on_chain_start(
25
28
  self, serialized: Dict[str, Any], inputs: Dict[str, Any], **kwargs: Any
@@ -32,7 +35,13 @@ class StreamOutPutCallbackHandler(BaseCallbackHandler):
32
35
  def on_agent_action(
33
36
  self, action: AgentAction, color: Optional[str] = None, **kwargs: Any
34
37
  ) -> Any:
35
- self.queueStream.put_nowait("Thought:"+action.log)
38
+ self.queueStream.put_nowait({
39
+ "type": "ReAct",
40
+ "data": {
41
+ "output": "\nThought:" + action.log,
42
+ "agent_info": self.agent_info
43
+ }
44
+ })
36
45
 
37
46
  def on_tool_end(
38
47
  self,
@@ -44,9 +53,21 @@ class StreamOutPutCallbackHandler(BaseCallbackHandler):
44
53
  ) -> None:
45
54
  """If not the final action, print out observation."""
46
55
  if observation_prefix is not None:
47
- self.queueStream.put_nowait(observation_prefix + output)
56
+ self.queueStream.put_nowait({
57
+ "type": "ReAct",
58
+ "data": {
59
+ "output": '\n' + observation_prefix + output,
60
+ "agent_info": self.agent_info
61
+ }
62
+ })
48
63
  else:
49
- self.queueStream.put_nowait('Observation:'+output)
64
+ self.queueStream.put_nowait({
65
+ "type": "ReAct",
66
+ "data": {
67
+ "output": '\n Observation:' + output,
68
+ "agent_info": self.agent_info
69
+ }
70
+ })
50
71
 
51
72
  def on_text(
52
73
  self,
@@ -61,4 +82,10 @@ class StreamOutPutCallbackHandler(BaseCallbackHandler):
61
82
  self, finish: AgentFinish, color: Optional[str] = None, **kwargs: Any
62
83
  ) -> None:
63
84
  """Run on agent end."""
64
- self.queueStream.put_nowait("Thought:" + finish.log + "\n")
85
+ self.queueStream.put_nowait({
86
+ "type": "ReAct",
87
+ "data": {
88
+ "output": '\nThought:' + finish.output,
89
+ "agent_info": self.agent_info
90
+ }
91
+ })
@@ -51,8 +51,7 @@ class ReviewingPlanner(Planner):
51
51
  history_messages_key="chat_history",
52
52
  input_messages_key=self.input_key,
53
53
  ) | StrOutputParser()
54
- res = asyncio.run(
55
- chain_with_history.ainvoke(input=planner_input, config={"configurable": {"session_id": "unused"}}))
54
+ res = self.invoke_chain(agent_model, chain_with_history, planner_input, chat_history, input_object)
56
55
  return {**planner_input, self.output_key: res, 'chat_history': generate_memories(chat_history)}
57
56
 
58
57
  def handle_prompt(self, agent_model: AgentModel, planner_input: dict) -> Prompt:
@@ -73,8 +73,13 @@ class RequestTask:
73
73
  ensure_ascii=False) + "\n\n"
74
74
  if self.canceled():
75
75
  return
76
- yield "data:" + json.dumps({"result": self.thread.result()},
77
- ensure_ascii=False) + "\n\n"
76
+ try:
77
+ result = self.thread.result()
78
+ yield "data:" + json.dumps({"result": result},
79
+ ensure_ascii=False) + "\n\n "
80
+ except Exception as e:
81
+ LOGGER.error("request task execute Fail: " + str(e))
82
+ yield "data:" + json.dumps({"error": {"error_msg": str(e)}}) + "\n\n "
78
83
 
79
84
  def append_steps(self):
80
85
  """Tracing async service running state and update it to database."""
@@ -225,7 +230,7 @@ class RequestTask:
225
230
  self.__request_do__.state = TaskStateEnum.FINISHED.value
226
231
 
227
232
  @staticmethod
228
- def query_request_state(request_id: str) -> dict|None:
233
+ def query_request_state(request_id: str) -> dict | None:
229
234
  """Query the request data in database by given request_id.
230
235
 
231
236
  Args:
@@ -30,6 +30,9 @@ class ThreadWithReturnValue(Thread):
30
30
  self._return = self.target(*self.args, **self.kwargs)
31
31
  except Exception as e:
32
32
  self.error = e
33
+ finally:
34
+ if 'output_stream' in self.kwargs:
35
+ self.kwargs['output_stream'].put('{"type": "EOF"}')
33
36
 
34
37
  def result(self):
35
38
  """Wait for target func finished, then return the result or raise an
@@ -128,11 +128,8 @@ def trace_agent(func):
128
128
 
129
129
  # invoke function
130
130
  result = func(*args, **kwargs)
131
- # serialize agent input and output dict
132
- agent_input = serialize_agent_invocation(agent_input)
133
- agent_output = serialize_agent_invocation(result)
134
131
  # add agent invocation info to monitor
135
- Monitor().trace_agent_invocation(source=source, agent_input=agent_input, agent_output=agent_output)
132
+ Monitor().trace_agent_invocation(source=source, agent_input=agent_input, agent_output=result)
136
133
  return result
137
134
 
138
135
  # sync function
@@ -145,16 +142,3 @@ def _get_agent_input(func, *args, **kwargs) -> dict:
145
142
  bound_args = sig.bind(*args, **kwargs)
146
143
  bound_args.apply_defaults()
147
144
  return {k: v for k, v in bound_args.arguments.items()}
148
-
149
-
150
- def default_serializer(obj):
151
- if isinstance(obj, InputObject):
152
- return obj.to_dict()
153
- elif isinstance(obj, OutputObject):
154
- return obj.to_dict()
155
- raise TypeError(f"Object of type {type(obj).__name__} is not JSON serializable")
156
-
157
-
158
- def serialize_agent_invocation(agent_invocation):
159
- agent_invocation_serialized = json.loads(json.dumps(agent_invocation, default=default_serializer))
160
- return agent_invocation_serialized
@@ -38,7 +38,7 @@ class ComponentManagerBase(Generic[ComponentTypeVar]):
38
38
  self._instance_obj_map.pop(component_instance_name)
39
39
 
40
40
  def get_instance_obj(self, component_instance_name: str,
41
- appname: str = None, new_instance: bool = None) -> ComponentTypeVar:
41
+ appname: str = None, new_instance: bool = False) -> ComponentTypeVar:
42
42
  """Return the component instance object."""
43
43
  appname = appname or ApplicationConfigManager().app_configer.base_info_appname
44
44
  instance_code = f'{appname}.{self._component_type.value.lower()}.{component_instance_name}'
@@ -12,6 +12,8 @@ from typing import Union, Optional
12
12
 
13
13
  from pydantic import BaseModel
14
14
 
15
+ from agentuniverse.agent.input_object import InputObject
16
+ from agentuniverse.agent.output_object import OutputObject
15
17
  from agentuniverse.base.annotation.singleton import singleton
16
18
  from agentuniverse.base.config.configer import Configer
17
19
 
@@ -57,12 +59,6 @@ class Monitor(BaseModel):
57
59
  with jsonlines.open(path_save, 'a') as writer:
58
60
  writer.write(llm_invocation)
59
61
 
60
- def _get_or_create_subdir(self, subdir: str) -> str:
61
- """Get or create a subdirectory if it doesn't exist in the monitor directory."""
62
- path = os.path.join(self.dir, subdir)
63
- os.makedirs(path, exist_ok=True)
64
- return path
65
-
66
62
  def trace_agent_invocation(self, source: str, agent_input: Union[str, dict],
67
63
  agent_output: Union[str, dict]) -> None:
68
64
  """Trace the agent invocation and save it to the monitor jsonl file."""
@@ -78,8 +74,8 @@ class Monitor(BaseModel):
78
74
  agent_invocation = {
79
75
  "source": source,
80
76
  "date": date.strftime("%Y-%m-%d %H:%M:%S"),
81
- "agent_input": agent_input,
82
- "agent_output": agent_output,
77
+ "agent_input": self.serialize_obj(agent_input),
78
+ "agent_output": self.serialize_obj(agent_output),
83
79
  }
84
80
  # files are stored in hours
85
81
  filename = f"agent_{source}_{date.strftime('%Y-%m-%d-%H')}.jsonl"
@@ -90,3 +86,52 @@ class Monitor(BaseModel):
90
86
  with jsonlines.open(path_save, 'a') as writer:
91
87
  writer.write(agent_invocation)
92
88
 
89
+ def _get_or_create_subdir(self, subdir: str) -> str:
90
+ """Get or create a subdirectory if it doesn't exist in the monitor directory."""
91
+ path = os.path.join(self.dir, subdir)
92
+ os.makedirs(path, exist_ok=True)
93
+ return path
94
+
95
+ @staticmethod
96
+ def default_serializer(obj):
97
+ """Default serializer for objects."""
98
+ if isinstance(obj, InputObject):
99
+ return obj.to_dict()
100
+ elif isinstance(obj, OutputObject):
101
+ return obj.to_dict()
102
+ elif isinstance(obj, BaseModel):
103
+ try:
104
+ return obj.dict()
105
+ except TypeError:
106
+ raise TypeError(f"Object of type {type(obj).__name__} is not JSON serializable")
107
+ else:
108
+ raise TypeError(f"Object of type {type(obj).__name__} is not JSON serializable")
109
+
110
+ def serialize_obj(self, obj):
111
+ """Serialize an object and filter out non-serializable values."""
112
+ filtered_obj = self.filter_and_serialize(obj)
113
+ return json.loads(json.dumps(filtered_obj, default=self.default_serializer))
114
+
115
+ def filter_and_serialize(self, obj):
116
+ """Recursively filter out non-serializable values from an object."""
117
+
118
+ def is_json_serializable(value):
119
+ """Check if value is a JSON serializable object."""
120
+ try:
121
+ json.dumps(value, default=self.default_serializer)
122
+ return True
123
+ except (TypeError, OverflowError):
124
+ return False
125
+
126
+ def filter_dict(d):
127
+ return {k: v for k, v in d.items() if is_json_serializable(v)}
128
+
129
+ def recursive_filter(o):
130
+ if isinstance(o, dict):
131
+ return filter_dict({k: recursive_filter(v) for k, v in o.items()})
132
+ elif isinstance(o, list):
133
+ return [recursive_filter(i) for i in o if is_json_serializable(i)]
134
+ else:
135
+ return o
136
+
137
+ return recursive_filter(obj)
@@ -107,22 +107,25 @@ class LLM(ComponentBase):
107
107
  self._max_context_length = component_configer.configer.value['max_context_length']
108
108
  return self
109
109
 
110
- def set_by_agent_model(self, **kwargs) -> None:
110
+ def set_by_agent_model(self, **kwargs):
111
111
  """ Assign values of parameters to the LLM model in the agent configuration."""
112
+ # note: default shallow copy
113
+ copied_obj = self.model_copy()
112
114
  if 'model_name' in kwargs and kwargs['model_name']:
113
- self.model_name = kwargs['model_name']
115
+ copied_obj.model_name = kwargs['model_name']
114
116
  if 'temperature' in kwargs and kwargs['temperature']:
115
- self.temperature = kwargs['temperature']
117
+ copied_obj.temperature = kwargs['temperature']
116
118
  if 'request_timeout' in kwargs and kwargs['request_timeout']:
117
- self.request_timeout = kwargs['request_timeout']
119
+ copied_obj.request_timeout = kwargs['request_timeout']
118
120
  if 'max_tokens' in kwargs and kwargs['max_tokens']:
119
- self.max_tokens = kwargs['max_tokens']
121
+ copied_obj.max_tokens = kwargs['max_tokens']
120
122
  if 'max_retries' in kwargs and kwargs['max_retries']:
121
- self.max_retries = kwargs['max_retries']
123
+ copied_obj.max_retries = kwargs['max_retries']
122
124
  if 'streaming' in kwargs and kwargs['streaming']:
123
- self.streaming = kwargs['streaming']
125
+ copied_obj.streaming = kwargs['streaming']
124
126
  if 'max_context_length' in kwargs and kwargs['max_context_length']:
125
- self._max_context_length = kwargs['max_context_length']
127
+ copied_obj._max_context_length = kwargs['max_context_length']
128
+ return copied_obj
126
129
 
127
130
  def max_context_length(self) -> int:
128
131
  """Max context length.
@@ -93,8 +93,7 @@ class OpenAILLM(LLM):
93
93
  **kwargs: Arbitrary keyword arguments.
94
94
  """
95
95
  streaming = kwargs.pop("streaming") if "streaming" in kwargs else self.streaming
96
- if self.client is None:
97
- self.client = self._new_client()
96
+ self.client = self._new_client()
98
97
  chat_completion = self.client.chat.completions.create(
99
98
  messages=messages,
100
99
  model=kwargs.pop('model', self.model_name),
@@ -116,8 +115,7 @@ class OpenAILLM(LLM):
116
115
  **kwargs: Arbitrary keyword arguments.
117
116
  """
118
117
  streaming = kwargs.pop("streaming") if "streaming" in kwargs else self.streaming
119
- if self.async_client is None:
120
- self.async_client = self._new_async_client()
118
+ self.async_client = self._new_async_client()
121
119
  chat_completion = await self.async_client.chat.completions.create(
122
120
  messages=messages,
123
121
  model=kwargs.pop('model', self.model_name),
@@ -135,17 +133,18 @@ class OpenAILLM(LLM):
135
133
  """Convert the agentUniverse(aU) openai llm class to the langchain openai llm class."""
136
134
  return LangchainOpenAI(self)
137
135
 
138
- def set_by_agent_model(self, **kwargs) -> None:
136
+ def set_by_agent_model(self, **kwargs):
139
137
  """ Assign values of parameters to the OpenAILLM model in the agent configuration."""
140
- super().set_by_agent_model(**kwargs)
138
+ copied_obj = super().set_by_agent_model(**kwargs)
141
139
  if 'openai_api_key' in kwargs and kwargs['openai_api_key']:
142
- self.openai_api_key = kwargs['openai_api_key']
140
+ copied_obj.openai_api_key = kwargs['openai_api_key']
143
141
  if 'openai_api_base' in kwargs and kwargs['openai_api_base']:
144
- self.openai_api_base = kwargs['openai_api_base']
142
+ copied_obj.openai_api_base = kwargs['openai_api_base']
145
143
  if 'openai_proxy' in kwargs and kwargs['openai_proxy']:
146
- self.openai_proxy = kwargs['openai_proxy']
144
+ copied_obj.openai_proxy = kwargs['openai_proxy']
147
145
  if 'openai_client_args' in kwargs and kwargs['openai_client_args']:
148
- self.openai_client_args = kwargs['openai_client_args']
146
+ copied_obj.openai_client_args = kwargs['openai_client_args']
147
+ return copied_obj
149
148
 
150
149
  def max_context_length(self) -> int:
151
150
  """Max context length.