sycommon-python-lib 0.2.3a2__tar.gz → 0.2.3a4__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 (270) hide show
  1. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/PKG-INFO +9 -9
  2. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/pyproject.toml +9 -9
  3. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/deep_agent.py +4 -2
  4. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/multi_agent_team.py +7 -2
  5. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/summarization_utils.py +8 -4
  6. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/llm_with_token_tracking.py +17 -0
  7. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/tool_result_truncation.py +8 -11
  8. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/mqlistener_config.py +1 -0
  9. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/rabbitmq/rabbitmq_client.py +56 -8
  10. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +1 -0
  11. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon_python_lib.egg-info/PKG-INFO +9 -9
  12. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon_python_lib.egg-info/requires.txt +8 -8
  13. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/README.md +0 -0
  14. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/setup.cfg +0 -0
  15. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/__init__.py +0 -0
  16. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/cli.py +0 -0
  17. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/core/__init__.py +0 -0
  18. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/core/console.py +0 -0
  19. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/core/models.py +0 -0
  20. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/core/project.py +0 -0
  21. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/core/utils.py +0 -0
  22. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/__init__.py +0 -0
  23. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/README.md.tpl +0 -0
  24. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/__init__.py +0 -0
  25. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  26. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  27. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  28. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  29. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  30. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  31. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  32. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/api/query.py.tpl +0 -0
  33. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  34. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  35. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/app.py.tpl +0 -0
  36. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  37. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  38. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  39. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  40. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/db/service.py.tpl +0 -0
  41. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  42. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/model/parse.py.tpl +0 -0
  43. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  44. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  45. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/.env.tpl +0 -0
  46. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/.gitignore.tpl +0 -0
  47. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/Dockerfile.tpl +0 -0
  48. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/README.md.tpl +0 -0
  49. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/__init__.py +0 -0
  50. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/app.py.tpl +0 -0
  51. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/app.yaml.tpl +0 -0
  52. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  53. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/client/__init__.py.tpl +0 -0
  54. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/model/__init__.py.tpl +0 -0
  55. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/model/file_info.py.tpl +0 -0
  56. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/base/requirements.txt.tpl +0 -0
  57. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/cli/README.md.tpl +0 -0
  58. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/cli/__init__.py +0 -0
  59. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/cli/app.py.tpl +0 -0
  60. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
  61. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/cli/commands/hello.py.tpl +0 -0
  62. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/cli/pyproject.toml.tpl +0 -0
  63. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
  64. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/README.md.tpl +0 -0
  65. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/__init__.py +0 -0
  66. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/api/__init__.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/api/echo.py.tpl +0 -0
  68. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  69. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  70. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/app.py.tpl +0 -0
  71. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/client/__init__.py.tpl +0 -0
  72. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/model/__init__.py.tpl +0 -0
  73. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/tools/__init__.py.tpl +0 -0
  74. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/command/templates/web/tools/mq.py.tpl +0 -0
  75. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/nexus/__init__.py +0 -0
  76. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/__init__.py +0 -0
  77. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/__main__.py +0 -0
  78. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/agents/__init__.py +0 -0
  79. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/agents/factory.py +0 -0
  80. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/agents/prompts.py +0 -0
  81. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/__init__.py +0 -0
  82. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/browser.py +0 -0
  83. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/capabilities/__init__.py +0 -0
  84. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/capabilities/console.py +0 -0
  85. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/capabilities/dom.py +0 -0
  86. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/capabilities/network.py +0 -0
  87. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  88. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/capabilities/performance.py +0 -0
  89. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  90. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/client.py +0 -0
  91. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/protocol.py +0 -0
  92. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cdp/repl.py +0 -0
  93. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/cli.py +0 -0
  94. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/commands/__init__.py +0 -0
  95. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/commands/cdp_cmd.py +0 -0
  96. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/commands/chat_cmd.py +0 -0
  97. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/commands/create_cmd.py +0 -0
  98. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/commands/evaluate_cmd.py +0 -0
  99. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/commands/init_cmd.py +0 -0
  100. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/commands/memory_cmd.py +0 -0
  101. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/commands/resume_cmd.py +0 -0
  102. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/commands/rollback_cmd.py +0 -0
  103. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/commands/run_cmd.py +0 -0
  104. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/core/__init__.py +0 -0
  105. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/core/backend.py +0 -0
  106. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/core/config.py +0 -0
  107. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/core/display.py +0 -0
  108. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/core/git_integration.py +0 -0
  109. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/core/llm.py +0 -0
  110. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/core/state.py +0 -0
  111. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/evaluate/__init__.py +0 -0
  112. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/evaluate/api_evaluator.py +0 -0
  113. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/memory/__init__.py +0 -0
  114. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/memory/compressor.py +0 -0
  115. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/memory/full.py +0 -0
  116. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/memory/hot.py +0 -0
  117. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/memory/manager.py +0 -0
  118. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/memory/warm.py +0 -0
  119. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/mode/__init__.py +0 -0
  120. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/mode/create.py +0 -0
  121. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/mode/optimize.py +0 -0
  122. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/models/__init__.py +0 -0
  123. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/models/config_models.py +0 -0
  124. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/__init__.py +0 -0
  125. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/baseline_tests.py +0 -0
  126. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/checkpoint.py +0 -0
  127. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/convergence.py +0 -0
  128. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/diagnosis.py +0 -0
  129. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/engine.py +0 -0
  130. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/environment.py +0 -0
  131. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/experience.py +0 -0
  132. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/harness_prompts.py +0 -0
  133. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/history.py +0 -0
  134. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/optimization_logger.py +0 -0
  135. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/pre_validation.py +0 -0
  136. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/reward.py +0 -0
  137. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/strategy_bandit.py +0 -0
  138. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/strategy_generator.py +0 -0
  139. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/rl/strategy_prompts.py +0 -0
  140. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycli/skills/__init__.py +0 -0
  141. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/__init__.py +0 -0
  142. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/__init__.py +0 -0
  143. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/agent_manager.py +0 -0
  144. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/chat_events.py +0 -0
  145. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/sandbox/__init__.py +0 -0
  146. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  147. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  148. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
  149. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  150. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  151. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/agent/sandbox/session.py +0 -0
  152. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/auth/__init__.py +0 -0
  153. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/auth/ldap_service.py +0 -0
  154. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  155. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/Config.py +0 -0
  156. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/DatabaseConfig.py +0 -0
  157. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  158. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/EmbeddingConfig.py +0 -0
  159. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/LLMConfig.py +0 -0
  160. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/LangfuseConfig.py +0 -0
  161. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/MQConfig.py +0 -0
  162. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/RedisConfig.py +0 -0
  163. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/RerankerConfig.py +0 -0
  164. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/SentryConfig.py +0 -0
  165. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/XxlJobConfig.py +0 -0
  166. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/config/__init__.py +0 -0
  167. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/database/async_base_db_service.py +0 -0
  168. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/database/async_database_service.py +0 -0
  169. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/database/base_db_service.py +0 -0
  170. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/database/database_service.py +0 -0
  171. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/database/elasticsearch_service.py +0 -0
  172. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/database/redis_service.py +0 -0
  173. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/database/token_usage_db_service.py +0 -0
  174. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/health/__init__.py +0 -0
  175. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/health/health_check.py +0 -0
  176. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/health/metrics.py +0 -0
  177. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/health/ping.py +0 -0
  178. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/heartbeat_process/__init__.py +0 -0
  179. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  180. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  181. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  182. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/__init__.py +0 -0
  183. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/embedding.py +0 -0
  184. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/get_llm.py +0 -0
  185. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/llm_logger.py +0 -0
  186. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/llm_tokens.py +0 -0
  187. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  188. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  189. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/struct_token.py +0 -0
  190. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/sy_langfuse.py +0 -0
  191. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/token_usage_es_service.py +0 -0
  192. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  193. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/llm/usage_token.py +0 -0
  194. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/logging/__init__.py +0 -0
  195. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/logging/async_sql_logger.py +0 -0
  196. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/logging/kafka_log.py +0 -0
  197. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/logging/logger_levels.py +0 -0
  198. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/logging/logger_wrapper.py +0 -0
  199. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/logging/process_logger.py +0 -0
  200. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/logging/sql_logger.py +0 -0
  201. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/__init__.py +0 -0
  202. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/background_execution.py +0 -0
  203. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/context.py +0 -0
  204. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/cors.py +0 -0
  205. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/docs.py +0 -0
  206. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/exception.py +0 -0
  207. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/middleware.py +0 -0
  208. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/monitor_memory.py +0 -0
  209. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/mq.py +0 -0
  210. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/sandbox.py +0 -0
  211. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/timeout.py +0 -0
  212. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/token_tracking.py +0 -0
  213. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/middleware/traceid.py +0 -0
  214. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/__init__.py +0 -0
  215. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/base_http.py +0 -0
  216. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/log.py +0 -0
  217. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/mqmsg_model.py +0 -0
  218. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/mqsend_config.py +0 -0
  219. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/sandbox.py +0 -0
  220. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/sso_user.py +0 -0
  221. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/token_usage.py +0 -0
  222. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/token_usage_mysql.py +0 -0
  223. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/models/xxljob_handler_config.py +0 -0
  224. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/notice/__init__.py +0 -0
  225. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  226. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/notice/wecom_message.py +0 -0
  227. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  228. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  229. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  230. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  231. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  232. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  233. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  234. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/sentry/__init__.py +0 -0
  235. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/sentry/sy_sentry.py +0 -0
  236. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/services.py +0 -0
  237. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/sse/__init__.py +0 -0
  238. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/sse/event.py +0 -0
  239. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/sse/sse.py +0 -0
  240. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/__init__.py +0 -0
  241. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/example.py +0 -0
  242. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/example2.py +0 -0
  243. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/feign.py +0 -0
  244. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/feign_client.py +0 -0
  245. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/nacos_client_base.py +0 -0
  246. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  247. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  248. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/nacos_service.py +0 -0
  249. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  250. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  251. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/synacos/param.py +0 -0
  252. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tests/deep_agent_server.py +0 -0
  253. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tests/test_deep_agent.py +0 -0
  254. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tests/test_email.py +0 -0
  255. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tests/test_mq.py +0 -0
  256. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tools/__init__.py +0 -0
  257. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tools/async_utils.py +0 -0
  258. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tools/docs.py +0 -0
  259. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tools/env.py +0 -0
  260. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tools/merge_headers.py +0 -0
  261. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tools/snowflake.py +0 -0
  262. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tools/syemail.py +0 -0
  263. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/tools/timing.py +0 -0
  264. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/xxljob/__init__.py +0 -0
  265. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon/xxljob/xxljob_service.py +0 -0
  266. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  267. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  268. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  269. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  270. {sycommon_python_lib-0.2.3a2 → sycommon_python_lib-0.2.3a4}/tests/test_sycli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.3a2
