veadk-python 0.2.26__tar.gz → 0.2.28__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 (253) hide show
  1. {veadk_python-0.2.26/veadk_python.egg-info → veadk_python-0.2.28}/PKG-INFO +2 -1
  2. {veadk_python-0.2.26 → veadk_python-0.2.28}/pyproject.toml +2 -1
  3. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/ark_veauth.py +6 -2
  4. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli.py +2 -0
  5. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_clean.py +4 -4
  6. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_deploy.py +9 -0
  7. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_pipeline.py +4 -3
  8. veadk_python-0.2.28/veadk/cli/cli_rl.py +109 -0
  9. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_update.py +4 -2
  10. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_uploadevalset.py +5 -4
  11. veadk_python-0.2.28/veadk/cli/templates/rl/ark/README.md +45 -0
  12. veadk_python-0.2.28/veadk/cli/templates/rl/ark/arkworkspace.toml +2 -0
  13. veadk_python-0.2.28/veadk/cli/templates/rl/ark/data/demo_dataset.jsonl +3 -0
  14. veadk_python-0.2.28/veadk/cli/templates/rl/ark/job.py +74 -0
  15. veadk_python-0.2.28/veadk/cli/templates/rl/ark/job.yaml +44 -0
  16. veadk_python-0.2.28/veadk/cli/templates/rl/ark/plugins/random_reward.py +59 -0
  17. veadk_python-0.2.28/veadk/cli/templates/rl/ark/plugins/raw_async_veadk_rollout.py +291 -0
  18. veadk_python-0.2.28/veadk/cli/templates/rl/ark/plugins/test_utils.py +103 -0
  19. veadk_python-0.2.28/veadk/cli/templates/rl/ark/requirements.txt +9 -0
  20. veadk_python-0.2.28/veadk/cli/templates/rl/ark/test_faas.py +51 -0
  21. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/ve_faas.py +3 -2
  22. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/knowledgebase/backends/vikingdb_knowledge_backend.py +3 -3
  23. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/long_term_memory.py +7 -1
  24. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/long_term_memory_backends/vikingdb_memory_backend.py +2 -1
  25. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/short_term_memory.py +9 -5
  26. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/short_term_memory_backends/mysql_backend.py +2 -1
  27. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/short_term_memory_backends/postgresql_backend.py +2 -1
  28. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/runner.py +11 -9
  29. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/web_search.py +6 -3
  30. veadk_python-0.2.28/veadk/tools/mcp_tool/trusted_mcp_session_manager.py +160 -0
  31. veadk_python-0.2.28/veadk/tools/mcp_tool/trusted_mcp_toolset.py +132 -0
  32. veadk_python-0.2.28/veadk/utils/__init__.py +13 -0
  33. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/utils/mcp_utils.py +12 -3
  34. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/version.py +1 -1
  35. {veadk_python-0.2.26 → veadk_python-0.2.28/veadk_python.egg-info}/PKG-INFO +2 -1
  36. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk_python.egg-info/SOURCES.txt +14 -0
  37. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk_python.egg-info/requires.txt +1 -0
  38. {veadk_python-0.2.26 → veadk_python-0.2.28}/LICENSE +0 -0
  39. {veadk_python-0.2.26 → veadk_python-0.2.28}/README.md +0 -0
  40. {veadk_python-0.2.26 → veadk_python-0.2.28}/setup.cfg +0 -0
  41. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_agent.py +0 -0
  42. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_cloud.py +0 -0
  43. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_evaluator.py +0 -0
  44. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_knowledgebase.py +0 -0
  45. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_long_term_memory.py +0 -0
  46. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_misc.py +0 -0
  47. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_multiple_agents.py +0 -0
  48. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_runner.py +0 -0
  49. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_runtime_data_collecting.py +0 -0
  50. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_short_term_memory.py +0 -0
  51. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_tracing.py +0 -0
  52. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_ve_a2a_middlewares.py +0 -0
  53. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_ve_identity_auth_config.py +0 -0
  54. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_ve_identity_function_tool.py +0 -0
  55. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_ve_identity_mcp_tool.py +0 -0
  56. {veadk_python-0.2.26 → veadk_python-0.2.28}/tests/test_ve_identity_mcp_toolset.py +0 -0
  57. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/__init__.py +0 -0
  58. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/a2a/__init__.py +0 -0
  59. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/a2a/agent_card.py +0 -0
  60. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/a2a/remote_ve_agent.py +0 -0
  61. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/a2a/utils/__init__.py +0 -0
  62. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/a2a/utils/agent_to_a2a.py +0 -0
  63. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/a2a/ve_a2a_server.py +0 -0
  64. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/a2a/ve_agent_executor.py +0 -0
  65. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/a2a/ve_middlewares.py +0 -0
  66. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/a2a/ve_task_store.py +0 -0
  67. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/agent.py +0 -0
  68. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/agent_builder.py +0 -0
  69. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/agents/loop_agent.py +0 -0
  70. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/agents/parallel_agent.py +0 -0
  71. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/agents/sequential_agent.py +0 -0
  72. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/__init__.py +0 -0
  73. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/base_auth.py +0 -0
  74. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/ve_credential_service.py +0 -0
  75. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/__init__.py +0 -0
  76. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/apmplus_veauth.py +0 -0
  77. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/base_veauth.py +0 -0
  78. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/cozeloop_veauth.py +0 -0
  79. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/opensearch_veauth.py +0 -0
  80. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/postgresql_veauth.py +0 -0
  81. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/prompt_pilot_veauth.py +0 -0
  82. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/speech_veauth.py +0 -0
  83. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/utils.py +0 -0
  84. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/vesearch_veauth.py +0 -0
  85. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/auth/veauth/viking_mem0_veauth.py +0 -0
  86. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/__init__.py +0 -0
  87. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_create.py +0 -0
  88. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_eval.py +0 -0
  89. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_init.py +0 -0
  90. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_kb.py +0 -0
  91. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_prompt.py +0 -0
  92. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cli/cli_web.py +0 -0
  93. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cloud/__init__.py +0 -0
  94. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cloud/cloud_agent_engine.py +0 -0
  95. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/cloud/cloud_app.py +0 -0
  96. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/config.py +0 -0
  97. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/configs/__init__.py +0 -0
  98. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/configs/auth_configs.py +0 -0
  99. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/configs/database_configs.py +0 -0
  100. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/configs/model_configs.py +0 -0
  101. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/configs/tool_configs.py +0 -0
  102. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/configs/tracing_configs.py +0 -0
  103. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/consts.py +0 -0
  104. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/evaluation/__init__.py +0 -0
  105. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/evaluation/adk_evaluator/__init__.py +0 -0
  106. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/evaluation/adk_evaluator/adk_evaluator.py +0 -0
  107. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/evaluation/base_evaluator.py +0 -0
  108. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/evaluation/deepeval_evaluator/__init__.py +0 -0
  109. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +0 -0
  110. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/evaluation/eval_set_file_loader.py +0 -0
  111. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/evaluation/eval_set_recorder.py +0 -0
  112. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/evaluation/types.py +0 -0
  113. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/evaluation/utils/prometheus.py +0 -0
  114. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/__init__.py +0 -0
  115. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_apig/__init__.py +0 -0
  116. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_apig/ve_apig.py +0 -0
  117. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_apig/ve_apig_utils.py +0 -0
  118. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_code_pipeline/__init__.py +0 -0
  119. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_code_pipeline/ve_code_pipeline.py +0 -0
  120. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_cozeloop/__init__.py +0 -0
  121. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_cozeloop/ve_cozeloop.py +0 -0
  122. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_cr/__init__.py +0 -0
  123. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_cr/ve_cr.py +0 -0
  124. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/__init__.py +0 -0
  125. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/cookiecutter.json +0 -0
  126. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/__init__.py +0 -0
  127. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
  128. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
  129. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
  130. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/__init__.py +0 -0
  131. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py +0 -0
  132. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
  133. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
  134. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
  135. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/__init__.py +0 -0
  136. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/agent.py +0 -0
  137. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/ve_faas_utils.py +0 -0
  138. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/cookiecutter.json +0 -0
  139. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/__init__.py +0 -0
  140. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
  141. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
  142. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
  143. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile +0 -0
  144. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
  145. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/init_db.py +0 -0
  146. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/models.py +0 -0
  147. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
  148. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
  149. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/css/style.css +0 -0
  150. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/js/admin.js +0 -0
  151. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/dashboard.html +0 -0
  152. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/edit_post.html +0 -0
  153. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/login.html +0 -0
  154. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/posts.html +0 -0
  155. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/base.html +0 -0
  156. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/index.html +0 -0
  157. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/post.html +0 -0
  158. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/__init__.py +0 -0
  159. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/auth_config.py +0 -0
  160. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/auth_mixins.py +0 -0
  161. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/auth_processor.py +0 -0
  162. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/function_tool.py +0 -0
  163. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/identity_client.py +0 -0
  164. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/mcp_tool.py +0 -0
  165. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/mcp_toolset.py +0 -0
  166. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/models.py +0 -0
  167. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/token_manager.py +0 -0
  168. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_identity/utils.py +0 -0
  169. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_prompt_pilot/__init__.py +0 -0
  170. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py +0 -0
  171. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_tls/__init__.py +0 -0
  172. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_tls/utils.py +0 -0
  173. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_tls/ve_tls.py +0 -0
  174. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_tos/ve_tos.py +0 -0
  175. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_viking_db_memory/__init__.py +0 -0
  176. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py +0 -0
  177. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/knowledgebase/__init__.py +0 -0
  178. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/knowledgebase/backends/__init__.py +0 -0
  179. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/knowledgebase/backends/base_backend.py +0 -0
  180. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/knowledgebase/backends/in_memory_backend.py +0 -0
  181. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/knowledgebase/backends/opensearch_backend.py +0 -0
  182. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/knowledgebase/backends/redis_backend.py +0 -0
  183. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/knowledgebase/backends/utils.py +0 -0
  184. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/knowledgebase/entry.py +0 -0
  185. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/knowledgebase/knowledgebase.py +0 -0
  186. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/__init__.py +0 -0
  187. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/long_term_memory_backends/__init__.py +0 -0
  188. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/long_term_memory_backends/base_backend.py +0 -0
  189. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/long_term_memory_backends/in_memory_backend.py +0 -0
  190. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/long_term_memory_backends/mem0_backend.py +0 -0
  191. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/long_term_memory_backends/opensearch_backend.py +0 -0
  192. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/long_term_memory_backends/redis_backend.py +0 -0
  193. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/short_term_memory_backends/__init__.py +0 -0
  194. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/short_term_memory_backends/base_backend.py +0 -0
  195. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/short_term_memory_backends/sqlite_backend.py +0 -0
  196. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/memory/short_term_memory_processor.py +0 -0
  197. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/processors/__init__.py +0 -0
  198. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/processors/base_run_processor.py +0 -0
  199. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/prompts/__init__.py +0 -0
  200. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/prompts/agent_default_prompt.py +0 -0
  201. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/prompts/prompt_evaluator.py +0 -0
  202. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/prompts/prompt_memory_processor.py +0 -0
  203. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/prompts/prompt_optimization.py +0 -0
  204. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/__init__.py +0 -0
  205. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/__init__.py +0 -0
  206. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/agent_authorization.py +0 -0
  207. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/generate_image.py +0 -0
  208. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/image_edit.py +0 -0
  209. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/image_generate.py +0 -0
  210. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/lark.py +0 -0
  211. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/las.py +0 -0
  212. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/link_reader.py +0 -0
  213. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/llm_shield.py +0 -0
  214. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/load_knowledgebase.py +0 -0
  215. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/mcp_router.py +0 -0
  216. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/run_code.py +0 -0
  217. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/tts.py +0 -0
  218. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/vesearch.py +0 -0
  219. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/video_generate.py +0 -0
  220. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/builtin_tools/web_scraper.py +0 -0
  221. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/demo_tools.py +0 -0
  222. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/load_knowledgebase_tool.py +0 -0
  223. {veadk_python-0.2.26/veadk/tools/sandbox → veadk_python-0.2.28/veadk/tools/mcp_tool}/__init__.py +0 -0
  224. {veadk_python-0.2.26/veadk/tracing → veadk_python-0.2.28/veadk/tools/sandbox}/__init__.py +0 -0
  225. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/sandbox/browser_sandbox.py +0 -0
  226. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/sandbox/code_sandbox.py +0 -0
  227. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tools/sandbox/computer_sandbox.py +0 -0
  228. {veadk_python-0.2.26/veadk/tracing/telemetry → veadk_python-0.2.28/veadk/tracing}/__init__.py +0 -0
  229. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/base_tracer.py +0 -0
  230. {veadk_python-0.2.26/veadk/tracing/telemetry/exporters → veadk_python-0.2.28/veadk/tracing/telemetry}/__init__.py +0 -0
  231. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/attributes/attributes.py +0 -0
  232. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +0 -0
  233. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +0 -0
  234. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +0 -0
  235. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/attributes/extractors/types.py +0 -0
  236. {veadk_python-0.2.26/veadk/utils → veadk_python-0.2.28/veadk/tracing/telemetry/exporters}/__init__.py +0 -0
  237. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/exporters/apmplus_exporter.py +0 -0
  238. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/exporters/base_exporter.py +0 -0
  239. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/exporters/cozeloop_exporter.py +0 -0
  240. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/exporters/inmemory_exporter.py +0 -0
  241. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/exporters/tls_exporter.py +0 -0
  242. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/opentelemetry_tracer.py +0 -0
  243. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/tracing/telemetry/telemetry.py +0 -0
  244. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/types.py +0 -0
  245. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/utils/audio_manager.py +0 -0
  246. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/utils/auth.py +0 -0
  247. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/utils/logger.py +0 -0
  248. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/utils/misc.py +0 -0
  249. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/utils/patches.py +0 -0
  250. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk/utils/volcengine_sign.py +0 -0
  251. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk_python.egg-info/dependency_links.txt +0 -0
  252. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk_python.egg-info/entry_points.txt +0 -0
  253. {veadk_python-0.2.26 → veadk_python-0.2.28}/veadk_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: veadk-python
