agentrun-inner-test 0.0.12__tar.gz → 0.0.40__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 (149) hide show
  1. {agentrun_inner_test-0.0.12/agentrun_inner_test.egg-info → agentrun_inner_test-0.0.40}/PKG-INFO +3 -2
  2. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/__init__.py +140 -24
  3. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/credential/model.py +2 -2
  4. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/agentscope/model_adapter.py +1 -1
  5. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/builtin/model.py +10 -14
  6. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/google_adk/tool_adapter.py +3 -2
  7. agentrun_inner_test-0.0.40/agentrun/integration/langchain/__init__.py +30 -0
  8. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/langchain/model_adapter.py +2 -2
  9. agentrun_inner_test-0.0.40/agentrun/integration/langgraph/__init__.py +35 -0
  10. agentrun_inner_test-0.0.40/agentrun/integration/langgraph/agent_converter.py +1073 -0
  11. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/utils/adapter.py +3 -2
  12. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/utils/canonical.py +7 -0
  13. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/utils/model.py +6 -3
  14. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/utils/tool.py +47 -2
  15. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/model.py +20 -3
  16. agentrun_inner_test-0.0.40/agentrun/sandbox/__aio_sandbox_async_template.py +523 -0
  17. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/__browser_sandbox_async_template.py +1 -1
  18. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/__init__.py +4 -0
  19. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/__sandbox_async_template.py +36 -4
  20. agentrun_inner_test-0.0.40/agentrun/sandbox/aio_sandbox.py +905 -0
  21. agentrun_inner_test-0.0.40/agentrun/sandbox/api/__aio_data_async_template.py +335 -0
  22. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/api/__init__.py +2 -0
  23. agentrun_inner_test-0.0.40/agentrun/sandbox/api/aio_data.py +551 -0
  24. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/model.py +19 -3
  25. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/sandbox.py +71 -8
  26. agentrun_inner_test-0.0.40/agentrun/server/__init__.py +191 -0
  27. agentrun_inner_test-0.0.40/agentrun/server/agui_normalizer.py +180 -0
  28. agentrun_inner_test-0.0.40/agentrun/server/agui_protocol.py +797 -0
  29. agentrun_inner_test-0.0.40/agentrun/server/invoker.py +309 -0
  30. agentrun_inner_test-0.0.40/agentrun/server/model.py +427 -0
  31. agentrun_inner_test-0.0.40/agentrun/server/openai_protocol.py +535 -0
  32. agentrun_inner_test-0.0.40/agentrun/server/protocol.py +140 -0
  33. agentrun_inner_test-0.0.40/agentrun/server/server.py +208 -0
  34. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/toolset/api/openapi.py +5 -2
  35. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/toolset/toolset.py +0 -1
  36. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/utils/__data_api_async_template.py +5 -0
  37. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/utils/data_api.py +10 -0
  38. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/utils/exception.py +5 -3
  39. agentrun_inner_test-0.0.40/agentrun/utils/helper.py +108 -0
  40. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40/agentrun_inner_test.egg-info}/PKG-INFO +3 -2
  41. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun_inner_test.egg-info/SOURCES.txt +7 -0
  42. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun_inner_test.egg-info/requires.txt +2 -1
  43. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/pyproject.toml +75 -3
  44. agentrun_inner_test-0.0.12/agentrun/integration/langchain/__init__.py +0 -9
  45. agentrun_inner_test-0.0.12/agentrun/integration/langgraph/__init__.py +0 -13
  46. agentrun_inner_test-0.0.12/agentrun/server/__init__.py +0 -82
  47. agentrun_inner_test-0.0.12/agentrun/server/invoker.py +0 -131
  48. agentrun_inner_test-0.0.12/agentrun/server/model.py +0 -225
  49. agentrun_inner_test-0.0.12/agentrun/server/openai_protocol.py +0 -798
  50. agentrun_inner_test-0.0.12/agentrun/server/protocol.py +0 -96
  51. agentrun_inner_test-0.0.12/agentrun/server/server.py +0 -192
  52. agentrun_inner_test-0.0.12/agentrun/utils/helper.py +0 -34
  53. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/LICENSE +0 -0
  54. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/README.md +0 -0
  55. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/__client_async_template.py +0 -0
  56. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/__endpoint_async_template.py +0 -0
  57. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/__init__.py +0 -0
  58. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/__runtime_async_template.py +0 -0
  59. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/api/__data_async_template.py +0 -0
  60. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/api/__init__.py +0 -0
  61. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/api/control.py +0 -0
  62. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/api/data.py +0 -0
  63. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/client.py +0 -0
  64. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/endpoint.py +0 -0
  65. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/model.py +0 -0
  66. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/agent_runtime/runtime.py +0 -0
  67. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/credential/__client_async_template.py +0 -0
  68. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/credential/__credential_async_template.py +0 -0
  69. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/credential/__init__.py +0 -0
  70. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/credential/api/__init__.py +0 -0
  71. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/credential/api/control.py +0 -0
  72. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/credential/client.py +0 -0
  73. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/credential/credential.py +0 -0
  74. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/__init__.py +0 -0
  75. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/agentscope/__init__.py +0 -0
  76. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/agentscope/adapter.py +0 -0
  77. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/agentscope/builtin.py +0 -0
  78. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/agentscope/message_adapter.py +0 -0
  79. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/agentscope/tool_adapter.py +0 -0
  80. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/builtin/__init__.py +0 -0
  81. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/builtin/sandbox.py +0 -0
  82. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/builtin/toolset.py +0 -0
  83. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/crewai/__init__.py +0 -0
  84. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/crewai/adapter.py +0 -0
  85. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/crewai/builtin.py +0 -0
  86. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/crewai/model_adapter.py +0 -0
  87. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/crewai/tool_adapter.py +0 -0
  88. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/google_adk/__init__.py +0 -0
  89. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/google_adk/adapter.py +0 -0
  90. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/google_adk/builtin.py +0 -0
  91. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/google_adk/message_adapter.py +0 -0
  92. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/google_adk/model_adapter.py +0 -0
  93. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/langchain/adapter.py +0 -0
  94. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/langchain/builtin.py +0 -0
  95. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/langchain/message_adapter.py +0 -0
  96. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/langchain/tool_adapter.py +0 -0
  97. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/langgraph/adapter.py +0 -0
  98. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/langgraph/builtin.py +0 -0
  99. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/pydantic_ai/__init__.py +0 -0
  100. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/pydantic_ai/adapter.py +0 -0
  101. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/pydantic_ai/builtin.py +0 -0
  102. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/pydantic_ai/model_adapter.py +0 -0
  103. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/pydantic_ai/tool_adapter.py +0 -0
  104. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/utils/__init__.py +0 -0
  105. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/integration/utils/converter.py +0 -0
  106. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/__client_async_template.py +0 -0
  107. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/__init__.py +0 -0
  108. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/__model_proxy_async_template.py +0 -0
  109. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/__model_service_async_template.py +0 -0
  110. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/api/__init__.py +0 -0
  111. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/api/control.py +0 -0
  112. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/api/data.py +0 -0
  113. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/client.py +0 -0
  114. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/model_proxy.py +0 -0
  115. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/model/model_service.py +0 -0
  116. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/__client_async_template.py +0 -0
  117. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/__code_interpreter_sandbox_async_template.py +0 -0
  118. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/__template_async_template.py +0 -0
  119. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/api/__browser_data_async_template.py +0 -0
  120. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/api/__code_interpreter_data_async_template.py +0 -0
  121. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/api/__sandbox_data_async_template.py +0 -0
  122. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/api/browser_data.py +0 -0
  123. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/api/code_interpreter_data.py +0 -0
  124. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/api/control.py +0 -0
  125. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/api/playwright_async.py +0 -0
  126. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/api/playwright_sync.py +0 -0
  127. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/api/sandbox_data.py +0 -0
  128. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/browser_sandbox.py +0 -0
  129. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/client.py +0 -0
  130. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/code_interpreter_sandbox.py +0 -0
  131. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/sandbox/template.py +0 -0
  132. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/toolset/__client_async_template.py +0 -0
  133. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/toolset/__init__.py +0 -0
  134. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/toolset/__toolset_async_template.py +0 -0
  135. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/toolset/api/__init__.py +0 -0
  136. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/toolset/api/control.py +0 -0
  137. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/toolset/api/mcp.py +0 -0
  138. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/toolset/client.py +0 -0
  139. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/toolset/model.py +0 -0
  140. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/utils/__init__.py +0 -0
  141. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/utils/__resource_async_template.py +0 -0
  142. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/utils/config.py +0 -0
  143. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/utils/control_api.py +0 -0
  144. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/utils/log.py +0 -0
  145. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/utils/model.py +0 -0
  146. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun/utils/resource.py +0 -0
  147. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun_inner_test.egg-info/dependency_links.txt +0 -0
  148. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/agentrun_inner_test.egg-info/top_level.txt +0 -0
  149. {agentrun_inner_test-0.0.12 → agentrun_inner_test-0.0.40}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentrun-inner-test