3
+ Version: 0.2.3a4
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -9,16 +9,16 @@ Requires-Dist: aiohttp>=3.13.5
9
9
  Requires-Dist: aiomysql>=0.3.2
10
10
  Requires-Dist: anyio>=4.12.1
11
11
  Requires-Dist: decorator>=5.2.1
12
- Requires-Dist: deepagents>=0.5.3
13
- Requires-Dist: elasticsearch>=9.3.0
12
+ Requires-Dist: deepagents>=0.5.7
13
+ Requires-Dist: elasticsearch>=9.4.0
14
14
  Requires-Dist: fastapi>=0.136.1
15
15
  Requires-Dist: jinja2>=3.1.6
16
16
  Requires-Dist: kafka-python>=2.3.1
17
- Requires-Dist: langchain>=1.2.15
18
- Requires-Dist: langchain-core>=1.3.2
17
+ Requires-Dist: langchain>=1.2.17
18
+ Requires-Dist: langchain-core>=1.3.3
19
19
  Requires-Dist: langchain-openai>=1.2.1
20
20
  Requires-Dist: langfuse>=4.5.1
21
- Requires-Dist: langgraph>=1.1.9
21
+ Requires-Dist: langgraph>=1.1.10
22
22
  Requires-Dist: langgraph-checkpoint-redis>=0.4.1
