agentkit-sdk-python 0.1.11__tar.gz → 0.1.13__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 (155) hide show
  1. {agentkit_sdk_python-0.1.11/agentkit_sdk_python.egg-info → agentkit_sdk_python-0.1.13}/PKG-INFO +76 -4
  2. agentkit_sdk_python-0.1.13/README.md +90 -0
  3. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/builders/ve_pipeline.py +6 -4
  4. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/cli_status.py +2 -2
  5. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/config/__init__.py +2 -0
  6. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/config/constants.py +2 -0
  7. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/config/strategy_configs.py +4 -4
  8. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/executors/base_executor.py +3 -0
  9. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/executors/init_executor.py +4 -3
  10. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/templates/code-pipeline-tos-cr-step.j2 +2 -2
  11. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/strategies/hybrid_strategy.py +89 -73
  12. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/volcengine/services/cr_service.py +8 -6
  13. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/volcengine/services/tos_service.py +2 -6
  14. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/utils/template_utils.py +1 -1
  15. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/version.py +1 -1
  16. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13/agentkit_sdk_python.egg-info}/PKG-INFO +76 -4
  17. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/pyproject.toml +14 -3
  18. agentkit_sdk_python-0.1.11/README.md +0 -27
  19. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/LICENSE +0 -0
  20. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/MANIFEST.in +0 -0
  21. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/__init__.py +0 -0
  22. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/__init__.py +0 -0
  23. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/a2a_app/__init__.py +0 -0
  24. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/a2a_app/a2a_app.py +0 -0
  25. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/a2a_app/telemetry.py +0 -0
  26. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/agent_server_app/__init__.py +0 -0
  27. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/agent_server_app/agent_server_app.py +0 -0
  28. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/base_app.py +0 -0
  29. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/mcp_app/__init__.py +0 -0
  30. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/mcp_app/mcp_app.py +0 -0
  31. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/mcp_app/telemetry.py +0 -0
  32. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/simple_app/__init__.py +0 -0
  33. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/simple_app/simple_app.py +0 -0
  34. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/simple_app/simple_app_handlers.py +0 -0
  35. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/simple_app/telemetry.py +0 -0
  36. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/apps/utils.py +0 -0
  37. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/client/__init__.py +0 -0
  38. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/client/base_agentkit_client.py +0 -0
  39. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/client/base_iam_client.py +0 -0
  40. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/client/base_service_client.py +0 -0
  41. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/__init__.py +0 -0
  42. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/account/client.py +0 -0
  43. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/account/types.py +0 -0
  44. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/identity/__init__.py +0 -0
  45. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/identity/auth.py +0 -0
  46. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/knowledge/__init__.py +0 -0
  47. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/knowledge/client.py +0 -0
  48. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/knowledge/types.py +0 -0
  49. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/mcp/__init__.py +0 -0
  50. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/mcp/client.py +0 -0
  51. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/mcp/types.py +0 -0
  52. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/memory/__init__.py +0 -0
  53. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/memory/client.py +0 -0
  54. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/memory/types.py +0 -0
  55. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/runtime/__init__.py +0 -0
  56. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/runtime/client.py +0 -0
  57. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/runtime/types.py +0 -0
  58. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/tools/__init__.py +0 -0
  59. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/tools/client.py +0 -0
  60. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/sdk/tools/types.py +0 -0
  61. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/__init__.py +0 -0
  62. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/builders/__init__.py +0 -0
  63. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/builders/base.py +0 -0
  64. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/builders/local_docker.py +0 -0
  65. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/__init__.py +0 -0
  66. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/__main__.py +0 -0
  67. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/cli.py +0 -0
  68. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/cli_build.py +0 -0
  69. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/cli_config.py +0 -0
  70. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/cli_deploy.py +0 -0
  71. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/cli_destroy.py +0 -0
  72. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/cli_init.py +0 -0
  73. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/cli_invoke.py +0 -0
  74. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/cli_launch.py +0 -0
  75. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/cli_version.py +0 -0
  76. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/console_reporter.py +0 -0
  77. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/interactive_config.py +0 -0
  78. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/cli/utils.py +0 -0
  79. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/config/config.py +0 -0
  80. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/config/config_handler.py +0 -0
  81. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/config/config_validator.py +0 -0
  82. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/config/dataclass_utils.py +0 -0
  83. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/config/docker_build_config.py +0 -0
  84. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/config/global_config.py +0 -0
  85. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/config/utils.py +0 -0
  86. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/context.py +0 -0
  87. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/docker/__init__.py +0 -0
  88. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/docker/container.py +0 -0
  89. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/docker/dockerfile/__init__.py +0 -0
  90. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/docker/dockerfile/manager.py +0 -0
  91. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/docker/dockerfile/metadata.py +0 -0
  92. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/errors.py +0 -0
  93. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/executors/__init__.py +0 -0
  94. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/executors/build_executor.py +0 -0
  95. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/executors/deploy_executor.py +0 -0
  96. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/executors/invoke_executor.py +0 -0
  97. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/executors/lifecycle_executor.py +0 -0
  98. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/executors/status_executor.py +0 -0
  99. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/models.py +0 -0
  100. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/reporter.py +0 -0
  101. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/a2a.py +0 -0
  102. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/basic.py +0 -0
  103. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/basic_stream.py +0 -0
  104. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/customer_support_assistant.py +0 -0
  105. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/eino_a2a/agent.go +0 -0
  106. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/eino_a2a/build.sh +0 -0
  107. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/eino_a2a/go.mod +0 -0
  108. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/eino_a2a/go.sum +0 -0
  109. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/eino_a2a/main.go +0 -0
  110. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/financial_analyst.py +0 -0
  111. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/simple_app_veadk.py +0 -0
  112. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/samples/simple_mcp_veadk.py +0 -0
  113. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/templates/golang/Dockerfile.j2 +0 -0
  114. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/templates/python/Dockerfile.j2 +0 -0
  115. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/wrappers/wrapper_basic.py.jinja2 +0 -0
  116. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/resources/wrappers/wrapper_stream.py.jinja2 +0 -0
  117. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/runners/__init__.py +0 -0
  118. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/runners/base.py +0 -0
  119. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/runners/local_docker.py +0 -0
  120. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/runners/ve_agentkit.py +0 -0
  121. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/sdk/__init__.py +0 -0
  122. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/sdk/builder.py +0 -0
  123. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/sdk/client.py +0 -0
  124. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/sdk/config.py +0 -0
  125. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/sdk/deployer.py +0 -0
  126. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/sdk/initializer.py +0 -0
  127. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/sdk/invoker.py +0 -0
  128. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/sdk/lifecycle.py +0 -0
  129. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/sdk/status.py +0 -0
  130. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/strategies/__init__.py +0 -0
  131. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/strategies/base_strategy.py +0 -0
  132. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/strategies/cloud_strategy.py +0 -0
  133. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/strategies/local_strategy.py +0 -0
  134. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/utils/__init__.py +0 -0
  135. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/utils/agent_parser.py +0 -0
  136. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/volcengine/__init__.py +0 -0
  137. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/volcengine/code_pipeline.py +0 -0
  138. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/volcengine/cr.py +0 -0
  139. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/volcengine/iam.py +0 -0
  140. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/volcengine/services/__init__.py +0 -0
  141. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/volcengine/sts.py +0 -0
  142. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/volcengine/utils/__init__.py +0 -0
  143. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/toolkit/volcengine/utils/project_archiver.py +0 -0
  144. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/utils/__init__.py +0 -0
  145. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/utils/credential.py +0 -0
  146. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/utils/logging_config.py +0 -0
  147. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/utils/misc.py +0 -0
  148. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/utils/request.py +0 -0
  149. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit/utils/ve_sign.py +0 -0
  150. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit_sdk_python.egg-info/SOURCES.txt +0 -0
  151. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit_sdk_python.egg-info/dependency_links.txt +0 -0
  152. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit_sdk_python.egg-info/entry_points.txt +0 -0
  153. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit_sdk_python.egg-info/requires.txt +0 -0
  154. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/agentkit_sdk_python.egg-info/top_level.txt +0 -0
  155. {agentkit_sdk_python-0.1.11 → agentkit_sdk_python-0.1.13}/setup.cfg +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentkit-sdk-python