3
- Version: 0.0.12
3
+ Version: 0.0.40
4
4
  Summary: Alibaba Cloud Agent Run SDK
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -13,11 +13,12 @@ Requires-Dist: typing-extensions>=4.15.0
13
13
  Requires-Dist: litellm>=1.79.3
14
14
  Requires-Dist: alibabacloud-devs20230714>=2.4.1
15
15
  Requires-Dist: pydash>=8.0.5
16
- Requires-Dist: alibabacloud-agentrun20250910>=4.0.1
16
+ Requires-Dist: alibabacloud-agentrun20250910>=4.0.3
17
17
  Requires-Dist: alibabacloud_tea_openapi>=0.4.2
18
18
  Provides-Extra: server
19
19
  Requires-Dist: fastapi>=0.104.0; extra == "server"
20
20
  Requires-Dist: uvicorn>=0.24.0; extra == "server"
21
+ Requires-Dist: ag-ui-protocol>=0.1.10; extra == "server"
21
22
  Provides-Extra: langchain
22
23
  Requires-Dist: langchain>=1.0.0; python_version >= "3.10" and extra == "langchain"
23
24
  Requires-Dist: langchain-openai>=1.0.0; python_version >= "3.10" and extra == "langchain"
@@ -16,7 +16,9 @@ Provides simple and easy-to-use APIs for managing AI Agent runtime environments,
16
16
  - Integration: 框架集成 / Framework integration