23
23
  Requires-Dist: ldap3>=2.9.1
24
24
  Requires-Dist: loguru>=0.7.3
@@ -26,12 +26,12 @@ Requires-Dist: mysql-connector-python>=9.6.0
26
26
  Requires-Dist: nacos-sdk-python<3.0,>=2.0.11
27
27
  Requires-Dist: psutil>=7.2.2
28
28
  Requires-Dist: pyxxl>=0.4.6
29
- Requires-Dist: pydantic>=2.13.3
29
+ Requires-Dist: pydantic>=2.13.4
30
30
  Requires-Dist: python-dotenv>=1.2.2
31
- Requires-Dist: python-multipart>=0.0.26
31
+ Requires-Dist: python-multipart>=0.0.27
32
32
  Requires-Dist: pyyaml>=6.0.3
33
33
  Requires-Dist: redis>=7.3.0
34
- Requires-Dist: sentry-sdk[fastapi]>=2.58.0
34
+ Requires-Dist: sentry-sdk[fastapi]>=2.59.0
35
35
  Requires-Dist: sqlalchemy[asyncio]>=2.0.48
36
36
  Requires-Dist: starlette[full]>=1.0.0
37
37
  Requires-Dist: tiktoken>=0.12.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.3a2"
3
+ version = "0.2.3a4"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -10,16 +10,16 @@ dependencies = [
10
10
  "aiomysql>=0.3.2",
11
11
  "anyio>=4.12.1",
12
12
  "decorator>=5.2.1",
13
- "deepagents>=0.5.3",
14
- "elasticsearch>=9.3.0",
13
+ "deepagents>=0.5.7",
14
+ "elasticsearch>=9.4.0",
15
15
  "fastapi>=0.136.1",
16
16
  "jinja2>=3.1.6",
17
17
  "kafka-python>=2.3.1",
18
- "langchain>=1.2.15",
19
- "langchain-core>=1.3.2",
18
+ "langchain>=1.2.17",
19
+ "langchain-core>=1.3.3",
20
20
  "langchain-openai>=1.2.1",
21
21
  "langfuse>=4.5.1",
22
- "langgraph>=1.1.9",
22
+ "langgraph>=1.1.10",
23
23
  "langgraph-checkpoint-redis>=0.4.1",
24
24
  "ldap3>=2.9.1",
25
25
  "loguru>=0.7.3",
@@ -27,12 +27,12 @@ dependencies = [
27
27
  "nacos-sdk-python>=2.0.11,<3.0",
28
28
  "psutil>=7.2.2",
29
29
  "pyxxl>=0.4.6",
30
- "pydantic>=2.13.3",
30
+ "pydantic>=2.13.4",
31
31
  "python-dotenv>=1.2.2",
32
- "python-multipart>=0.0.26",
32
+ "python-multipart>=0.0.27",
33
33
  "pyyaml>=6.0.3",
34
34
  "redis>=7.3.0",
35
- "sentry-sdk[fastapi]>=2.58.0",
35
+ "sentry-sdk[fastapi]>=2.59.0",
36
36
  "sqlalchemy[asyncio]>=2.0.48",
37
37
  "starlette[full]>=1.0.0",
38
38
  "tiktoken>=0.12.0",
@@ -617,7 +617,8 @@ async def create_deep_agent(
617
617
  from deepagents import create_deep_agent as _create_deep_agent
618
618
 
619
619
  # 根据模型上下文窗口大小配置压缩阈值
620
- summarization_mw = build_summarization_middleware(
620
+ # 返回 (auto_summarization_mw, tool_mw),auto 用于自动压缩,tool_mw 提供 compact_conversation 工具
621
+ auto_summarization_mw, tool_summarization_mw = build_summarization_middleware(
621
622
  model, config.model_name, sandbox_backend,
622
623
  )
623
624
 
@@ -632,7 +633,8 @@ async def create_deep_agent(
632
633
  BackgroundExecutionMiddleware(backend=sandbox_backend),
633
634
  ToolResultTruncationMiddleware(),
634
635
  TokenTrackingMiddleware(model_name=config.model_name, user_id=user_id),
635
- summarization_mw,
636
+ auto_summarization_mw,
637
+ tool_summarization_mw,
636
638
  ],
637
639
  }
638
640
  if skills_path:
@@ -584,11 +584,14 @@ async def create_multi_agent_team(
584
584
  from deepagents import create_deep_agent
585
585
  from deepagents.middleware.subagents import CompiledSubAgent
586
586
 
587
+ # 子 agent 共享同一组压缩 middleware
588
+ _auto_mw, _tool_mw = build_summarization_middleware(model, config.model_name, sandbox_backend)
587
589
  middleware = [
588
590
  BackgroundExecutionMiddleware(backend=sandbox_backend),
589
591
  ToolResultTruncationMiddleware(),
590
592
  TokenTrackingMiddleware(model_name=config.model_name, user_id=user_id),
591
- build_summarization_middleware(model, config.model_name, sandbox_backend),
593
+ _auto_mw,
594
+ _tool_mw,
592
595
  ]
593
596
  shared = config.shared_tools or [get_current_date]
594
597
 
@@ -629,6 +632,7 @@ async def create_multi_agent_team(
629
632
 
630
633
  # 创建协调者 Agent
631
634
  coord_name = config.coordinator_name
635
+ _coord_auto_mw, _coord_tool_mw = build_summarization_middleware(model, config.model_name, sandbox_backend)
632
636
  coordinator_agent = create_deep_agent(
633
637
  model=model,
634
638
  tools=config.shared_tools or [get_current_date],
@@ -644,7 +648,8 @@ async def create_multi_agent_team(
644
648
  BackgroundExecutionMiddleware(backend=sandbox_backend),
645
649
  ToolResultTruncationMiddleware(),
646
650
  TokenTrackingMiddleware(model_name=config.model_name, user_id=user_id),
647
- build_summarization_middleware(model, config.model_name, sandbox_backend),
651
+ _coord_auto_mw,
652
+ _coord_tool_mw,
648
653
  ],
649
654
  )
650
655
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
- from typing import TYPE_CHECKING
9
+ from typing import TYPE_CHECKING, Tuple
10
10
 
11
11
  from deepagents.middleware.summarization import (
12
12
  SummarizationMiddleware,
@@ -26,7 +26,7 @@ def build_summarization_middleware(
26
26
  trigger_fraction: float = 0.70,
27
27
  keep_fraction: float = 0.10,
28
28
  default_max_tokens: int = 200000,
29
- ) -> SummarizationToolMiddleware:
29
+ ) -> Tuple[SummarizationMiddleware, SummarizationToolMiddleware]:
30
30
  """根据模型上下文窗口大小构建压缩 middleware。
31
31
 
32
32
  使用绝对 token 数而非 fraction 模式,避免要求模型提供 profile 信息。
@@ -40,7 +40,8 @@ def build_summarization_middleware(
40
40
  default_max_tokens: 无法从配置读取时的默认上下文窗口大小。
41
41
 
42
42
  Returns:
43
- SummarizationToolMiddleware 实例(包含自动压缩 + compact_conversation 工具)。
43
+ (SummarizationMiddleware, SummarizationToolMiddleware) 元组。
44
+ 第一个是自动压缩 middleware,第二个是 compact_conversation 工具 middleware。
44
45
  """
45
46
  try:
46
47
  from sycommon.config.Config import Config
@@ -65,4 +66,7 @@ def build_summarization_middleware(
65
66
  "max_length": 2000,
66
67
  },
67
68
  )
68
- return SummarizationToolMiddleware(summ)
69
+ print(f"[Summarization] 压缩配置: model={model_name}, max_tokens={max_tokens}, "
70
+ f"trigger={trigger_tokens} tokens ({trigger_fraction:.0%}), "
71
+ f"keep={keep_tokens} tokens ({keep_fraction:.0%})")
72
+ return summ, SummarizationToolMiddleware(summ)
@@ -230,6 +230,23 @@ class LLMWithTokenTracking(BaseChatModel):
230
230
  "output_tokens": total_output,
231
231
  })
232
232
 
233
+ def _resolve_model_profile(self):
234
+ """从 llmConfig.maxTokens 构建 profile,供 deepagents 计算压缩阈值使用。"""
235
+ if self.llmConfig and self.llmConfig.maxTokens:
236
+ return {"max_input_tokens": self.llmConfig.maxTokens}
237
+ if self.llm and hasattr(self.llm, 'profile') and self.llm.profile:
238
+ return self.llm.profile
239
+ return None
240
+
241
+ @property
242
+ def profile(self):
243
+ p = self._resolve_model_profile()
244
+ return p
245
+
246
+ @profile.setter
247
+ def profile(self, value):
248
+ pass
249
+
233
250
  def bind_tools(self, tools, *, tool_choice=None, **kwargs):
234
251
  """绑定工具 - 委托给底层 LLM,返回绑定后的 Runnable"""
235
252
  return self.llm.bind_tools(tools, tool_choice=tool_choice, **kwargs)
@@ -51,7 +51,7 @@ MAX_IMAGE_BASE64_CHARS = 500
51
51
  def _convert_list_content_to_str(content: list, tool_name: str) -> str:
52
52
  """将 list 类型的 ToolMessage.content 转换为字符串。
53
53
 
54
- 对于图片类型(type=image 且含 base64),只保留前 MAX_IMAGE_BASE64_CHARS 个字符的 base64 预览。
54
+ 对于图片类型(type=image 且含 base64),转换为提示模型自行用 execute 处理的说明。
55
55
  对于文本类型,保留完整文本。
56
56
  """
57
57
  parts = []
@@ -61,16 +61,13 @@ def _convert_list_content_to_str(content: list, tool_name: str) -> str:
61
61
  if item_type == "image" and "base64" in item:
62
62
  b64 = item["base64"]
63
63
  mime = item.get("mime_type", "image/unknown")
64
- if len(b64) > MAX_IMAGE_BASE64_CHARS:
65
- parts.append(
66
- f"[图片文件 ({mime}, {len(b64)} 字符 base64 数据), "
67
- f"预览: {b64[:MAX_IMAGE_BASE64_CHARS]}...]"
68
- )
69
- else:
70
- parts.append(
71
- f"[图片文件 ({mime}, {len(b64)} 字符 base64 数据), "
72
- f"数据: {b64}]"
73
- )
64
+ size_kb = len(b64) * 3 // 4 // 1024 # base64 -> bytes -> KB
65
+ parts.append(
66
+ f"[图片文件 ({mime}, {size_kb}KB) "
67
+ f"图片二进制数据无法直接发送给模型。"
68
+ f"请使用 execute 工具通过 Python (如 PIL/OpenCV) 读取并处理图片,"
69
+ f"例如 OCR 识别文字、分析图片内容等。]"
70
+ )
74
71
  elif "text" in item:
75
72
  parts.append(item["text"])
76
73
  else:
@@ -32,6 +32,7 @@ class RabbitMQListenerConfig(BaseModel):
32
32
  auto_delete: bool = Field(False, description="是否自动删除队列")
33
33
  auto_parse_json: bool = Field(True, description="是否自动解析JSON消息")
34
34
  prefetch_count: int = Field(2, description="mq同时消费数量")
35
+ max_concurrent_tasks: int = Field(5, description="handler 最大并发任务数")
35
36
 
36
37
  class Config:
37
38
  """模型配置"""
@@ -13,6 +13,7 @@ from aio_pika.abc import (
13
13
  )
14
14
  from sycommon.rabbitmq.rabbitmq_pool import RabbitMQConnectionPool
15
15
  from sycommon.logging.kafka_log import SYLogger
16
+ from sycommon.middleware.context import current_trace_id
16
17
  from sycommon.models.mqmsg_model import MQMsgModel
17
18
 
18
19
  logger = SYLogger
@@ -41,6 +42,7 @@ class RabbitMQClient:
41
42
  auto_delete: bool = False,
42
43
  auto_parse_json: bool = True,
43
44
  create_if_not_exists: bool = True,
45
+ max_concurrent_tasks: int = 5,
44
46
  **kwargs,
45
47
  ):
46
48
  self.connection_pool = connection_pool
@@ -73,6 +75,10 @@ class RabbitMQClient:
73
75
  self._connect_lock = asyncio.Lock()
74
76
  self._reconnect_semaphore = asyncio.Semaphore(1)
75
77
 
78
+ # 异步任务并发控制(方案C:收到即ACK + create_task)
79
+ self._task_semaphore = asyncio.Semaphore(max_concurrent_tasks)
80
+ self._running_tasks: set = set()
81
+
76
82
  @property
77
83
  async def is_connected(self) -> bool:
78
84
  if self._closed:
@@ -231,9 +237,9 @@ class RabbitMQClient:
231
237
  f"后台重连尝试 {attempt + 1}/{max_attempts} 失败: {e}")