3
- Version: 0.2.26
3
+ Version: 0.2.28
4
4
  Summary: Volcengine agent development kit, integrations with Volcengine cloud services.
5
5
  Author-email: Yaozheng Fang <fangyozheng@gmail.com>, Guodong Li <cu.eric.lee@gmail.com>, Zhi Han <sliverydayday@gmail.com>, Meng Wang <mengwangwm@gmail.com>
6
6
  License: Apache License
@@ -222,6 +222,7 @@ Requires-Dist: volcengine-python-sdk>=4.0.33
222
222
  Requires-Dist: volcengine>=1.0.193
223
223
  Requires-Dist: agent-pilot-sdk>=0.1.2
224
224
  Requires-Dist: fastmcp>=2.11.3
225
+ Requires-Dist: trustedmcp>=0.0.4
225
226
  Requires-Dist: cookiecutter>=2.6.0
226
227
  Requires-Dist: omegaconf>=2.3.0
227
228
  Requires-Dist: llama-index>=0.14.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "veadk-python"
3
- version = "0.2.26"
3
+ version = "0.2.28"
4
4
  description = "Volcengine agent development kit, integrations with Volcengine cloud services."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -26,6 +26,7 @@ dependencies = [
26
26
  "volcengine>=1.0.193", # For Volcengine sign
27
27
  "agent-pilot-sdk>=0.1.2", # Prompt optimization by Volcengine AgentPilot/PromptPilot toolkits
28
28
  "fastmcp>=2.11.3", # For running MCP
29
+ "trustedmcp>=0.0.4", # For running TrustedMCP
29
30
  "cookiecutter>=2.6.0", # For cloud deploy
30
31
  "omegaconf>=2.3.0", # For agent builder
31
32
  "llama-index>=0.14.0",
@@ -36,7 +36,7 @@ def get_ark_token(region: str = "cn-beijing") -> str:
36
36
  session_token = cred.session_token
37
37
 
38
38
  res = ve_request(
39
- request_body={"ProjectName": "default", "Filter": {}},
39
+ request_body={"ProjectName": "default", "Filter": {"AllowAll": True}},
40
40
  header={"X-Security-Token": session_token},
41
41
  action="ListApiKeys",
42
42
  ak=access_key,
@@ -48,6 +48,10 @@ def get_ark_token(region: str = "cn-beijing") -> str:
48
48
  )
49
49
  try:
50
50
  first_api_key_id = res["Result"]["Items"][0]["Id"]
51
+ logger.warning("By default, VeADK fetches the first API Key in the list.")
52
+ logger.info(
53
+ f"Try to fetch ARK API Key with id={first_api_key_id}, name={res['Result']['Items'][0]['Name']}"
54
+ )
51
55
  except KeyError:
52
56
  raise ValueError(f"Failed to get ARK api key list: {res}")
53
57
 
@@ -65,7 +69,7 @@ def get_ark_token(region: str = "cn-beijing") -> str:
65
69
  )