17
17
  """
18
18
 
19
- __version__ = "0.0.12"
19
+ from typing import TYPE_CHECKING
20
+
21
+ __version__ = "0.0.40"
20
22
 
21
23
  # Agent Runtime
22
24
  from agentrun.agent_runtime import (
@@ -87,30 +89,50 @@ from agentrun.sandbox import (
87
89
  SandboxClient,
88
90
  Template,
89
91
  )
90
- # Server
91
- from agentrun.server import (
92
- AgentRequest,
93
- AgentResponse,
94
- AgentResult,
95
- AgentRunServer,
96
- AgentStreamIterator,
97
- AgentStreamResponse,
98
- AsyncInvokeAgentHandler,
99
- InvokeAgentHandler,
100
- Message,
101
- MessageRole,
102
- OpenAIProtocolHandler,
103
- ProtocolHandler,
104
- SyncInvokeAgentHandler,
105
- )
106
92
  # ToolSet
107
93
  from agentrun.toolset import ToolSet, ToolSetClient
94
+ from agentrun.utils.config import Config
108
95
  from agentrun.utils.exception import (
109
96
  ResourceAlreadyExistError,
110
97
  ResourceNotExistError,
111
98
  )
112
99
  from agentrun.utils.model import Status
113
100
 
101
+ # Server - 延迟导入以避免可选依赖问题
102
+ # Type hints for IDE and type checkers
103
+ if TYPE_CHECKING:
104
+ from agentrun.server import (
105
+ AgentEvent,
106
+ AgentEventItem,
107
+ AgentRequest,
108
+ AgentResult,
109
+ AgentResultItem,
110
+ AgentReturnType,
111
+ AgentRunServer,
112
+ AguiEventNormalizer,
113
+ AGUIProtocolConfig,
114
+ AGUIProtocolHandler,
115
+ AsyncAgentEventGenerator,
116
+ AsyncAgentResultGenerator,
117
+ AsyncInvokeAgentHandler,
118
+ BaseProtocolHandler,
119
+ EventType,
120
+ InvokeAgentHandler,
121
+ MergeOptions,
122
+ Message,
123
+ MessageRole,
124
+ OpenAIProtocolConfig,
125
+ OpenAIProtocolHandler,
126
+ ProtocolConfig,
127
+ ProtocolHandler,
128
+ ServerConfig,
129
+ SyncAgentEventGenerator,
130
+ SyncAgentResultGenerator,
131
+ SyncInvokeAgentHandler,
132
+ Tool,
133
+ ToolCall,
134
+ )
135
+
114
136
  __all__ = [
115
137
  ######## Agent Runtime ########
116
138
  # base
@@ -188,22 +210,116 @@ __all__ = [
188
210
  ######## ToolSet ########
189
211
  "ToolSetClient",
190
212
  "ToolSet",
191
- ######## Server ########
213
+ ######## Server (延迟加载) ########
214
+ # Server
192
215
  "AgentRunServer",
216
+ # Config
217
+ "ServerConfig",
218
+ "ProtocolConfig",
219
+ "OpenAIProtocolConfig",
220
+ "AGUIProtocolConfig",
221
+ # Request/Response Models
193
222
  "AgentRequest",
194
- "AgentResponse",
223
+ "AgentEvent",
195
224
  "AgentResult",
196
- "AgentStreamResponse",
225
+ "Message",
226
+ "MessageRole",
227
+ "Tool",
228
+ "ToolCall",
229
+ # Event Types
230
+ "EventType",
231
+ # Type Aliases
232
+ "AgentEventItem",
233
+ "AgentResultItem",
234
+ "AgentReturnType",
235
+ "SyncAgentEventGenerator",
236
+ "SyncAgentResultGenerator",
237
+ "AsyncAgentEventGenerator",
238
+ "AsyncAgentResultGenerator",
197
239
  "InvokeAgentHandler",
198
240
  "AsyncInvokeAgentHandler",
199
241
  "SyncInvokeAgentHandler",
200
- "Message",
201
- "MessageRole",
242
+ # Protocol Base
202
243
  "ProtocolHandler",
244
+ "BaseProtocolHandler",
245
+ # Protocol - OpenAI
203
246
  "OpenAIProtocolHandler",
204
- "AgentStreamIterator",
247
+ # Protocol - AG-UI
248
+ "AGUIProtocolHandler",
249
+ # Event Normalizer
250
+ "AguiEventNormalizer",
251
+ # Helpers
252
+ "MergeOptions",
205
253
  ######## Others ########
206
- "Status",
207
254
  "ResourceNotExistError",
208
255
  "ResourceAlreadyExistError",
256
+ "Config",
209
257
  ]
258
+
259
+ # Server 模块的所有导出
260
+ _SERVER_EXPORTS = {
261
+ "AgentRunServer",
262
+ "ServerConfig",
263
+ "ProtocolConfig",
264
+ "OpenAIProtocolConfig",
265
+ "AGUIProtocolConfig",
266
+ "AgentRequest",
267
+ "AgentEvent",
268
+ "AgentResult",
269
+ "Message",
270
+ "MessageRole",
271
+ "Tool",
272
+ "ToolCall",
273
+ "EventType",
274
+ "AgentEventItem",
275
+ "AgentResultItem",
276
+ "AgentReturnType",
277
+ "SyncAgentEventGenerator",
278
+ "SyncAgentResultGenerator",
279
+ "AsyncAgentEventGenerator",
280
+ "AsyncAgentResultGenerator",
281
+ "InvokeAgentHandler",
282
+ "AsyncInvokeAgentHandler",
283
+ "SyncInvokeAgentHandler",
284
+ "ProtocolHandler",
285
+ "BaseProtocolHandler",
286
+ "OpenAIProtocolHandler",
287
+ "AGUIProtocolHandler",
288
+ "AguiEventNormalizer",
289
+ "MergeOptions",
290
+ }
291
+
292
+ # 可选依赖包映射:安装命令 -> 导入错误的包名列表
293
+ # Optional dependency mapping: installation command -> list of import error package names
294
+ # 将使用相同安装命令的包合并到一起 / Group packages with the same installation command
295
+ _OPTIONAL_PACKAGES = {
296
+ "agentrun-sdk[server]": ["fastapi", "uvicorn", "ag_ui"],
297
+ }
298
+
299
+
300
+ def __getattr__(name: str):
301
+ """延迟加载 server 模块的导出,避免可选依赖导致导入失败
302
+
303
+ 当用户访问 server 相关的类时,才尝试导入 server 模块。
304
+ 如果 server 可选依赖未安装,会抛出清晰的错误提示。
305
+ """
306
+ if name in _SERVER_EXPORTS:
307
+ try:
308
+ from agentrun import server
309
+
310
+ return getattr(server, name)
311
+ except ImportError as e:
312
+ # 检查是否是缺少可选依赖导致的错误
313
+ error_str = str(e)
314
+ for install_cmd, package_names in _OPTIONAL_PACKAGES.items():
315
+ for package_name in package_names:
316
+ if package_name in error_str:
317
+ raise ImportError(
318
+ f"'{name}' requires the 'server' optional"
319
+ " dependencies. Install with: pip install"
320
+ f" {install_cmd}\nOriginal error: {e}"
321
+ ) from e
322
+ # 其他导入错误继续抛出
323
+ raise
324
+
325
+ raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
@@ -134,7 +134,7 @@ class CredentialConfig(CredentialConfigInner):
134
134
  cls,
135
135
  provider: str,
136
136
  access_key_id: str,
137
- access_key_secred: str,
137
+ access_key_secret: str,
138
138
  account_id: str,
139
139
  ):
140
140
  """配置访问第三方工具的 ak/sk 凭证"""
@@ -148,7 +148,7 @@ class CredentialConfig(CredentialConfigInner):
148
148
  "accountId": account_id,
149
149
  },
150
150
  },
151
- credential_secret=access_key_secred,
151
+ credential_secret=access_key_secret,
152
152
  )
153
153
 
154
154
  @classmethod
@@ -51,7 +51,7 @@ class AgentScopeModelAdapter(ModelAdapter):
51
51
  return OpenAIChatModel(
52
52
  model_name=info.model or "",
53
53
  api_key=info.api_key,
54
- stream=False,
54
+ stream=True,
55
55
  client_args={
56
56
  "base_url": info.base_url,
57
57
  "http_client": AsyncClient(headers=info.headers),
@@ -69,29 +69,25 @@ def model(
69
69
  backend_type = kwargs.get("backend_type")
70
70
  model = kwargs.get("model")
71
71
 
72
+ if isinstance(input, str):
73
+ from agentrun.model.client import ModelClient
74
+
75
+ client = ModelClient(config=config)
76
+ input = client.get(name=input, backend_type=backend_type, config=config)
77
+
72
78
  if isinstance(input, ModelProxy):
73
79
  return CommonModel(
74
- model=model or "",
75
80
  model_obj=input,
76
81
  backend_type=BackendType.PROXY,
82
+ specific_model=model,
77
83
  config=config,
78
84
  )
79
85
  elif isinstance(input, ModelService):
80
86
  return CommonModel(
81
- model=model or "",
82
87
  model_obj=input,
83
88
  backend_type=BackendType.SERVICE,
89
+ specific_model=model,
84
90
  config=config,
85
91
  )
86
-
87
- from agentrun.model.client import ModelClient
88
-
89
- client = ModelClient(config=config)
90
- model_obj = client.get(name=input, backend_type=backend_type, config=config)
91
-
92
- return CommonModel(
93
- model=input,
94
- model_obj=model_obj,
95
- backend_type=backend_type,
96
- config=config,
97
- )
92
+ else:
93
+ raise TypeError("input must be str, ModelProxy or ModelService")
@@ -6,6 +6,7 @@ from typing import Any, Dict, List, Optional
6
6
 
7
7
  from agentrun.integration.utils.adapter import ToolAdapter
8
8
  from agentrun.integration.utils.canonical import CanonicalTool
9
+ from agentrun.integration.utils.tool import normalize_tool_name
9
10
 
10
11
 
11
12
  def _json_schema_to_google_schema(
@@ -179,7 +180,7 @@ class GoogleADKToolAdapter(ToolAdapter):
179
180
 
180
181
  def get_registered_tool(self, name: str) -> Optional[CanonicalTool]:
181
182
  """根据名称获取最近注册的工具定义 / Google ADK Tool Adapter"""
182
- return self._registered_tools.get(name)
183
+ return self._registered_tools.get(normalize_tool_name(name))
183
184
 
184
185
  def from_canonical(self, tools: List[CanonicalTool]):
185
186
  """将标准格式转换为 Google ADK 工具 / Google ADK Tool Adapter