232
238
  logger.warning(f"后台重连已达最大尝试次数 {max_attempts},放弃重连")
233
239
 
234
- async def set_message_handler(self, handler: Callable[..., Coroutine]) -> None:
235
- if not inspect.iscoroutinefunction(handler):
236
- raise TypeError("消息处理器必须是协程函数")
240
+ async def set_message_handler(self, handler: Callable) -> None:
241
+ if not callable(handler):
242
+ raise TypeError("消息处理器必须是可调用对象")
237
243
  self._message_handler = handler
238
244
 
239
245
  async def _process_message_callback(self, message: AbstractIncomingMessage):
@@ -246,20 +252,50 @@ class RabbitMQClient:
246
252
 
247
253
  SYLogger.set_trace_id(msg_obj.traceId)
248
254
 
249
- if self._message_handler:
250
- await self._message_handler(msg_obj, message)
251
-
255
+ # 先 ACK,让 RabbitMQ 确认投递成功
252
256
  await message.ack()
253
257
 
258
+ # 将 handler 投递到后台任务,不阻塞消费循环
259
+ if self._message_handler:
260
+ task = asyncio.create_task(
261
+ self._safe_execute_handler(msg_obj, message)
262
+ )
263
+ self._running_tasks.add(task)
264
+ task.add_done_callback(self._running_tasks.discard)
265
+
254
266
  except json.JSONDecodeError as e:
255
- # JSON解析失败,消息格式错误,记录日志并ACK(避免无限循环)
256
267
  logger.error(f"消息JSON解析失败,消息将被丢弃: {e}", exc_info=True)
257
268
  await message.ack()
258
269
  except Exception as e:
259
- # 处理异常,记录日志并ACK(避免消息重复消费)
260
270
  logger.error(f"消息处理异常,消息将被丢弃: {e}", exc_info=True)
261
271
  await message.ack()
262
272
 
273
+ async def _safe_execute_handler(self, msg_obj: MQMsgModel, message: AbstractIncomingMessage):
274
+ """在 Semaphore 控制下安全执行 handler,支持异步和同步阻塞 handler"""
275
+ async with self._task_semaphore:
276
+ try:
277
+ if not self._message_handler:
278
+ return
279
+ handler = self._message_handler
280
+ if inspect.iscoroutinefunction(handler):
281
+ await handler(msg_obj, message)
282
+ else:
283
+ # 同步阻塞 handler:丢进线程池,手动传递 traceId
284
+ trace_id = msg_obj.traceId
285
+ loop = asyncio.get_running_loop()
286
+
287
+ def _sync_wrapper():
288
+ SYLogger.set_trace_id(trace_id)
289
+ try:
290
+ return handler(msg_obj, message)
291
+ finally:
292
+ SYLogger.reset_trace_id(
293
+ current_trace_id.set(None))
294
+
295
+ await loop.run_in_executor(None, _sync_wrapper)
296
+ except Exception as e:
297
+ logger.error(f"异步任务执行失败: {e}", exc_info=True)
298
+
263
299
  async def start_consuming(self) -> Optional[ConsumerTag]:
264
300
  if self._closed:
265
301
  raise RuntimeError("客户端已关闭,无法启动消费")
@@ -391,6 +427,18 @@ class RabbitMQClient:
391
427
 
392
428
  await self.stop_consuming()
393
429
 
430
+ # 等待后台任务完成(优雅退出)
431
+ if self._running_tasks:
432
+ logger.info(f"等待 {len(self._running_tasks)} 个后台任务完成...")
433
+ try:
434
+ await asyncio.wait_for(
435
+ asyncio.gather(*self._running_tasks, return_exceptions=True),
436
+ timeout=15.0
437
+ )
438
+ except asyncio.TimeoutError:
439
+ logger.warning(f"等待后台任务超时,剩余 {len(self._running_tasks)} 个任务将被丢弃")
440
+ self._running_tasks.clear()
441
+
394
442
  if self._channel and not self._channel.is_closed:
395
443
  try:
396
444
  await self._channel.close()
@@ -158,6 +158,7 @@ class RabbitMQClientManager(RabbitMQCoreService):
158
158
  auto_parse_json=kwargs.get('auto_parse_json', True),
159
159
  create_if_not_exists=create_if_not_exists,
160
160
  prefetch_count=kwargs.get('prefetch_count', 2),
161
+ max_concurrent_tasks=kwargs.get('max_concurrent_tasks', 5),
161
162
  )