66
70
  try:
67
71
  api_key = res["Result"]["ApiKey"]
68
- logger.info("Successfully fetching ARK API Key.")
72
+ logger.info(f"Successfully fetched ARK API Key (starts with {api_key[:8]}).")
69
73
  return api_key
70
74
  except KeyError:
71
75
  raise ValueError(f"Failed to get ARK api key: {res}")
@@ -26,6 +26,7 @@ from veadk.cli.cli_web import web
26
26
  from veadk.cli.cli_uploadevalset import uploadevalset
27
27
  from veadk.cli.cli_update import update
28
28
  from veadk.cli.cli_clean import clean
29
+ from veadk.cli.cli_rl import rl_group
29
30
  from veadk.version import VERSION
30
31
 
31
32
 
@@ -53,6 +54,7 @@ veadk.add_command(kb)
53
54
  veadk.add_command(uploadevalset)
54
55
  veadk.add_command(update)
55
56
  veadk.add_command(clean)
57
+ veadk.add_command(rl_group)
56
58
 
57
59
  if __name__ == "__main__":
58
60
  veadk()
@@ -12,11 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- import time
16
15
  import click
17
-
18
- from veadk.config import getenv
19
- from veadk.integrations.ve_faas.ve_faas import VeFaaS
20
16
  from veadk.utils.logger import get_logger