3
- Version: 0.1.11
3
+ Version: 0.1.13
4
4
  Summary: Python SDK for transforming any AI agent into a production-ready application. Framework-agnostic primitives for runtime, memory, authentication, and tools with volcengine-managed infrastructure.
5
- Author-email: Yaozheng Fang <fangyozheng@gmail.com>, Guodong Li <cu.eric.lee@gmail.com>, Xiangrui Cheng <innsdcc@gmail.com>, Yumeng Bao <baoyumeng.123@gmail.com>
5
+ Author-email: Xiangrui Cheng <innsdcc@gmail.com>, Yumeng Bao <baoyumeng.123@gmail.com>, Yaozheng Fang <fangyozheng@gmail.com>, Guodong Li <cu.eric.lee@gmail.com>
6
6
  License: Apache License
7
7
  Version 2.0, January 2004
8
8
  http://www.apache.org/licenses/
@@ -205,6 +205,15 @@ License: Apache License
205
205
  See the License for the specific language governing permissions and
206
206
  limitations under the License.
207
207
 
208
+ Classifier: Development Status :: 4 - Beta
209
+ Classifier: Intended Audience :: Developers
210
+ Classifier: License :: OSI Approved :: Apache Software License
211
+ Classifier: Programming Language :: Python :: 3
212
+ Classifier: Programming Language :: Python :: 3.10
213
+ Classifier: Programming Language :: Python :: 3.11
214
+ Classifier: Programming Language :: Python :: 3.12
215
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
216
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
208
217
  Requires-Python: >=3.10
209
218
  Description-Content-Type: text/markdown
210
219
  License-File: LICENSE
@@ -232,9 +241,68 @@ Provides-Extra: toolkit
232
241
  Provides-Extra: dev
233
242
  Dynamic: license-file
234
243
 
235
- # Agentkit Python SDK
244
+ <div align="center">
245
+ <h1>
246
+ Agentkit Platform Python SDK and Starter Toolkit
247
+ </h1>
236
248
 