162
163
 
163
164
  # 4. 连接客户端
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.3a2
3
+ Version: 0.2.3a4
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -9,16 +9,16 @@ Requires-Dist: aiohttp>=3.13.5
9
9
  Requires-Dist: aiomysql>=0.3.2
10
10
  Requires-Dist: anyio>=4.12.1
11
11
  Requires-Dist: decorator>=5.2.1
12
- Requires-Dist: deepagents>=0.5.3
13
- Requires-Dist: elasticsearch>=9.3.0
12
+ Requires-Dist: deepagents>=0.5.7
13
+ Requires-Dist: elasticsearch>=9.4.0
14
14
  Requires-Dist: fastapi>=0.136.1
15
15
  Requires-Dist: jinja2>=3.1.6
16
16
  Requires-Dist: kafka-python>=2.3.1
17
- Requires-Dist: langchain>=1.2.15
18
- Requires-Dist: langchain-core>=1.3.2
17
+ Requires-Dist: langchain>=1.2.17
18
+ Requires-Dist: langchain-core>=1.3.3
19
19
  Requires-Dist: langchain-openai>=1.2.1
20
20
  Requires-Dist: langfuse>=4.5.1
21
- Requires-Dist: langgraph>=1.1.9
21
+ Requires-Dist: langgraph>=1.1.10
22
22
  Requires-Dist: langgraph-checkpoint-redis>=0.4.1