21
17
 
22
18
  logger = get_logger(__name__)
@@ -58,6 +54,10 @@ def clean(
58
54
  Returns:
59
55
  None
60
56
  """
57
+ import time
58
+ from veadk.config import getenv
59
+ from veadk.integrations.ve_faas.ve_faas import VeFaaS
60
+
61
61
  if not volcengine_access_key:
62
62
  volcengine_access_key = getenv("VOLCENGINE_ACCESS_KEY")
63
63
  if not volcengine_secret_key:
@@ -67,6 +67,7 @@ TEMP_PATH = "/tmp"
67
67
  help="Expected Volcengine Identity client name",
68
68
  )
69
69
  @click.option("--path", default=".", help="Local project path")
70
+ @click.option("--iam-role", default=None, help="iam role for the vefaas function")
70
71
  def deploy(
71
72
  volcengine_access_key: str,
72
73
  volcengine_secret_key: str,
@@ -80,6 +81,7 @@ def deploy(
80
81
  user_pool_name: str,
81
82
  client_name: str,
82
83
  path: str,
84
+ iam_role: str,
83
85
  ) -> None:
84
86
  """Deploy a user project to Volcengine FaaS application.
85
87
 
@@ -131,6 +133,8 @@ def deploy(
131
133
  from veadk.config import getenv
132
134
  from veadk.utils.logger import get_logger
133
135
  from veadk.utils.misc import formatted_timestamp, load_module_from_file
136
+ import os
137
+ from veadk.config import veadk_environments
134
138
 
135
139
  logger = get_logger(__name__)
136
140
 
@@ -138,6 +142,11 @@ def deploy(
138
142
  volcengine_access_key = getenv("VOLCENGINE_ACCESS_KEY")
139
143
  if not volcengine_secret_key:
140
144
  volcengine_secret_key = getenv("VOLCENGINE_SECRET_KEY")
145
+ if not iam_role:
146
+ iam_role = getenv("IAM_ROLE", None, allow_false_values=True)
147
+ else:
148
+ os.environ["IAM_ROLE"] = iam_role
149
+ veadk_environments["IAM_ROLE"] = iam_role
141
150
 
142
151
  user_proj_abs_path = Path(path).resolve()
143
152
  template_dir_path = Path(vefaas.__file__).parent / "template"
@@ -22,9 +22,6 @@ from veadk.consts import (
22
22
  DEFAULT_CR_NAMESPACE_NAME,
23
23
  DEFAULT_CR_REPO_NAME,
24
24
  )
25
- from veadk.integrations.ve_code_pipeline.ve_code_pipeline import VeCodePipeline
26
- from veadk.integrations.ve_cr.ve_cr import VeCR
27
- from veadk.integrations.ve_faas.ve_faas import VeFaaS
28
25
  from veadk.utils.logger import get_logger
29
26
  from veadk.version import VERSION
30
27
 
@@ -49,6 +46,8 @@ def _create_cr(volcengine_settings: dict[str, str], cr_settings: dict[str, str])
49
46
  Raises:
50
47
  Exception: If any of the CR resource creation operations fail
51
48
  """
49
+ from veadk.integrations.ve_cr.ve_cr import VeCR
50
+
52
51
  vecr = VeCR(
53
52
  access_key=volcengine_settings["volcengine_access_key"],
54
53
  secret_key=volcengine_settings["volcengine_secret_key"],
@@ -203,6 +202,8 @@ def pipeline(
203
202
  - The pipeline will be triggered immediately upon creation for initial deployment
204
203
  - Subsequent deployments occur automatically when code is pushed to the monitored branch
205
204
  """
205
+ from veadk.integrations.ve_code_pipeline.ve_code_pipeline import VeCodePipeline
206
+ from veadk.integrations.ve_faas.ve_faas import VeFaaS
206
207
 
207
208
  click.echo(
208
209
  "Welcome use VeADK to integrate your project to volcengine pipeline for CI/CD."
@@ -0,0 +1,109 @@
1
+ # Copyright (c) 2025 Beijing Volcano Engine Technology Co., Ltd. and/or its affiliates.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ import click
16
+ import shutil
17
+ import sys
18
+ from pathlib import Path
19
+
20
+
21
+ def get_rl_template_root() -> Path:
22
+ """Get absolute path of RL scaffold template root (cli/templates/rl/)"""
23
+ current_file = Path(__file__).resolve()
24
+ cli_dir = current_file.parent
25
+ rl_template_root = cli_dir / "templates" / "rl"
26
+ return rl_template_root
27
+
28
+
29
+ @click.group(name="rl", help="RL related commands")
30
+ def rl_group():
31
+ pass
32
+
33
+
34
+ @rl_group.command(
35
+ name="init", help="Initialize RL scaffold project (specify platform/workspace)"
36
+ )
37
+ @click.option(
38
+ "--platform",
39
+ "-p",
40
+ required=True,
41
+ type=click.Choice(["ark"], case_sensitive=False),
42
+ help="Scaffold platform type (only support for now: ark)",
43
+ )
44
+ @click.option(
45
+ "--workspace", "-w", required=True, type=str, help="Target workspace directory name"
46
+ )
47
+ @click.option(
48
+ "--overwrite",
49
+ "-f",
50
+ is_flag=True,
51
+ help="Force overwrite existing workspace (default: false)",
52
+ )
53
+ def rl_init(platform: str, workspace: str, overwrite: bool):
54
+ """
55
+ Initialize RL scaffold project for ark platform
56
+ Example: veadk rl init --platform ark --workspace veadk_rl_ark_project
57
+ """
58
+ # Locate template directory
59
+ rl_template_root = get_rl_template_root()
60
+ platform_template_dir = rl_template_root / platform.lower()
61
+
62
+ # Validate template directory
63
+ if not platform_template_dir.exists():
64
+ click.secho(f"Error: Scaffold template for {platform} not found!", fg="red")
65
+ click.secho(f" Expected path: {platform_template_dir}", fg="yellow")
66
+ click.secho(
67
+ f" Supported platforms: {[d.name for d in rl_template_root.glob('*') if d.is_dir()]}",
68
+ fg="blue",
69
+ )
70
+ sys.exit(1)
71
+
72
+ # Target workspace path
73
+ target_workspace = Path.cwd() / workspace
74
+
75
+ # Handle existing directory
76
+ if target_workspace.exists():
77
+ if not overwrite:
78
+ click.secho(
79
+ f"\nWarning: Target directory {target_workspace} already exists!",
80
+ fg="yellow",
81
+ )
82
+ if not click.confirm("Overwrite?"):
83
+ click.secho("Operation cancelled", fg="red")
84
+ sys.exit(0)
85
+ shutil.rmtree(target_workspace)
86
+ click.secho(f"Cleared existing directory: {target_workspace}", fg="green")
87
+
88
+ # Copy scaffold files
89
+ try:
90
+ shutil.copytree(
91
+ src=platform_template_dir,
92
+ dst=target_workspace,
93
+ ignore=None,
94
+ dirs_exist_ok=False,
95
+ )
96
+ click.secho("\nRL scaffold initialized successfully!", fg="green")
97
+ click.secho(f" - Project path: {target_workspace.absolute()}", fg="green")
98
+ except PermissionError:
99
+ click.secho(
100
+ f"Error: Permission denied to write to {target_workspace}", fg="red"
101
+ )
102
+ sys.exit(1)
103
+ except Exception as e:
104
+ click.secho(f"Error: Failed to copy scaffold - {str(e)}", fg="red")
105
+ sys.exit(1)
106
+
107
+
108
+ if __name__ == "__main__":
109
+ rl_group()
@@ -14,9 +14,8 @@
14
14
 
15
15
  import click
16
16
 
17
- from veadk.cloud.cloud_agent_engine import CloudAgentEngine
18
17
  from veadk.utils.logger import get_logger
19
- from veadk.config import getenv
18
+
20
19
 
21
20
  logger = get_logger(__name__)
22
21
 
@@ -78,6 +77,9 @@ def update(
78
77
  ValueError: If authentication fails or application not found.
79
78
  FileNotFoundError: If local path does not exist.
80
79
  """
80
+ from veadk.cloud.cloud_agent_engine import CloudAgentEngine
81
+ from veadk.config import getenv
82
+
81
83
  # Set environment variables if provided
82
84
  if not volcengine_access_key:
83
85
  volcengine_access_key = getenv("VOLCENGINE_ACCESS_KEY")
@@ -13,11 +13,8 @@
13
13
  # limitations under the License.
14
14
 
15
15
  import click
16
- import json
17
- import requests
18
16
  from veadk.utils.logger import get_logger
19
- from veadk.config import getenv
20
- from pathlib import Path
17
+
21
18
 
22
19
  logger = get_logger(__name__)
23
20
 
@@ -52,6 +49,10 @@ def uploadevalset(
52
49
  cozeloop_api_key: API key for authenticating with CozeLoop services.
53
50
  If not provided, uses OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY environment variable.
54
51
  """
52
+ import json
53
+ import requests
54
+ from veadk.config import getenv
55
+ from pathlib import Path
55
56
 
56
57
  if not cozeloop_workspace_id:
57
58
  cozeloop_workspace_id = getenv(
@@ -0,0 +1,45 @@
1
+ # 基于方舟平台强化学习
2
+ 方舟 RL 将强化学习过程进行了一定程度的封装,降低了复杂度。用户主要关注 rollout 中的 agent 逻辑、奖励函数的构建、训练样本的选择即可。
3
+ VeADK 与方舟平台 Agent RL 集成,用户使用 VeADK 提供的脚手架,可以开发 VeADK Agent,然后提交任务到方舟平台进行强化学习优化。
4
+ ## 准备工作
5
+ 在你的终端中运行以下命令,初始化一个强化学习项目:
6
+ ```shell
7
+ veadk rl init --platform ark --workspace veadk_rl_ark_project
8
+ ```
9
+ 该命令会在当前目录下创建一个名为 `veadk_rl_ark_project` 的文件夹,其中包含了一个基本的强化学习项目结构。
10
+ 然后在终端中运行以下命令,提交任务到方舟平台:
11
+ ```shell
12
+ cd veadk_rl_ark_project
13
+ veadk rl submit --platform ark
14
+ ```
15
+ ## 原理说明
16
+ 生成后的项目结构如下,其中核心文件包括:
17
+ - 数据集: `data/*.jsonl`
18
+ - `/plugins`文件夹下的rollout和reward:
19
+ - rollout :用以规定agent的工作流,`raw_async_veadk_rollout.py`提供了使用在方舟rl中使用veadk agent的示例,
20
+ - reward:给出强化学习所需的奖励值,在`random_reward.py`给出了示例
21
+ - `job.py`或`job.yaml`:用以配置训练参数,并指定需要使用的rollout和reward
22
+ ```shell
23
+ veadk_rl_ark_project
24
+ ├── data
25
+ ├── *.jsonl # 训练数据
26
+ └── plugins
27
+ ├── async_weather_rollout.py #
28
+ ├── config.yaml.example # VeADK agent 配置信息示例
29
+ ├── random_reward.py # reward规则设定
30
+ ├── raw_async_veadk_rollout.py # rollout工作流设定
31
+ ├── raw_rollout.py #
32
+ └── test_utils.py #
33
+ └── weather_rollout.py #
34
+ ├── job.py # 任务提交代码
35
+ ├── job.yaml # 任务配置
36
+ ├── test_agent.py # VeFaaS 测试脚本
37
+ ```
38
+ ## 运行
39
+ ```bash
40
+ ark create mcj -f job.yaml
41
+ ```
42
+
43
+ ```bash
44
+ python job.py
45
+ ```
@@ -0,0 +1,2 @@
1
+ [plugin.package]
2
+ include=["*.py"]
@@ -0,0 +1,3 @@
1
+ {"messages":[{"role":"user","content":"将一个故事然后告诉我北京的天气怎么样"}],"thinking":{"type": "enabled"}}
2
+ {"messages":[{"role":"user","content":"上海的天气怎么样"}],"thinking":{"type": "enabled"}}
3
+ {"messages":[{"role":"user","content":"上海和北京的天气怎么样"}],"thinking":{"type": "enabled"}}
@@ -0,0 +1,74 @@
1
+ # Copyright (c) 2025 Beijing Volcano Engine Technology Co., Ltd. and/or its affiliates.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from ark_sdk.resources.model_customization_job import ModelCustomizationJob
16
+ from ark_sdk.resources.pipeline_plugin import GRPOPipeline, PipelinePluginWrapper
17
+ from ark_sdk.types.model_customization_job import (
18
+ ModelReference,
19
+ FoundationModelReference,
20
+ TrainingDataset,
21
+ Data,
22
+ )
23
+
24
+ from plugins.random_reward import random_reward_fn
25
+ from plugins.raw_async_veadk_rollout import demo_veadk_rollout
26
+
27
+ if __name__ == "__main__":
28
+ mcj = ModelCustomizationJob(
29
+ name="sdk-job",
30
+ model_reference=ModelReference(
31
+ foundation_model=FoundationModelReference(
32
+ name="doubao-seed-1-6-flash", model_version="250615"
33
+ )
34
+ ),
35
+ hyperparameters={
36
+ "batch_size": "32",
37
+ "clip_ratio_high": "0.2",
38
+ "clip_ratio_low": "0.2",
39
+ "kl_coefficient": "0.001",
40
+ "loss_agg_mode": "seq-mean-token-mean",
41
+ "lr": "0.000001",
42
+ "lr_warmup_steps": "5",
43
+ "max_new_tokens": "1024",
44
+ "num_generations": "8",
45
+ "num_iterations_per_batch": "2",
46
+ "save_every_n_steps": "10",
47
+ "temperature": "1.0",
48
+ "test_every_n_steps": "5",
49
+ "test_num_generations": "1",
50
+ "test_top_p": "1",
51
+ "top_p": "1",
52
+ "num_steps": "10",
53
+ },
54
+ data=Data(
55
+ training_set=TrainingDataset(
56
+ local_files=[
57
+ "./data/mcj_rollout_test_dataset.jsonl",
58
+ ]
59
+ )
60
+ ),
61
+ custom_rl_pipeline=GRPOPipeline(
62
+ graders=[
63
+ PipelinePluginWrapper(
64
+ plugin=random_reward_fn, envs={"foo": "bar"}, weight=0.5
65
+ ),
66
+ ],
67
+ rollout=PipelinePluginWrapper(
68
+ plugin=demo_veadk_rollout, envs={"foo": "bar"}
69
+ ),
70
+ ),
71
+ )
72
+
73
+ mcj.submit()
74
+ print(f"Job submitted. view job at {mcj.url}")
@@ -0,0 +1,44 @@
1
+ name: sdk-job
2
+ customization_type: GRPO
3
+ model_reference:
4
+ foundation_model:
5
+ name: doubao-seed-1-6-flash
6
+ model_version: '250615'
7
+ hyperparameters:
8
+ batch_size: '128'
9
+ clip_ratio_high: '0.2'
10
+ clip_ratio_low: '0.2'
11
+ kl_coefficient: '0.001'
12
+ loss_agg_mode: seq-mean-token-mean
13
+ lr: '0.000001'
14
+ lr_warmup_steps: '5'
15
+ max_new_tokens: '1024'
16
+ num_generations: '8'
17
+ num_iterations_per_batch: '2'
18
+ save_every_n_steps: '10'
19
+ temperature: '1.0'
20
+ test_every_n_steps: '5'
21
+ test_num_generations: '1'
22
+ test_top_p: '1'
23
+ top_p: '1'
24
+ num_steps: '20'
25
+ custom_rl_pipeline:
26
+ graders:
27
+ - plugin:
28
+ name: random_reward
29
+ python_func: plugins.random_reward:random_reward_fn
30
+ envs:
31
+ foo: bar
32
+ weight: 0.5
33
+ rollout:
34
+ plugin:
35
+ name: demo_veadk_rollout
36
+ python_func: plugins.async_weather_rollout:demo_rollout
37
+ envs:
38
+ foo: bar
39
+
40
+ data:
41
+ training_set:
42
+ local_files:
43
+ - ./data/mcj_rollout_test_dataset.jsonl
44
+ save_model_limit: 1
@@ -0,0 +1,59 @@
1
+ # Copyright (c) 2025 Beijing Volcano Engine Technology Co., Ltd. and/or its affiliates.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ import random
16
+ from typing import List
17
+ from ark_sdk.resources.pipeline_plugin import group_grader
18
+ from ark_sdk.types.pipeline_plugin.pipeline_plugin import PluginStatus, PluginContext
19
+ from ark_sdk.types.pipeline_plugin.rollout import Trajectory, ChatCompletionSample
20
+ from ark_sdk.types.pipeline_plugin import (
21
+ Runtime,
22
+ PluginInstance,
23
+ GroupGraderResult,
24
+ )
25
+
26
+
27
+ @group_grader(
28
+ name="randaom_reward",
29
+ runtime=Runtime(
30
+ instance=PluginInstance.CPU1MEM2,
31
+ max_concurrency=100,
32
+ timeout=300,
33
+ ),
34
+ )
35
+ def random_reward_fn(
36
+ context: PluginContext,
37
+ sample: ChatCompletionSample,
38
+ trajectories: List[Trajectory],
39
+ ) -> GroupGraderResult:
40
+ """
41
+ 奖励函数:返回随机奖励
42
+
43
+ 参数:
44
+ - trajectories: 完整的对话历史
45
+ - sample: 样本数据,包含标准答案的字典
46
+
47
+ 返回:
48
+ - list[float]: 奖励分数列表,每个分数对应一个候选回复(1.0表示完全匹配,0.0表示不匹配)
49
+
50
+ 依赖:
51
+ - 数据集里的字典字段 extra 内需要携带 answer 字段。
52
+ """
53
+ rewards = [
54
+ t.extra["reward"] if (t.extra and "reward" in t.extra) else random.random()
55
+ for t in trajectories
56
+ ]
57
+ return GroupGraderResult(
58
+ rewards=rewards, status=PluginStatus.SUCCESS, error="", metrics={}
59
+ )