237
- Python SDK for transforming any AI agent into a production-ready application. Framework-agnostic primitives for runtime, memory, authentication, and tools with volcengine-managed infrastructure.
249
+ <h2>
250
+ Launch your local agent on Volcengine AgentKit Platform as a fully managed service.
251
+ </h2>
252
+
253
+ <div align="center">
254
+ <a href="https://github.com/volcengine/agentkit-sdk-python/graphs/commit-activity"><img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/volcengine/agentkit-sdk-python"/></a>
255
+ <a href="https://github.com/volcengine/agentkit-sdk-python/pulls"><img alt="GitHub open pull requests" src="https://img.shields.io/github/issues-pr/volcengine/agentkit-sdk-python"/></a>
256
+ <a href="https://github.com/volcengine/agentkit-sdk-python/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/volcengine/agentkit-sdk-python"/></a>
257
+ <a href="https://pypi.org/project/agentkit-sdk-python"><img alt="PyPI version" src="https://img.shields.io/pypi/v/agentkit-sdk-python"/></a>
258
+ <a href="https://python.org"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/agentkit-sdk-python"/></a>
259
+ </div>
260
+
261
+ <p>
262
+ <a href="https://console.volcengine.com/agentkit/"> Volcengine AgentKit</a>
263
+ ◆ <a href="https://volcengine.github.io/agentkit-sdk-python/">Documentation</a>
264
+ ◆ <a href="https://github.com/volcengine/agentkit-samples/tree/main">Samples</a>
265
+ ◆ <a href="https://pypi.org/project/agentkit-sdk-python/">PyPI Package</a>
266
+ ◆ <a href="https://github.com/volcengine/agentkit-sdk-python">GitHub Repository</a>
267
+
268
+ </p>
269
+ </div>
270
+
271
+ ## Overview
272
+
273
+ AgentKit is a developer platform by Volcengine that supports the building, deployment, and operation of AI Agents. It lowers the entry barrier for developers and enterprises by providing essential infrastructure beyond the model—including security, built-in tools, memory, knowledge, monitoring, and evaluation. This empowers enterprises to efficiently build, deploy, and operate complex, intelligent, enterprise-grade Agents. The platform also includes a Python SDK and a Starter Toolkit to help developers build, deploy, publish, and manage Agent applications through an SDK and CLI.
274
+
275
+ AgentKit includes the following modular Services that you can use together or independently:
276
+
277
+ ## AgentKit Runtime
278
+
279
+ AgentKit Runtime is a fully managed service that provides a secure, isolated environment for running AI Agents. It supports the deployment of Agents built with any framework and language, and provides a set of APIs for interacting with the Agents.
280
+
281
+ **[Runtime Quick Start](https://volcengine.github.io/agentkit-sdk-python/content/4.runtime/1.overview.html)**
282
+
283
+ ## AgentKit Tools
284
+
285
+ AgentKit Tools is a service that provides a set of built-in tools for AI Agents. It supports the execution of common tasks, such as data retrieval, web search, and code execution, in a secure and scalable manner.
286
+
287
+ **[Tools Quick Start](https://volcengine.github.io/agentkit-sdk-python/content/5.tools/1.sandbox_quickstart.html)**
288
+
289
+ ## AgentKit Memory
290
+
291
+ AgentKit Memory is a service that provides a persistent storage solution for AI Agents. It supports the storage of Agent states, memories, and other data in a secure and scalable manner.
292
+
293
+ **[Memory Quick Start](https://volcengine.github.io/agentkit-sdk-python/content/6.memory/1.memory_quickstart.html)**
294
+
295
+ ## AgentKit Knowledge
296
+
297
+ AgentKit Knowledge is a service that provides a knowledge base solution for AI Agents. It supports the storage of Agent knowledge, facts, and other data in a secure and scalable manner.
298
+
299
+ **[Knowledge Quick Start](https://volcengine.github.io/agentkit-sdk-python/content/7.knowledge/1.knowledge_quickstart.html)**
300
+
301
+ ## AgentKit MCP
302
+
303
+ AgentKit MCP is a service that provides a set of tools for managing AI Agents. It supports the deployment, configuration, and monitoring of Agents in a secure and scalable manner.
304
+
305
+ **[MCP Quick Start](https://volcengine.github.io/agentkit-sdk-python/content/8.mcp/2.mcp_quickstart.html)**
238
306
 
239
307
  ## Installation
240
308
 
@@ -259,3 +327,7 @@ pip install agentkit-sdk-python==1.0.0.dev1
259
327
  ```
260
328
 
261
329
  **Note**: Development versions may contain bugs and are not recommended for production use.
330
+
331
+ ## License
332
+
333
+ This project is licensed under the [Apache 2.0 License](./LICENSE).
@@ -0,0 +1,90 @@
1
+ <div align="center">
2
+ <h1>
3
+ Agentkit Platform Python SDK and Starter Toolkit
4
+ </h1>
5
+
6
+ <h2>
7
+ Launch your local agent on Volcengine AgentKit Platform as a fully managed service.
8
+ </h2>
9
+
10
+ <div align="center">
11
+ <a href="https://github.com/volcengine/agentkit-sdk-python/graphs/commit-activity"><img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/volcengine/agentkit-sdk-python"/></a>
12
+ <a href="https://github.com/volcengine/agentkit-sdk-python/pulls"><img alt="GitHub open pull requests" src="https://img.shields.io/github/issues-pr/volcengine/agentkit-sdk-python"/></a>
13
+ <a href="https://github.com/volcengine/agentkit-sdk-python/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/volcengine/agentkit-sdk-python"/></a>
14
+ <a href="https://pypi.org/project/agentkit-sdk-python"><img alt="PyPI version" src="https://img.shields.io/pypi/v/agentkit-sdk-python"/></a>
15
+ <a href="https://python.org"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/agentkit-sdk-python"/></a>
16
+ </div>
17
+
18
+ <p>
19
+ <a href="https://console.volcengine.com/agentkit/"> Volcengine AgentKit</a>
20
+ ◆ <a href="https://volcengine.github.io/agentkit-sdk-python/">Documentation</a>
21
+ ◆ <a href="https://github.com/volcengine/agentkit-samples/tree/main">Samples</a>
22
+ ◆ <a href="https://pypi.org/project/agentkit-sdk-python/">PyPI Package</a>
23
+ ◆ <a href="https://github.com/volcengine/agentkit-sdk-python">GitHub Repository</a>
24
+
25
+ </p>
26
+ </div>
27
+
28
+ ## Overview
29
+
30
+ AgentKit is a developer platform by Volcengine that supports the building, deployment, and operation of AI Agents. It lowers the entry barrier for developers and enterprises by providing essential infrastructure beyond the model—including security, built-in tools, memory, knowledge, monitoring, and evaluation. This empowers enterprises to efficiently build, deploy, and operate complex, intelligent, enterprise-grade Agents. The platform also includes a Python SDK and a Starter Toolkit to help developers build, deploy, publish, and manage Agent applications through an SDK and CLI.
31
+
32
+ AgentKit includes the following modular Services that you can use together or independently:
33
+
34
+ ## AgentKit Runtime
35
+
36
+ AgentKit Runtime is a fully managed service that provides a secure, isolated environment for running AI Agents. It supports the deployment of Agents built with any framework and language, and provides a set of APIs for interacting with the Agents.
37
+
38
+ **[Runtime Quick Start](https://volcengine.github.io/agentkit-sdk-python/content/4.runtime/1.overview.html)**
39
+
40
+ ## AgentKit Tools
41
+
42
+ AgentKit Tools is a service that provides a set of built-in tools for AI Agents. It supports the execution of common tasks, such as data retrieval, web search, and code execution, in a secure and scalable manner.
43
+
44
+ **[Tools Quick Start](https://volcengine.github.io/agentkit-sdk-python/content/5.tools/1.sandbox_quickstart.html)**
45
+
46
+ ## AgentKit Memory
47
+
48
+ AgentKit Memory is a service that provides a persistent storage solution for AI Agents. It supports the storage of Agent states, memories, and other data in a secure and scalable manner.
49
+
50
+ **[Memory Quick Start](https://volcengine.github.io/agentkit-sdk-python/content/6.memory/1.memory_quickstart.html)**
51
+
52
+ ## AgentKit Knowledge
53
+
54
+ AgentKit Knowledge is a service that provides a knowledge base solution for AI Agents. It supports the storage of Agent knowledge, facts, and other data in a secure and scalable manner.
55
+
56
+ **[Knowledge Quick Start](https://volcengine.github.io/agentkit-sdk-python/content/7.knowledge/1.knowledge_quickstart.html)**
57
+
58
+ ## AgentKit MCP
59
+
60
+ AgentKit MCP is a service that provides a set of tools for managing AI Agents. It supports the deployment, configuration, and monitoring of Agents in a secure and scalable manner.
61
+
62
+ **[MCP Quick Start](https://volcengine.github.io/agentkit-sdk-python/content/8.mcp/2.mcp_quickstart.html)**
63
+
64
+ ## Installation
65
+
66
+ ### Stable Release (Recommended)
67
+
68
+ Install the latest stable version:
69
+
70
+ ```bash
71
+ pip install agentkit-sdk-python
72
+ ```
73
+
74
+ ### Development/Pre-release Version
75
+
76
+ For testing new features or bug fixes before they're officially released:
77
+
78
+ ```bash
79
+ # Install the latest pre-release version
80
+ pip install --pre agentkit-sdk-python
81
+
82
+ # Or install a specific development version
83
+ pip install agentkit-sdk-python==1.0.0.dev1
84
+ ```
85
+
86
+ **Note**: Development versions may contain bugs and are not recommended for production use.
87
+
88
+ ## License
89
+
90
+ This project is licensed under the [Apache 2.0 License](./LICENSE).
@@ -224,7 +224,7 @@ class VeCPCRBuilder(Builder):
224
224
  if 'pipeline_id' in resources:
225
225
  builder_config.cp_pipeline_id = resources['pipeline_id']
226
226
 
227
- error_msg = f"Build failed: {str(e)}"
227
+ error_msg = str(e)
228
228
 
229
229
  return BuildResult(
230
230
  success=False,
@@ -681,6 +681,8 @@ class VeCPCRBuilder(Builder):
681
681
  except Exception as e:
682
682
  if "AccountDisable" in str(e):
683
683
  raise Exception(f"Tos Service is not enabled, please enable it in the console. Enable services at: https://console.volcengine.com/agentkit/region:agentkit+cn-beijing/auth")
684
+ if "TooManyBuckets" in str(e):
685
+ raise Exception(f"You have reached the maximum number of buckets allowed. Please delete some buckets and try again.")
684
686
  raise Exception(f"Failed to upload to TOS: {str(e)}")
685
687
 
686
688
  def _prepare_cr_resources(self, config: VeCPCRBuilderConfig) -> CRServiceConfig:
@@ -939,10 +941,10 @@ class VeCPCRBuilder(Builder):
939
941
  {"Key": "DOCKERFILE_PATH", "Value": "/workspace/agentkit-app/Dockerfile", "Dynamic": True, "Env": True},
940
942
  {"Key": "DOWNLOAD_PATH", "Value": "/workspace", "Dynamic": True, "Env": True},
941
943
  {"Key": "PROJECT_ROOT_DIR", "Value": "/workspace/agentkit-app", "Dynamic": True, "Env": True},
942
- {"Key": "TOS_BUCKET_NAME", "Value": "", "Dynamic": True, "Env": True},
944
+ {"Key": "TOS_BUCKET_NAME", "Value": "", "Dynamic": True},
945
+ {"Key": "TOS_REGION", "Value": "", "Dynamic": True},
943
946
  {"Key": "TOS_PROJECT_FILE_NAME", "Value": "", "Dynamic": True, "Env": True},
944
947
  {"Key": "TOS_PROJECT_FILE_PATH", "Value": "", "Dynamic": True, "Env": True},
945
- {"Key": "TOS_REGION", "Value": "", "Dynamic": True, "Env": True},
946
948
  {"Key": "CR_NAMESPACE", "Value": "", "Dynamic": True, "Env": True},
947
949
  {"Key": "CR_INSTANCE", "Value": "", "Dynamic": True, "Env": True},
948
950
  {"Key": "CR_DOMAIN", "Value": "", "Dynamic": True, "Env": True},
@@ -1032,9 +1034,9 @@ class VeCPCRBuilder(Builder):
1032
1034
  # Prepare build parameters for pipeline execution
1033
1035
  build_parameters = [
1034
1036
  {"Key": "TOS_BUCKET_NAME", "Value": config.tos_bucket},
1037
+ {"Key": "TOS_REGION", "Value": config.tos_region},
1035
1038
  {"Key": "TOS_PROJECT_FILE_NAME", "Value": os.path.basename(config.tos_object_key)},
1036
1039
  {"Key": "TOS_PROJECT_FILE_PATH", "Value": config.tos_object_key},
1037
- {"Key": "TOS_REGION", "Value": config.tos_region},
1038
1040
  {"Key": "PROJECT_ROOT_DIR", "Value": f"/workspace/{agent_name}"},
1039
1041
  {"Key": "DOWNLOAD_PATH", "Value": "/workspace"},
1040
1042
  {"Key": "DOCKERFILE_PATH", "Value": f"/workspace/{agent_name}/Dockerfile"},
@@ -122,7 +122,7 @@ def status_command(
122
122
  if result.endpoint_url:
123
123
  table.add_row("🌐 Endpoint", result.endpoint_url)
124
124
  if result.service_id:
125
- table.add_row("☁️ Service ID", result.service_id)
125
+ table.add_row("☁️ Service ID", result.service_id)
126
126
  if result.uptime_seconds:
127
127
  # Format uptime to human-readable format
128
128
  uptime = result.uptime_seconds
@@ -130,7 +130,7 @@ def status_command(
130
130
  minutes = (uptime % 3600) // 60
131
131
  seconds = uptime % 60
132
132
  uptime_str = f"{hours}h {minutes}m {seconds}s" if hours > 0 else f"{minutes}m {seconds}s"
133
- table.add_row("⏱️ Uptime", uptime_str)
133
+ table.add_row("⏱️ Uptime", uptime_str)
134
134
 
135
135
  # Extract other information from metadata
136
136
  details = result.metadata or {}
@@ -64,6 +64,8 @@ __all__ = [
64
64
  "AUTO_CREATE_VE",
65
65
  "DEFAULT_WORKSPACE_NAME",
66
66
  "DEFAULT_CR_NAMESPACE",
67
+ "DEFAULT_CR_INSTANCE_TEMPLATE_NAME",
68
+ "DEFAULT_TOS_BUCKET_TEMPLATE_NAME",
67
69
  "DEFAULT_IMAGE_TAG",
68
70
  "GLOBAL_CONFIG_DIR",
69
71
  "GLOBAL_CONFIG_FILE",
@@ -25,6 +25,8 @@ from pathlib import Path
25
25
  AUTO_CREATE_VE = "Auto"
26
26
  DEFAULT_WORKSPACE_NAME = "agentkit-cli-workspace"
27
27
  DEFAULT_CR_NAMESPACE = "agentkit"
28
+ DEFAULT_CR_INSTANCE_TEMPLATE_NAME = "agentkit-platform-{{account_id}}"
29
+ DEFAULT_TOS_BUCKET_TEMPLATE_NAME = "agentkit-platform-{{account_id}}"
28
30
 
29
31
  # Default image tag placeholder for timestamped builds
30
32
  DEFAULT_IMAGE_TAG = "{{timestamp}}"
@@ -1,7 +1,7 @@
1
1
  from dataclasses import dataclass, field
2
2
  from typing import Dict, List
3
3
  from .dataclass_utils import AutoSerializableMixin
4
- from .constants import AUTO_CREATE_VE, DEFAULT_CR_NAMESPACE, DEFAULT_IMAGE_TAG, DEFAULT_WORKSPACE_NAME
4
+ from .constants import AUTO_CREATE_VE, DEFAULT_CR_NAMESPACE, DEFAULT_IMAGE_TAG, DEFAULT_WORKSPACE_NAME, DEFAULT_CR_INSTANCE_TEMPLATE_NAME, DEFAULT_TOS_BUCKET_TEMPLATE_NAME
5
5
 
6
6
 
7
7
  @dataclass
@@ -55,7 +55,7 @@ class HybridStrategyConfig(AutoSerializableMixin):
55
55
  region: str = field(default="cn-beijing", metadata={"description": "Volcano Engine service region", "icon": "🌏", "aliases": ["ve_region"]})
56
56
 
57
57
  # Container Registry (CR) configuration
58
- cr_instance_name: str = field(default=AUTO_CREATE_VE, metadata={"description": "Container Registry instance name", "icon": "📦", "render_template": True, "default_template": "agentkit-cli-{{account_id}}", "aliases": ["ve_cr_instance_name"]})
58
+ cr_instance_name: str = field(default=AUTO_CREATE_VE, metadata={"description": "Container Registry instance name", "icon": "📦", "render_template": True, "default_template": DEFAULT_CR_INSTANCE_TEMPLATE_NAME, "aliases": ["ve_cr_instance_name"]})
59
59
  cr_namespace_name: str = field(default=DEFAULT_CR_NAMESPACE, metadata={"description": "Container Registry namespace", "icon": "📁", "render_template": True, "aliases": ["ve_cr_namespace_name"]})
60
60
  cr_repo_name: str = field(default="", metadata={"description": "Container Registry repository name", "icon": "📋", "aliases": ["ve_cr_repo_name"]})
61
61
  cr_image_full_url: str = field(default="", metadata={"system": True, "description": "Full Container Registry image URL", "aliases": ["ve_cr_image_full_url"]})
@@ -101,7 +101,7 @@ class CloudStrategyConfig(AutoSerializableMixin):
101
101
  )
102
102
 
103
103
  # Tencent Object Storage (TOS) configuration for build artifacts
104
- tos_bucket: str = field(default=AUTO_CREATE_VE, metadata={"system": True, "description": "TOS bucket name for storing build artifacts", "icon": "🗂️", "render_template": True, "default_template": "agentkit-cli-{{account_id}}"})
104
+ tos_bucket: str = field(default=AUTO_CREATE_VE, metadata={"system": True, "description": "TOS bucket name for storing build artifacts", "icon": "🗂️", "render_template": True, "default_template": DEFAULT_TOS_BUCKET_TEMPLATE_NAME})
105
105
  tos_prefix: str = field(default="agentkit-builds", metadata={"system": True, "description": "TOS object prefix for build artifacts"})
106
106
  tos_region: str = field(default="cn-beijing", metadata={"system": True, "description": "TOS service region"})
107
107
  tos_object_key: str = field(default="", metadata={"system": True, "description": "TOS object key for uploaded build artifact"})
@@ -109,7 +109,7 @@ class CloudStrategyConfig(AutoSerializableMixin):
109
109
 
110
110
  # Container Registry (CR) configuration for Docker images
111
111
  image_tag: str = field(default=DEFAULT_IMAGE_TAG, metadata={"system": True, "description": "Docker image tag", "icon": "🏷️", "render_template": True})
112
- cr_instance_name: str = field(default=AUTO_CREATE_VE, metadata={"description": "Container Registry instance name", "icon": "📦", "render_template": True, "default_template": "agentkit-cli-{{account_id}}", "aliases": ["ve_cr_instance_name"]})
112
+ cr_instance_name: str = field(default=AUTO_CREATE_VE, metadata={"description": "Container Registry instance name", "icon": "📦", "render_template": True, "default_template": DEFAULT_CR_INSTANCE_TEMPLATE_NAME, "aliases": ["ve_cr_instance_name"]})
113
113
  cr_namespace_name: str = field(default=DEFAULT_CR_NAMESPACE, metadata={"description": "Container Registry namespace", "icon": "📁", "render_template": True, "aliases": ["ve_cr_namespace_name"]})
114
114
  cr_repo_name: str = field(default="", metadata={"description": "Container Registry repository name (defaults to AgentKit project name)", "icon": "📋", "aliases": ["ve_cr_repo_name"]})
115
115
  cr_region: str = field(default="cn-beijing", metadata={"system": True, "description": "Container Registry service region", "aliases": ["ve_cr_region"]})
@@ -428,6 +428,9 @@ class BaseExecutor:
428
428
  strategy_config['runtime_apikey'] = ""
429
429
  strategy_config['runtime_apikey_name'] = AUTO_CREATE_VE
430
430
  strategy_config['runtime_role_name'] = AUTO_CREATE_VE
431
+ if launch_type == 'cloud':
432
+ strategy_config['cp_pipeline_id'] = ""
433
+ strategy_config['cp_pipeline_name'] = ""
431
434
 
432
435
  config.update_strategy_config(launch_type, strategy_config)
433
436
  self.logger.debug(f"Cleared deploy config for {launch_type}")
@@ -46,6 +46,7 @@ from agentkit.toolkit.config import (
46
46
  global_config_exists,
47
47
  get_global_config,
48
48
  )
49
+ from agentkit.toolkit.config.constants import DEFAULT_CR_INSTANCE_TEMPLATE_NAME, DEFAULT_TOS_BUCKET_TEMPLATE_NAME
49
50
 
50
51
 
51
52
  TEMPLATES = {
@@ -444,7 +445,7 @@ class InitExecutor(BaseExecutor):
444
445
  cloud_config.cr_instance_name = ""
445
446
  self.logger.debug("Using global CR instance config")
446
447
  else:
447
- cloud_config.cr_instance_name = CRService.default_cr_instance_name_template()
448
+ cloud_config.cr_instance_name = DEFAULT_CR_INSTANCE_TEMPLATE_NAME
448
449
 
449
450
  if global_config and global_config.cr.namespace_name:
450
451
  cloud_config.cr_namespace_name = ""
@@ -456,7 +457,7 @@ class InitExecutor(BaseExecutor):
456
457
  cloud_config.tos_bucket = ""
457
458
  self.logger.debug("Using global TOS bucket config")
458
459
  else:
459
- cloud_config.tos_bucket = TOSService.default_bucket_name_template()
460
+ cloud_config.tos_bucket = DEFAULT_TOS_BUCKET_TEMPLATE_NAME
460
461
 
461
462
  if global_config and global_config.tos.prefix:
462
463
  cloud_config.tos_prefix = ""
@@ -485,7 +486,7 @@ class InitExecutor(BaseExecutor):
485
486
  hybrid_config.cr_instance_name = ""
486
487
  self.logger.debug("Using global CR instance config")
487
488
  else:
488
- hybrid_config.cr_instance_name = CRService.default_cr_instance_name_template()
489
+ hybrid_config.cr_instance_name = DEFAULT_CR_INSTANCE_TEMPLATE_NAME
489
490
 
490
491
  if global_config and global_config.cr.namespace_name:
491
492
  hybrid_config.cr_namespace_name = ""
@@ -12,8 +12,8 @@ stages:
12
12
  displayName: TOS 下载
13
13
  component: artifact@1.0.0/tos-download
14
14
  inputs:
15
- bucketName: {{ bucket_name }}
16
- bucketRegion: {{ bucket_region }}
15
+ bucketName: $(parameters.TOS_BUCKET_NAME)
16
+ bucketRegion: $(parameters.TOS_REGION)
17
17
  path: $TOS_PROJECT_FILE_PATH
18
18
  targetPath: $DOWNLOAD_PATH
19
19
  - step: step-c6
@@ -120,14 +120,22 @@ class HybridStrategy(Strategy):
120
120
  cr_repo_name = self._prepare_cr_config(strategy_config.cr_repo_name, common_config.agent_name)
121
121
  if cr_repo_name != strategy_config.cr_repo_name:
122
122
  config_updates.add('cr_repo_name', cr_repo_name)
123
-
123
+
124
124
  should_push, reason = self._should_push_to_cr(strategy_config, cr_repo_name)
125
125
  if should_push:
126
- cr_updates = self._handle_cr_push(result, strategy_config, cr_repo_name)
126
+ cr_updates = self._handle_cr_push(common_config, result, strategy_config, cr_repo_name)
127
127
  config_updates.merge(cr_updates)
128
128
  else:
129
129
  self._report_cr_skip_reason(reason, strategy_config)
130
-
130
+
131
+ # Persist local build metadata
132
+ if result.build_timestamp:
133
+ config_updates.add('build_timestamp', result.build_timestamp.isoformat())
134
+ if result.image:
135
+ config_updates.add('full_image_name', result.image.full_name)
136
+ if getattr(result.image, 'digest', None):
137
+ config_updates.add('image_id', result.image.digest)
138
+
131
139
  result.config_updates = config_updates if config_updates.has_updates() else None
132
140
  return result
133
141
 
@@ -235,21 +243,28 @@ class HybridStrategy(Strategy):
235
243
  Returns:
236
244
  Tuple of (should_push: bool, reason: str).
237
245
  """
246
+ # Validate instance name
238
247
  if not strategy_config.cr_instance_name:
239
248
  return False, "CR instance name is empty"
240
-
241
249
  if strategy_config.cr_instance_name == AUTO_CREATE_VE:
242
250
  return False, "CR instance name is 'Auto'"
243
-
244
- if '{{' in strategy_config.cr_instance_name:
251
+ if '{{' in (strategy_config.cr_instance_name or ''):
245
252
  return False, "CR instance name contains unrendered template variables"
246
-
253
+
254
+ # Validate namespace name
255
+ if not strategy_config.cr_namespace_name:
256
+ return False, "CR namespace name is empty"
257
+ if strategy_config.cr_namespace_name == AUTO_CREATE_VE:
258
+ return False, "CR namespace name is 'Auto'"
259
+ if '{{' in (strategy_config.cr_namespace_name or ''):
260
+ return False, "CR namespace name contains unrendered template variables"
261
+
247
262
  if not cr_repo_name:
248
263
  return False, "CR repository name is empty"
249
264
 
250
265
  return True, ""
251
266
 
252
- def _handle_cr_push(self, result: BuildResult, strategy_config: HybridStrategyConfig,
267
+ def _handle_cr_push(self, common_config: CommonConfig, result: BuildResult, strategy_config: HybridStrategyConfig,
253
268
  cr_repo_name: str) -> 'ConfigUpdates':
254
269
  """
255
270
  Handle pushing image to Container Registry.
@@ -272,17 +287,48 @@ class HybridStrategy(Strategy):
272
287
 
273
288
  config_updates = ConfigUpdates()
274
289
 
275
- local_image = result.image.full_name if result.image else None
276
- if not local_image:
290
+ # Use image_id (SHA) from build result for pushing
291
+ image_id = result.image.digest if result.image else None
292
+ if not image_id:
277
293
  return config_updates
278
-
279
- cr_image_url = self._push_to_cr(
280
- local_image,
281
- strategy_config.cr_instance_name,
282
- strategy_config.cr_namespace_name,
283
- cr_repo_name,
284
- strategy_config.image_tag
294
+
295
+ # Ensure CR resources exist (instance/namespace/repo)
296
+ cr_cfg = CRServiceConfig(
297
+ instance_name=strategy_config.cr_instance_name,
298
+ namespace_name=strategy_config.cr_namespace_name,
299
+ repo_name=cr_repo_name
300
+ )
301
+ cr_service = CRService(reporter=self.reporter)
302
+ ensure_result = cr_service.ensure_cr_resources(cr_cfg, common_config=common_config)
303
+ if not ensure_result.success:
304
+ raise Exception(ensure_result.error or "Failed to ensure CR resources")
305
+
306
+ # Ensure public endpoint is enabled for CR instance
307
+ public_result = cr_service.ensure_public_endpoint(cr_cfg)
308
+ if not public_result.success:
309
+ raise Exception(public_result.error or "Failed to enable CR public endpoint")
310
+
311
+ # Write back any auto-created names to config
312
+ if ensure_result.instance_name and ensure_result.instance_name != strategy_config.cr_instance_name:
313
+ config_updates.add('cr_instance_name', ensure_result.instance_name)
314
+ if ensure_result.namespace_name and ensure_result.namespace_name != strategy_config.cr_namespace_name:
315
+ config_updates.add('cr_namespace_name', ensure_result.namespace_name)
316
+ if ensure_result.repo_name and ensure_result.repo_name != cr_repo_name:
317
+ config_updates.add('cr_repo_name', ensure_result.repo_name)
318
+
319
+ # Push image (inline call to CRService.login_and_push_image)
320
+ self.reporter.info(
321
+ f"Pushing image to CR: {cr_cfg.instance_name}/{cr_cfg.namespace_name}/{cr_cfg.repo_name}:{strategy_config.image_tag}"
285
322
  )
323
+ success, push_result = cr_service.login_and_push_image(
324
+ cr_config=cr_cfg,
325
+ image_id=image_id,
326
+ image_tag=strategy_config.image_tag,
327
+ namespace=cr_cfg.namespace_name
328
+ )
329
+ if not success:
330
+ raise Exception(f"Image push failed: {push_result}")
331
+ cr_image_url = push_result
286
332
 
287
333
  config_updates.add('cr_image_full_url', cr_image_url)
288
334
 
@@ -296,14 +342,14 @@ class HybridStrategy(Strategy):
296
342
 
297
343
  def _report_cr_skip_reason(self, reason: str, strategy_config: HybridStrategyConfig) -> None:
298
344
  """Report reason for skipping CR push."""
299
- if '{{' in strategy_config.cr_instance_name:
300
- self.reporter.warning(f"⚠️ CR instance name contains unrendered template variables: {strategy_config.cr_instance_name}")
301
- self.reporter.warning("⚠️ Ensure volcenginesdkcore is installed to render template variables")
345
+ if '{{' in (strategy_config.cr_instance_name or '') or '{{' in (strategy_config.cr_namespace_name or ''):
346
+ self.reporter.warning("CR names contain unrendered template variables")
347
+ self.reporter.warning("Ensure Volcengine AK/SK are configured and STS can fetch account_id for template rendering.")
302
348
  elif strategy_config.cr_instance_name == AUTO_CREATE_VE:
303
- self.reporter.warning("⚠️ CR instance name is 'Auto', skipping push to CR")
304
- self.reporter.warning("⚠️ Use 'agentkit config' to configure a valid CR instance name")
349
+ self.reporter.warning("CR instance name is 'Auto', skipping push to CR")
350
+ self.reporter.warning("Use 'agentkit config' to configure a valid CR instance name")
305
351
  else:
306
- self.reporter.warning(f"⚠️ Invalid CR configuration, skipping push to CR: {reason}")
352
+ self.reporter.warning(f"Invalid CR configuration, skipping push to CR: {reason}")
307
353
 
308
354
  def _validate_cr_image_url(self, strategy_config: HybridStrategyConfig) -> DeployResult:
309
355
  """
@@ -316,42 +362,54 @@ class HybridStrategy(Strategy):
316
362
  if image_url:
317
363
  return DeployResult(success=True)
318
364
 
319
- if '{{' in strategy_config.cr_instance_name:
365
+ from agentkit.toolkit.errors import ErrorCode
366
+
367
+ if '{{' in (strategy_config.cr_instance_name or '') or '{{' in (strategy_config.cr_namespace_name or ''):
320
368
  error_msg = (
321
- f"CR instance name contains unrendered template variables: {strategy_config.cr_instance_name}\n"
322
- f"Ensure volcenginesdkcore is installed to render template variables."
369
+ "CR names contain unrendered template variables. Ensure Volcengine AK/SK are configured and STS can fetch account_id."
323
370
  )
371
+ error_code = ErrorCode.CONFIG_INVALID
324
372
  elif strategy_config.cr_instance_name == AUTO_CREATE_VE or not strategy_config.cr_instance_name:
325
373
  error_msg = (
326
374
  f"Hybrid mode requires valid CR configuration. Current cr_instance_name='{strategy_config.cr_instance_name}' is invalid.\n"
327
375
  f"Use 'agentkit config' to configure a valid CR instance name, or switch to local/cloud mode."
328
376
  )
377
+ error_code = ErrorCode.CONFIG_INVALID
329
378
  else:
330
379
  error_msg = (
331
380
  "CR image URL not found. Run 'agentkit build' to build and push the image to CR."
332
381
  )
382
+ error_code = ErrorCode.RESOURCE_NOT_FOUND
333
383
 
334
384
  return DeployResult(
335
385
  success=False,
336
386
  error=error_msg,
337
- error_code="INVALID_IMAGE_URL"
387
+ error_code=error_code
338
388
  )
339
389
 
340
390
  def _to_builder_config(self, common_config: CommonConfig,
341
391
  strategy_config: HybridStrategyConfig) -> LocalDockerBuilderConfig:
342
392
  """
343
- Convert HybridVeAgentkitConfig to LocalDockerBuilderConfig.
393
+ Convert HybridStrategyConfig to LocalDockerBuilderConfig.
344
394
  """
395
+ # Retrieve Docker build config from manager (contains CLI runtime options)
396
+ docker_build_config = None
397
+ if self.config_manager:
398
+ try:
399
+ docker_build_config = self.config_manager.get_docker_build_config()
400
+ except Exception:
401
+ docker_build_config = None
345
402
  return LocalDockerBuilderConfig(
346
403
  common_config=common_config,
347
404
  image_name=common_config.agent_name or "agentkit-app",
348
- image_tag=strategy_config.image_tag
405
+ image_tag=strategy_config.image_tag,
406
+ docker_build_config=docker_build_config
349
407
  )
350
408
 
351
409
  def _to_runner_config(self, common_config: CommonConfig,
352
410
  strategy_config: HybridStrategyConfig) -> VeAgentkitRunnerConfig:
353
411
  """
354
- Convert HybridVeAgentkitConfig to VeAgentkitRunnerConfig.
412
+ Convert HybridStrategyConfig to VeAgentkitRunnerConfig.
355
413
  """
356
414
  merged_envs = merge_runtime_envs(common_config, strategy_config.to_dict())
357
415
 
@@ -367,46 +425,4 @@ class HybridStrategy(Strategy):
367
425
  image_url=strategy_config.cr_image_full_url
368
426
  )
369
427
 
370
- def _push_to_cr(self, local_image: str, cr_instance: str,
371
- cr_namespace: str, cr_repo: str, tag: str) -> str:
372
- """
373
- Push local image to Container Registry.
374
-
375
- Args:
376
- local_image: Local image name (e.g., agentkit-app:v1.0).
377
- cr_instance: CR instance name.
378
- cr_namespace: CR namespace.
379
- cr_repo: CR repository name.
380
- tag: Image tag.
381
-
382
- Returns:
383
- Full CR image URL.
384
-
385
- Raises:
386
- Exception: If image push fails. Exceptions are handled by Executor.
387
- """
388
- cr_config = CRServiceConfig(
389
- instance_name=cr_instance,
390
- namespace_name=cr_namespace,
391
- repo_name=cr_repo
392
- )
393
-
394
- cr_service = CRService(reporter=self.reporter)
395
-
396
- import docker
397
- client = docker.from_env()
398
- image = client.images.get(local_image)
399
- image_id = image.id
400
-
401
- self.reporter.info(f"Pushing image to CR: {cr_instance}/{cr_namespace}/{cr_repo}:{tag}")
402
- success, result = cr_service.login_and_push_image(
403
- cr_config=cr_config,
404
- image_id=image_id,
405
- image_tag=tag,
406
- namespace=cr_namespace
407
- )
408
-
409
- if not success:
410
- raise Exception(f"Image push failed: {result}")
411
-
412
- return result
428
+ # _push_to_cr removed: logic is handled inline within _handle_cr_push