23
23
  Requires-Dist: ldap3>=2.9.1
24
24
  Requires-Dist: loguru>=0.7.3
@@ -26,12 +26,12 @@ Requires-Dist: mysql-connector-python>=9.6.0
26
26
  Requires-Dist: nacos-sdk-python<3.0,>=2.0.11
27
27
  Requires-Dist: psutil>=7.2.2
28
28
  Requires-Dist: pyxxl>=0.4.6
29
- Requires-Dist: pydantic>=2.13.3
29
+ Requires-Dist: pydantic>=2.13.4
30
30
  Requires-Dist: python-dotenv>=1.2.2
31
- Requires-Dist: python-multipart>=0.0.26
31
+ Requires-Dist: python-multipart>=0.0.27
32
32
  Requires-Dist: pyyaml>=6.0.3
33
33
  Requires-Dist: redis>=7.3.0
34
- Requires-Dist: sentry-sdk[fastapi]>=2.58.0
34
+ Requires-Dist: sentry-sdk[fastapi]>=2.59.0
35
35
  Requires-Dist: sqlalchemy[asyncio]>=2.0.48
36
36
  Requires-Dist: starlette[full]>=1.0.0
37
37
  Requires-Dist: tiktoken>=0.12.0
@@ -3,16 +3,16 @@ aiohttp>=3.13.5
3
3
  aiomysql>=0.3.2
4
4
  anyio>=4.12.1
5
5
  decorator>=5.2.1
6
- deepagents>=0.5.3
7
- elasticsearch>=9.3.0
6
+ deepagents>=0.5.7
7
+ elasticsearch>=9.4.0
8
8
  fastapi>=0.136.1
9
9
  jinja2>=3.1.6
10
10
  kafka-python>=2.3.1
11
- langchain>=1.2.15
12
- langchain-core>=1.3.2
11
+ langchain>=1.2.17
12
+ langchain-core>=1.3.3
13
13
  langchain-openai>=1.2.1
14
14
  langfuse>=4.5.1
15
- langgraph>=1.1.9
15
+ langgraph>=1.1.10
16
16
  langgraph-checkpoint-redis>=0.4.1
17
17
  ldap3>=2.9.1
18
18
  loguru>=0.7.3
@@ -20,12 +20,12 @@ mysql-connector-python>=9.6.0
20
20
  nacos-sdk-python<3.0,>=2.0.11
21
21
  psutil>=7.2.2
22
22
  pyxxl>=0.4.6
23
- pydantic>=2.13.3
23
+ pydantic>=2.13.4
24
24
  python-dotenv>=1.2.2
25
- python-multipart>=0.0.26
25
+ python-multipart>=0.0.27
26
26
  pyyaml>=6.0.3
27
27
  redis>=7.3.0
28
- sentry-sdk[fastapi]>=2.58.0
28
+ sentry-sdk[fastapi]>=2.59.0
29
29
  sqlalchemy[asyncio]>=2.0.48
30
30
  starlette[full]>=1.0.0
31
31
  tiktoken>=0.12.0