@@ -207,7 +208,7 @@ class GoogleADKToolAdapter(ToolAdapter):
207
208
 
208
209
  # 创建 FunctionDeclaration
209
210
  declaration = types.FunctionDeclaration(
210
- name=tool.name,
211
+ name=normalize_tool_name(tool.name),
211
212
  description=tool.description or "",
212
213
  parameters=google_schema,
213
214
  )
@@ -0,0 +1,30 @@
1
+ """LangChain 集成模块
2
+
3
+ 使用 AgentRunConverter 将 LangChain 事件转换为 AG-UI 协议事件:
4
+
5
+ >>> from agentrun.integration.langchain import AgentRunConverter
6
+ >>>
7
+ >>> async def invoke_agent(request: AgentRequest):
8
+ ... converter = AgentRunConverter()
9
+ ... async for event in agent.astream_events(input_data, version="v2"):
10
+ ... for item in converter.convert(event):
11
+ ... yield item
12
+
13
+ 支持多种调用方式:
14
+ - agent.astream_events(input, version="v2") - 支持 token by token
15
+ - agent.stream(input, stream_mode="updates") - 按节点输出
16
+ - agent.astream(input, stream_mode="updates") - 异步按节点输出
17
+ """
18
+
19
+ from agentrun.integration.langgraph.agent_converter import (
20
+ AgentRunConverter,
21
+ ) # 向后兼容
22
+
23
+ from .builtin import model, sandbox_toolset, toolset
24
+
25
+ __all__ = [
26
+ "AgentRunConverter",
27
+ "model",
28
+ "toolset",
29
+ "sandbox_toolset",
30
+ ]
@@ -23,7 +23,6 @@ class LangChainModelAdapter(ModelAdapter):
23
23
 
24
24
  def wrap_model(self, common_model: Any) -> Any:
25
25
  """包装 CommonModel 为 LangChain BaseChatModel / LangChain Model Adapter"""
26
- from httpx import AsyncClient
27
26
  from langchain_openai import ChatOpenAI
28
27
 
29
28
  info = common_model.get_model_info() # 确保模型可用
@@ -32,6 +31,7 @@ class LangChainModelAdapter(ModelAdapter):
32
31
  api_key=info.api_key,
33
32
  model=info.model,
34
33
  base_url=info.base_url,
35
- async_client=AsyncClient(headers=info.headers),
34
+ default_headers=info.headers,
36
35
  stream_usage=True,
36
+ streaming=True, # 启用流式输出以支持 token by token
37
37
  )
@@ -0,0 +1,35 @@
1
+ """LangGraph 集成模块
2
+
3
+ 使用 AgentRunConverter 将 LangGraph 事件转换为 AG-UI 协议事件:
4
+
5
+ >>> from agentrun.integration.langgraph import AgentRunConverter
6
+ >>>
7
+ >>> async def invoke_agent(request: AgentRequest):
8
+ ... converter = AgentRunConverter()
9
+ ... async for event in agent.astream_events(input_data, version="v2"):
10
+ ... for item in converter.convert(event):
11
+ ... yield item
12
+
13
+ 或使用静态方法(无状态):
14
+
15
+ >>> from agentrun.integration.langgraph import AgentRunConverter
16
+ >>>
17
+ >>> async for event in agent.astream_events(input_data, version="v2"):
18
+ ... for item in AgentRunConverter.to_agui_events(event):
19
+ ... yield item
20
+
21
+ 支持多种调用方式:
22
+ - agent.astream_events(input, version="v2") - 支持 token by token
23
+ - agent.stream(input, stream_mode="updates") - 按节点输出
24
+ - agent.astream(input, stream_mode="updates") - 异步按节点输出
25
+ """
26
+
27
+ from .agent_converter import AgentRunConverter
28
+ from .builtin import model, sandbox_toolset, toolset
29
+
30
+ __all__ = [
31
+ "AgentRunConverter",
32
+ "model",
33
+ "toolset",
34
+ "sandbox_toolset",
35
+ ]