veadk-python 0.2.15__tar.gz → 0.2.17__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.

Potentially problematic release.


This version of veadk-python might be problematic. Click here for more details.

Files changed (220) hide show
  1. {veadk_python-0.2.15 → veadk_python-0.2.17}/PKG-INFO +1 -1
  2. {veadk_python-0.2.15 → veadk_python-0.2.17}/pyproject.toml +1 -1
  3. {veadk_python-0.2.15 → veadk_python-0.2.17}/tests/test_agent.py +1 -1
  4. {veadk_python-0.2.15 → veadk_python-0.2.17}/tests/test_tracing.py +4 -4
  5. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/a2a/remote_ve_agent.py +56 -1
  6. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/agent.py +118 -26
  7. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/agents/loop_agent.py +22 -9
  8. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/agents/parallel_agent.py +21 -9
  9. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/agents/sequential_agent.py +18 -9
  10. veadk_python-0.2.17/veadk/auth/veauth/apmplus_veauth.py +58 -0
  11. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/auth/veauth/ark_veauth.py +3 -1
  12. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/auth/veauth/utils.py +12 -0
  13. veadk_python-0.2.17/veadk/auth/veauth/viking_mem0_veauth.py +91 -0
  14. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/cli/cli.py +5 -1
  15. veadk_python-0.2.17/veadk/cli/cli_create.py +163 -0
  16. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/cli/cli_deploy.py +36 -1
  17. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/cli/cli_eval.py +55 -0
  18. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/cli/cli_init.py +44 -3
  19. veadk_python-0.2.17/veadk/cli/cli_kb.py +110 -0
  20. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/cli/cli_pipeline.py +66 -1
  21. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/cli/cli_prompt.py +16 -1
  22. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/cli/cli_uploadevalset.py +15 -1
  23. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/cli/cli_web.py +35 -4
  24. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/cloud/cloud_agent_engine.py +142 -25
  25. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/cloud/cloud_app.py +219 -12
  26. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/config.py +12 -1
  27. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/configs/database_configs.py +4 -0
  28. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/configs/model_configs.py +5 -1
  29. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/configs/tracing_configs.py +2 -2
  30. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/evaluation/adk_evaluator/adk_evaluator.py +77 -17
  31. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/evaluation/base_evaluator.py +219 -3
  32. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +116 -1
  33. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/evaluation/eval_set_file_loader.py +20 -0
  34. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/evaluation/eval_set_recorder.py +54 -0
  35. veadk_python-0.2.17/veadk/evaluation/types.py +65 -0
  36. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/evaluation/utils/prometheus.py +61 -0
  37. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/knowledgebase/backends/base_backend.py +14 -1
  38. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/knowledgebase/backends/in_memory_backend.py +10 -1
  39. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/knowledgebase/backends/opensearch_backend.py +26 -0
  40. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/knowledgebase/backends/redis_backend.py +29 -2
  41. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/knowledgebase/backends/vikingdb_knowledge_backend.py +43 -5
  42. veadk_python-0.2.17/veadk/knowledgebase/knowledgebase.py +307 -0
  43. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/long_term_memory.py +148 -4
  44. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/long_term_memory_backends/mem0_backend.py +11 -0
  45. veadk_python-0.2.17/veadk/memory/short_term_memory.py +246 -0
  46. veadk_python-0.2.17/veadk/runner.py +813 -0
  47. veadk_python-0.2.17/veadk/tools/builtin_tools/llm_shield.py +381 -0
  48. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/mcp_router.py +9 -2
  49. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/run_code.py +30 -6
  50. veadk_python-0.2.17/veadk/tools/builtin_tools/web_search.py +83 -0
  51. veadk_python-0.2.17/veadk/tracing/base_tracer.py +58 -0
  52. veadk_python-0.2.17/veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +180 -0
  53. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +260 -0
  54. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +69 -0
  55. veadk_python-0.2.17/veadk/tracing/telemetry/attributes/extractors/types.py +164 -0
  56. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tracing/telemetry/exporters/apmplus_exporter.py +157 -0
  57. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tracing/telemetry/exporters/base_exporter.py +8 -0
  58. veadk_python-0.2.17/veadk/tracing/telemetry/exporters/cozeloop_exporter.py +129 -0
  59. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tracing/telemetry/exporters/inmemory_exporter.py +118 -1
  60. veadk_python-0.2.17/veadk/tracing/telemetry/exporters/tls_exporter.py +139 -0
  61. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tracing/telemetry/opentelemetry_tracer.py +117 -4
  62. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tracing/telemetry/telemetry.py +118 -2
  63. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/utils/misc.py +7 -0
  64. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/version.py +1 -1
  65. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk_python.egg-info/PKG-INFO +1 -1
  66. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk_python.egg-info/SOURCES.txt +2 -0
  67. veadk_python-0.2.15/veadk/auth/veauth/apmplus_veauth.py +0 -65
  68. veadk_python-0.2.15/veadk/cli/cli_create.py +0 -122
  69. veadk_python-0.2.15/veadk/cli/cli_kb.py +0 -75
  70. veadk_python-0.2.15/veadk/evaluation/types.py +0 -33
  71. veadk_python-0.2.15/veadk/knowledgebase/knowledgebase.py +0 -146
  72. veadk_python-0.2.15/veadk/memory/short_term_memory.py +0 -132
  73. veadk_python-0.2.15/veadk/runner.py +0 -402
  74. veadk_python-0.2.15/veadk/tools/builtin_tools/web_search.py +0 -199
  75. veadk_python-0.2.15/veadk/tracing/base_tracer.py +0 -31
  76. veadk_python-0.2.15/veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +0 -76
  77. veadk_python-0.2.15/veadk/tracing/telemetry/attributes/extractors/types.py +0 -86
  78. veadk_python-0.2.15/veadk/tracing/telemetry/exporters/cozeloop_exporter.py +0 -70
  79. veadk_python-0.2.15/veadk/tracing/telemetry/exporters/tls_exporter.py +0 -73
  80. {veadk_python-0.2.15 → veadk_python-0.2.17}/LICENSE +0 -0
  81. {veadk_python-0.2.15 → veadk_python-0.2.17}/README.md +0 -0
  82. {veadk_python-0.2.15 → veadk_python-0.2.17}/setup.cfg +0 -0
  83. {veadk_python-0.2.15 → veadk_python-0.2.17}/tests/test_cloud.py +0 -0
  84. {veadk_python-0.2.15 → veadk_python-0.2.17}/tests/test_evaluator.py +0 -0
  85. {veadk_python-0.2.15 → veadk_python-0.2.17}/tests/test_knowledgebase.py +0 -0
  86. {veadk_python-0.2.15 → veadk_python-0.2.17}/tests/test_long_term_memory.py +0 -0
  87. {veadk_python-0.2.15 → veadk_python-0.2.17}/tests/test_multiple_agents.py +0 -0
  88. {veadk_python-0.2.15 → veadk_python-0.2.17}/tests/test_runner.py +0 -0
  89. {veadk_python-0.2.15 → veadk_python-0.2.17}/tests/test_runtime_data_collecting.py +0 -0
  90. {veadk_python-0.2.15 → veadk_python-0.2.17}/tests/test_short_term_memory.py +0 -0
  91. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/__init__.py +0 -0
  92. {veadk_python-0.2.15/veadk/utils → veadk_python-0.2.17/veadk/a2a}/__init__.py +0 -0
  93. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/a2a/agent_card.py +0 -0
  94. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/a2a/ve_a2a_server.py +0 -0
  95. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/a2a/ve_agent_executor.py +0 -0
  96. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/a2a/ve_task_store.py +0 -0
  97. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/agent_builder.py +0 -0
  98. {veadk_python-0.2.15/veadk/tracing/telemetry/exporters → veadk_python-0.2.17/veadk/auth}/__init__.py +0 -0
  99. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/auth/base_auth.py +0 -0
  100. {veadk_python-0.2.15/veadk/tracing/telemetry → veadk_python-0.2.17/veadk/auth/veauth}/__init__.py +0 -0
  101. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/auth/veauth/base_veauth.py +0 -0
  102. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/auth/veauth/cozeloop_veauth.py +0 -0
  103. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/auth/veauth/opensearch_veauth.py +0 -0
  104. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/auth/veauth/postgresql_veauth.py +0 -0
  105. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/auth/veauth/prompt_pilot_veauth.py +0 -0
  106. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/auth/veauth/vesearch_veauth.py +0 -0
  107. {veadk_python-0.2.15/veadk/tracing → veadk_python-0.2.17/veadk/cli}/__init__.py +0 -0
  108. {veadk_python-0.2.15/veadk/tools/sandbox → veadk_python-0.2.17/veadk/cloud}/__init__.py +0 -0
  109. {veadk_python-0.2.15/veadk/tools/builtin_tools → veadk_python-0.2.17/veadk/configs}/__init__.py +0 -0
  110. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/configs/tool_configs.py +0 -0
  111. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/consts.py +0 -0
  112. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/evaluation/__init__.py +0 -0
  113. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/evaluation/adk_evaluator/__init__.py +0 -0
  114. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/evaluation/deepeval_evaluator/__init__.py +0 -0
  115. {veadk_python-0.2.15/veadk/tools → veadk_python-0.2.17/veadk/integrations}/__init__.py +0 -0
  116. {veadk_python-0.2.15/veadk/prompts → veadk_python-0.2.17/veadk/integrations/ve_apig}/__init__.py +0 -0
  117. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_apig/ve_apig.py +0 -0
  118. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_apig/ve_apig_utils.py +0 -0
  119. {veadk_python-0.2.15/veadk/memory/short_term_memory_backends → veadk_python-0.2.17/veadk/integrations/ve_code_pipeline}/__init__.py +0 -0
  120. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_code_pipeline/ve_code_pipeline.py +0 -0
  121. {veadk_python-0.2.15/veadk/memory/long_term_memory_backends → veadk_python-0.2.17/veadk/integrations/ve_cozeloop}/__init__.py +0 -0
  122. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_cozeloop/ve_cozeloop.py +0 -0
  123. {veadk_python-0.2.15/veadk/knowledgebase/backends → veadk_python-0.2.17/veadk/integrations/ve_cr}/__init__.py +0 -0
  124. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_cr/ve_cr.py +0 -0
  125. {veadk_python-0.2.15/veadk/integrations/ve_viking_db_memory → veadk_python-0.2.17/veadk/integrations/ve_faas}/__init__.py +0 -0
  126. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/template/cookiecutter.json +0 -0
  127. {veadk_python-0.2.15/veadk/integrations/ve_tls → veadk_python-0.2.17/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}}/__init__.py +0 -0
  128. {veadk_python-0.2.15/veadk/integrations/ve_faas/web_template → veadk_python-0.2.17/veadk/integrations/ve_faas/template}/{{cookiecutter.local_dir_name}}/clean.py +0 -0
  129. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
  130. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
  131. {veadk_python-0.2.15/veadk/integrations/ve_prompt_pilot → veadk_python-0.2.17/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src}/__init__.py +0 -0
  132. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py +0 -0
  133. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
  134. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
  135. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
  136. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/__init__.py +0 -0
  137. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/agent.py +0 -0
  138. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/ve_faas.py +0 -0
  139. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/ve_faas_utils.py +0 -0
  140. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/cookiecutter.json +0 -0
  141. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/__init__.py +0 -0
  142. {veadk_python-0.2.15/veadk/integrations/ve_faas/template → veadk_python-0.2.17/veadk/integrations/ve_faas/web_template}/{{cookiecutter.local_dir_name}}/clean.py +0 -0
  143. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
  144. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
  145. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile +0 -0
  146. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
  147. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/init_db.py +0 -0
  148. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/models.py +0 -0
  149. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
  150. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
  151. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/css/style.css +0 -0
  152. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/js/admin.js +0 -0
  153. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/dashboard.html +0 -0
  154. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/edit_post.html +0 -0
  155. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/login.html +0 -0
  156. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/posts.html +0 -0
  157. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/base.html +0 -0
  158. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/index.html +0 -0
  159. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/post.html +0 -0
  160. {veadk_python-0.2.15/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src → veadk_python-0.2.17/veadk/integrations/ve_prompt_pilot}/__init__.py +0 -0
  161. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py +0 -0
  162. {veadk_python-0.2.15/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}} → veadk_python-0.2.17/veadk/integrations/ve_tls}/__init__.py +0 -0
  163. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_tls/utils.py +0 -0
  164. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_tls/ve_tls.py +0 -0
  165. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_tos/ve_tos.py +0 -0
  166. {veadk_python-0.2.15/veadk/integrations/ve_faas → veadk_python-0.2.17/veadk/integrations/ve_viking_db_memory}/__init__.py +0 -0
  167. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py +0 -0
  168. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/knowledgebase/__init__.py +0 -0
  169. {veadk_python-0.2.15/veadk/integrations/ve_cr → veadk_python-0.2.17/veadk/knowledgebase/backends}/__init__.py +0 -0
  170. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/knowledgebase/backends/utils.py +0 -0
  171. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/knowledgebase/entry.py +0 -0
  172. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/__init__.py +0 -0
  173. {veadk_python-0.2.15/veadk/integrations/ve_cozeloop → veadk_python-0.2.17/veadk/memory/long_term_memory_backends}/__init__.py +0 -0
  174. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/long_term_memory_backends/base_backend.py +0 -0
  175. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/long_term_memory_backends/in_memory_backend.py +0 -0
  176. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/long_term_memory_backends/opensearch_backend.py +0 -0
  177. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/long_term_memory_backends/redis_backend.py +0 -0
  178. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/long_term_memory_backends/vikingdb_memory_backend.py +0 -0
  179. {veadk_python-0.2.15/veadk/integrations/ve_code_pipeline → veadk_python-0.2.17/veadk/memory/short_term_memory_backends}/__init__.py +0 -0
  180. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/short_term_memory_backends/base_backend.py +0 -0
  181. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/short_term_memory_backends/mysql_backend.py +0 -0
  182. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/short_term_memory_backends/postgresql_backend.py +0 -0
  183. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/short_term_memory_backends/sqlite_backend.py +0 -0
  184. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/memory/short_term_memory_processor.py +0 -0
  185. {veadk_python-0.2.15/veadk/integrations/ve_apig → veadk_python-0.2.17/veadk/prompts}/__init__.py +0 -0
  186. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/prompts/agent_default_prompt.py +0 -0
  187. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/prompts/prompt_evaluator.py +0 -0
  188. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/prompts/prompt_memory_processor.py +0 -0
  189. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/prompts/prompt_optimization.py +0 -0
  190. {veadk_python-0.2.15/veadk/integrations → veadk_python-0.2.17/veadk/tools}/__init__.py +0 -0
  191. {veadk_python-0.2.15/veadk/configs → veadk_python-0.2.17/veadk/tools/builtin_tools}/__init__.py +0 -0
  192. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/generate_image.py +0 -0
  193. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/image_edit.py +0 -0
  194. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/image_generate.py +0 -0
  195. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/lark.py +0 -0
  196. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/las.py +0 -0
  197. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/load_knowledgebase.py +0 -0
  198. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/vesearch.py +0 -0
  199. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/video_generate.py +0 -0
  200. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/builtin_tools/web_scraper.py +0 -0
  201. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/demo_tools.py +0 -0
  202. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/load_knowledgebase_tool.py +0 -0
  203. {veadk_python-0.2.15/veadk/cloud → veadk_python-0.2.17/veadk/tools/sandbox}/__init__.py +0 -0
  204. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/sandbox/browser_sandbox.py +0 -0
  205. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/sandbox/code_sandbox.py +0 -0
  206. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tools/sandbox/computer_sandbox.py +0 -0
  207. {veadk_python-0.2.15/veadk/cli → veadk_python-0.2.17/veadk/tracing}/__init__.py +0 -0
  208. {veadk_python-0.2.15/veadk/auth/veauth → veadk_python-0.2.17/veadk/tracing/telemetry}/__init__.py +0 -0
  209. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/tracing/telemetry/attributes/attributes.py +0 -0
  210. {veadk_python-0.2.15/veadk/auth → veadk_python-0.2.17/veadk/tracing/telemetry/exporters}/__init__.py +0 -0
  211. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/types.py +0 -0
  212. {veadk_python-0.2.15/veadk/a2a → veadk_python-0.2.17/veadk/utils}/__init__.py +0 -0
  213. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/utils/logger.py +0 -0
  214. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/utils/mcp_utils.py +0 -0
  215. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/utils/patches.py +0 -0
  216. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk/utils/volcengine_sign.py +0 -0
  217. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk_python.egg-info/dependency_links.txt +0 -0
  218. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk_python.egg-info/entry_points.txt +0 -0
  219. {veadk_python-0.2.15 → veadk_python-0.2.17}/veadk_python.egg-info/requires.txt +0 -0
  220. {veadk_python-0.2.15 → veadk_python-0.2.17}/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.15
3
+ Version: 0.2.17
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "veadk-python"
3
- version = "0.2.15"
3
+ version = "0.2.17"
4
4
  description = "Volcengine agent development kit, integrations with Volcengine cloud services."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -88,7 +88,7 @@ def test_agent_default_values():
88
88
  assert agent.sub_agents == []
89
89
  assert agent.knowledgebase is None
90
90
  assert agent.long_term_memory is None
91
- assert agent.tracers == []
91
+ # assert agent.tracers == []
92
92
 
93
93
 
94
94
  @patch.dict("os.environ", {"MODEL_AGENT_API_KEY": "mock_api_key"})
@@ -82,7 +82,7 @@ async def test_tracing():
82
82
  exporters = init_exporters()
83
83
  tracer = OpentelemetryTracer(exporters=exporters)
84
84
 
85
- assert len(tracer.exporters) == 3
85
+ assert len(tracer.exporters) == 4 # with extra 1 built-in exporters
86
86
 
87
87
  # TODO: Ensure the tracing provider is set correctly after loading SDK
88
88
 
@@ -98,7 +98,7 @@ async def test_tracing_with_global_provider():
98
98
  #
99
99
  tracer = OpentelemetryTracer(exporters=exporters)
100
100
 
101
- assert len(tracer.exporters) == 3 # with extra 1 built-in exporters
101
+ assert len(tracer.exporters) == 4 # with extra 1 built-in exporters
102
102
 
103
103
 
104
104
  @pytest.mark.asyncio
@@ -112,5 +112,5 @@ async def test_tracing_with_apmplus_global_provider():
112
112
  # init OpentelemetryTracer
113
113
  tracer = OpentelemetryTracer(exporters=exporters)
114
114
 
115
- # apmplus exporter won't init again
116
- assert len(tracer.exporters) == 2 # with extra 1 built-in exporters
115
+ # apmplus exporter won't init again, so there are cozeloop, tls, in_memory exporter
116
+ assert len(tracer.exporters) == 3 # with extra 1 built-in exporters
@@ -34,7 +34,62 @@ def _convert_agent_card_dict_to_obj(agent_card_dict: dict) -> AgentCard:
34
34
 
35
35
 
36
36
  class RemoteVeAgent(RemoteA2aAgent):
37
- """Connect to remote agent on VeFaaS platform."""
37
+ """Connect to a remote agent on the VeFaaS platform.
38
+
39
+ This class provides an interface to remotely connect with an agent deployed on the VeFaaS platform. It automatically fetches the agent card (metadata) and configures an HTTP client for secure communication. Authentication can be handled either via a bearer token in the HTTP header or via a query string parameter.
40
+
41
+ The class extends `RemoteA2aAgent` to provide compatibility with the A2A (Agent-to-Agent) communication layer.
42
+
43
+ This constructor connects to a remote VeFaaS agent endpoint, retrieves its metadata (`agent_card`), and sets up an asynchronous HTTP client (`httpx.AsyncClient`) for subsequent communication. Depending on the provided authentication parameters, it supports three connection modes:
44
+ - **No authentication:** Directly fetches the agent card.
45
+ - **Header authentication:** Sends a bearer token in the `Authorization` header.
46
+ - **Query string authentication:** Appends the token to the URL query.
47
+
48
+ Attributes:
49
+ name (str):
50
+ A unique name identifying this remote agent instance.
51
+ url (str):
52
+ The base URL of the remote agent on the VeFaaS platform.
53
+ auth_token (str | None):
54
+ Optional authentication token used for secure access.
55
+ If not provided, the agent will be accessed without authentication.
56
+ auth_method (Literal["header", "querystring"] | None):
57
+ The method of attaching the authentication token.
58
+ - `"header"`: Token is passed via HTTP `Authorization` header.
59
+ - `"querystring"`: Token is passed as a query parameter.
60
+ - `None`: No authentication used.
61
+
62
+ Raises:
63
+ ValueError:
64
+ If an unsupported `auth_method` is provided when `auth_token` is set.
65
+ requests.RequestException:
66
+ If fetching the agent card from the remote URL fails.
67
+
68
+ Examples:
69
+ ```python
70
+ # Example 1: No authentication
71
+ agent = RemoteVeAgent(
72
+ name="public_agent",
73
+ url="https://vefaas.example.com/agents/public"
74
+ )
75
+
76
+ # Example 2: Using Bearer token in header
77
+ agent = RemoteVeAgent(
78
+ name="secured_agent",
79
+ url="https://vefaas.example.com/agents/secure",
80
+ auth_token="my_secret_token",
81
+ auth_method="header"
82
+ )
83
+
84
+ # Example 3: Using token in query string
85
+ agent = RemoteVeAgent(
86
+ name="query_agent",
87
+ url="https://vefaas.example.com/agents/query",
88
+ auth_token="my_secret_token",
89
+ auth_method="querystring"
90
+ )
91
+ ```
92
+ """
38
93
 
39
94
  def __init__(
40
95
  self,
@@ -14,6 +14,7 @@
14
14
 
15
15
  from __future__ import annotations
16
16
 
17
+ import os
17
18
  from typing import Optional, Union
18
19
 
19
20
  from google.adk.agents import LlmAgent, RunConfig
@@ -46,55 +47,108 @@ logger = get_logger(__name__)
46
47
 
47
48
 
48
49
  class Agent(LlmAgent):
49
- """LLM-based Agent with Volcengine capabilities."""
50
+ """LLM-based Agent with Volcengine capabilities.
51
+
52
+ This class represents an intelligent agent powered by LLMs (Large Language Models),
53
+ integrated with Volcengine's AI framework. It supports memory modules, sub-agents,
54
+ tracers, knowledge bases, and other advanced features for A2A (Agent-to-Agent)
55
+ or user-facing scenarios.
56
+
57
+ Attributes:
58
+ name (str): The name of the agent.
59
+ description (str): A description of the agent, useful in A2A scenarios.
60
+ instruction (Union[str, InstructionProvider]): The instruction or instruction provider.
61
+ model_name (str): Name of the model used by the agent.
62
+ model_provider (str): Provider of the model (e.g., openai).
63
+ model_api_base (str): The base URL of the model API.
64
+ model_api_key (str): The API key for accessing the model.
65
+ model_extra_config (dict): Extra configurations to include in model requests.
66
+ tools (list[ToolUnion]): Tools available to the agent.
67
+ sub_agents (list[BaseAgent]): Sub-agents managed by this agent.
68
+ knowledgebase (Optional[KnowledgeBase]): Knowledge base attached to the agent.
69
+ short_term_memory (Optional[ShortTermMemory]): Session-based memory for temporary context.
70
+ long_term_memory (Optional[LongTermMemory]): Cross-session memory for persistent user context.
71
+ tracers (list[BaseTracer]): List of tracers used for telemetry and monitoring.
72
+
73
+ Notes:
74
+ Before creating your agent, you should get the API Key for your model.
75
+
76
+ Examples:
77
+ ### Simple agent
78
+
79
+ Create a simplest agent without any extra settings. All agent attributes are come from environment variables and default values. Like:
80
+
81
+ ```python
82
+ import asyncio
83
+
84
+ from veadk import Agent, Runner
85
+
86
+ root_agent = Agent()
87
+
88
+ runner = Runner(agent=root_agent)
89
+
90
+ response = asyncio.run(runner.run("hello"))
91
+ print(response)
92
+ ```
93
+
94
+ You can set some agent metadata attributes by the following code:
95
+
96
+ ```python
97
+ from veadk import Agent
98
+
99
+ from veadk import Agent, Runner
100
+
101
+ root_agent = Agent(
102
+ name="meeting_assistant",
103
+ description="An assistant that helps user to make meetings.",
104
+ # system prompt
105
+ instruction="First learn about user's meeting time, location, and other key informations, and give out a meeting plan.",
106
+ )
107
+ ```
108
+
109
+ Or, once you want to use your local-serving model or models from other provider, you can specify some model-related configurations in initiation arguments:
110
+
111
+ ```python
112
+ agent = Agent(model_name="", model_api_key="", model_api_base="")
113
+ ```
114
+
115
+ Besides, you can specify some extra options by ARK requirements, such as:
116
+
117
+ ```python
118
+ # disable thinking
119
+ model_extra_config = {}
120
+ ```
121
+
122
+ In some systems, mulitple-agent based design is necessary, you can implement a multiple-agent system by `sub_agent` argument:
123
+
124
+ ```python
125
+ from veadk import Agent
126
+ ```
127
+
128
+ """
50
129
 
51
130
  model_config = ConfigDict(arbitrary_types_allowed=True, extra="allow")
52
- """The model config"""
53
131
 
54
132
  name: str = DEFAULT_AGENT_NAME
55
- """The name of the agent."""
56
-
57
133
  description: str = DEFAULT_DESCRIPTION
58
- """The description of the agent. This will be helpful in A2A scenario."""
59
-
60
134
  instruction: Union[str, InstructionProvider] = DEFAULT_INSTRUCTION
61
- """The instruction for the agent."""
62
135
 
63
136
  model_name: str = Field(default_factory=lambda: settings.model.name)
64
- """The name of the model for agent running."""
65
-
66
137
  model_provider: str = Field(default_factory=lambda: settings.model.provider)
67
- """The provider of the model for agent running."""
68
-
69
138
  model_api_base: str = Field(default_factory=lambda: settings.model.api_base)
70
- """The api base of the model for agent running."""
71
-
72
139
  model_api_key: str = Field(default_factory=lambda: settings.model.api_key)
73
- """The api key of the model for agent running."""
74
-
75
140
  model_extra_config: dict = Field(default_factory=dict)
76
- """The extra config to include in the model requests."""
77
141
 
78
142
  tools: list[ToolUnion] = []
79
- """The tools provided to agent."""
80
143
 
81
144
  sub_agents: list[BaseAgent] = Field(default_factory=list, exclude=True)
82
- """The sub agents provided to agent."""
83
145
 
84
146
  knowledgebase: Optional[KnowledgeBase] = None
85
- """The knowledgebase provided to agent."""
86
147
 
87
148
  short_term_memory: Optional[ShortTermMemory] = None
88
- """The short term memory provided to agent."""
89
-
90
149
  long_term_memory: Optional[LongTermMemory] = None
91
- """The long term memory provided to agent.
92
-
93
- In VeADK, the `long_term_memory` refers to cross-session memory under the same user.
94
- """
95
150
 
96
151
  tracers: list[BaseTracer] = []
97
- """The tracers provided to agent."""
98
152
 
99
153
  def model_post_init(self, __context: Any) -> None:
100
154
  super().model_post_init(None) # for sub_agents init
@@ -132,6 +186,8 @@ class Agent(LlmAgent):
132
186
  "You are trying to use your own LiteLLM client, some default request headers may be missing."
133
187
  )
134
188
 
189
+ self._prepare_tracers()
190
+
135
191
  if self.knowledgebase:
136
192
  from veadk.tools.builtin_tools.load_knowledgebase import (
137
193
  LoadKnowledgebaseTool,
@@ -194,6 +250,42 @@ class Agent(LlmAgent):
194
250
 
195
251
  return final_output
196
252
 
253
+ def _prepare_tracers(self):
254
+ enable_apmplus_tracer = os.getenv("ENABLE_APMPLUS", "false").lower() == "true"
255
+ enable_cozeloop_tracer = os.getenv("ENABLE_COZELOOP", "false").lower() == "true"
256
+ enable_tls_tracer = os.getenv("ENABLE_TLS", "false").lower() == "true"
257
+
258
+ if not self.tracers:
259
+ from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer
260
+
261
+ self.tracers.append(OpentelemetryTracer())
262
+
263
+ exporters = self.tracers[0].exporters # type: ignore
264
+
265
+ from veadk.tracing.telemetry.exporters.apmplus_exporter import APMPlusExporter
266
+ from veadk.tracing.telemetry.exporters.cozeloop_exporter import CozeloopExporter
267
+ from veadk.tracing.telemetry.exporters.tls_exporter import TLSExporter
268
+
269
+ if enable_apmplus_tracer and not any(
270
+ isinstance(e, APMPlusExporter) for e in exporters
271
+ ):
272
+ self.tracers[0].exporters.append(APMPlusExporter()) # type: ignore
273
+ logger.info("Enable APMPlus exporter by env.")
274
+
275
+ if enable_cozeloop_tracer and not any(
276
+ isinstance(e, CozeloopExporter) for e in exporters
277
+ ):
278
+ self.tracers[0].exporters.append(CozeloopExporter()) # type: ignore
279
+ logger.info("Enable CozeLoop exporter by env.")
280
+
281
+ if enable_tls_tracer and not any(isinstance(e, TLSExporter) for e in exporters):
282
+ self.tracers[0].exporters.append(TLSExporter()) # type: ignore
283
+ logger.info("Enable TLS exporter by env.")
284
+
285
+ logger.debug(
286
+ f"Opentelemetry Tracer init {len(self.tracers[0].exporters)} exporters" # type: ignore
287
+ )
288
+
197
289
  async def run(
198
290
  self,
199
291
  prompt: str | list[str],
@@ -29,25 +29,38 @@ logger = get_logger(__name__)
29
29
 
30
30
 
31
31
  class LoopAgent(GoogleADKLoopAgent):
32
- """Loop Agent with Volcengine capabilities."""
32
+ """Loop Agent with several sub agents.
33
+
34
+ This agent is capable of looping through and executing all sub-agents sequentially
35
+ or based on specific conditions. It is designed to operate in environments where
36
+ multiple agents need to work together in a looped execution flow, such as handling
37
+ complex, multi-step tasks or workflows. The agent integrates Volcengine’s AI
38
+ capabilities and supports a variety of tools and tracers for enhanced functionality
39
+ and performance monitoring.
40
+
41
+ Attributes:
42
+ model_config (ConfigDict): Configuration dictionary for the model.
43
+ name (str): The name of the agent, default is "veLoopAgent".
44
+ description (str): A description of the agent, helpful in A2A scenarios.
45
+ instruction (str): Instructions or principles for function calling and agent execution.
46
+ sub_agents (list[BaseAgent]): A list of sub-agents managed by the loop agent. Each sub-agent
47
+ is executed in a looped sequence based on the agent's logic.
48
+ tracers (list[BaseTracer]): A list of tracers used for monitoring the agent's performance
49
+ and behavior during execution.
50
+
51
+ Examples:
52
+
53
+ """
33
54
 
34
55
  model_config = ConfigDict(arbitrary_types_allowed=True, extra="allow")
35
- """The model config"""
36
56
 
37
57
  name: str = "veLoopAgent"
38
- """The name of the agent."""
39
-
40
58
  description: str = DEFAULT_DESCRIPTION
41
- """The description of the agent. This will be helpful in A2A scenario."""
42
-
43
59
  instruction: str = DEFAULT_INSTRUCTION
44
- """The instruction for the agent, such as principles of function calling."""
45
60
 
46
61
  sub_agents: list[BaseAgent] = Field(default_factory=list, exclude=True)
47
- """The sub agents provided to agent."""
48
62
 
49
63
  tracers: list[BaseTracer] = []
50
- """The tracers provided to agent."""
51
64
 
52
65
  def model_post_init(self, __context: Any) -> None:
53
66
  super().model_post_init(None) # for sub_agents init
@@ -29,25 +29,37 @@ logger = get_logger(__name__)
29
29
 
30
30
 
31
31
  class ParallelAgent(GoogleADKParallelAgent):
32
- """LLM-based Agent with Volcengine capabilities."""
32
+ """LLM-based Agent that can execute sub-agents in parallel.
33
+
34
+ This agent is capable of executing multiple sub-agents concurrently, making it suitable
35
+ for scenarios that require parallel execution of multiple tasks or operations. By leveraging
36
+ parallelism, the agent can handle more complex workflows and improve efficiency by performing
37
+ independent tasks simultaneously. This design is ideal for scenarios where tasks are independent
38
+ and can benefit from reduced execution time.
39
+
40
+ Attributes:
41
+ model_config (ConfigDict): Configuration dictionary for the model.
42
+ name (str): The name of the agent, default is "veParallelAgent".
43
+ description (str): A description of the agent, useful in A2A scenarios.
44
+ instruction (str): Instructions or principles for function calling and agent execution.
45
+ sub_agents (list[BaseAgent]): A list of sub-agents managed by the parallel agent.
46
+ Each sub-agent is executed concurrently.
47
+ tracers (list[BaseTracer]): A list of tracers used for monitoring the agent's performance
48
+ and behavior during parallel execution.
49
+
50
+ Examples:
51
+
52
+ """
33
53
 
34
54
  model_config = ConfigDict(arbitrary_types_allowed=True, extra="allow")
35
- """The model config"""
36
55
 
37
56
  name: str = "veParallelAgent"
38
- """The name of the agent."""
39
-
40
57
  description: str = DEFAULT_DESCRIPTION
41
- """The description of the agent. This will be helpful in A2A scenario."""
42
-
43
58
  instruction: str = DEFAULT_INSTRUCTION
44
- """The instruction for the agent, such as principles of function calling."""
45
59
 
46
60
  sub_agents: list[BaseAgent] = Field(default_factory=list, exclude=True)
47
- """The sub agents provided to agent."""
48
61
 
49
62
  tracers: list[BaseTracer] = []
50
- """The tracers provided to agent."""
51
63
 
52
64
  def model_post_init(self, __context: Any) -> None:
53
65
  super().model_post_init(None) # for sub_agents init
@@ -29,25 +29,34 @@ logger = get_logger(__name__)
29
29
 
30
30
 
31
31
  class SequentialAgent(GoogleADKSequentialAgent):
32
- """Sequential Agent with Volcengine capabilities."""
32
+ """Sequential Agent that executes sub-agents sequentially.
33
+
34
+ This agent is designed to execute multiple sub-agents in a predefined sequential order.
35
+ It ensures that each sub-agent is executed one after the other, making it suitable for
36
+ workflows where the output of one sub-agent is needed as input for the next. The agent
37
+ is well-suited for tasks that require a linear progression of steps or operations, ensuring
38
+ that the execution flow is maintained.
39
+
40
+ Attributes:
41
+ model_config (ConfigDict): Configuration dictionary for the model.
42
+ name (str): The name of the agent, default is "veSequentialAgent".
43
+ description (str): A description of the agent, useful in A2A scenarios.
44
+ instruction (str): Instructions or principles for function calling and agent execution.
45
+ sub_agents (list[BaseAgent]): A list of sub-agents managed by the sequential agent.
46
+ Each sub-agent is executed in the order they are listed.
47
+ tracers (list[BaseTracer]): A list of tracers used for monitoring the agent's performance
48
+ and behavior during sequential execution.
49
+ """
33
50
 
34
51
  model_config = ConfigDict(arbitrary_types_allowed=True, extra="allow")
35
- """The model config"""
36
52
 
37
53
  name: str = "veSequentialAgent"
38
- """The name of the agent."""
39
-
40
54
  description: str = DEFAULT_DESCRIPTION
41
- """The description of the agent. This will be helpful in A2A scenario."""
42
-
43
55
  instruction: str = DEFAULT_INSTRUCTION
44
- """The instruction for the agent, such as principles of function calling."""
45
56
 
46
57
  sub_agents: list[BaseAgent] = Field(default_factory=list, exclude=True)
47
- """The sub agents provided to agent."""
48
58
 
49
59
  tracers: list[BaseTracer] = []
50
- """The tracers provided to agent."""
51
60
 
52
61
  def model_post_init(self, __context: Any) -> None:
53
62
  super().model_post_init(None) # for sub_agents init
@@ -0,0 +1,58 @@
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 os
16
+
17
+ from veadk.auth.veauth.utils import get_credential_from_vefaas_iam
18
+ from veadk.utils.logger import get_logger
19
+ from veadk.utils.volcengine_sign import ve_request
20
+
21
+ logger = get_logger(__name__)
22
+
23
+
24
+ def get_apmplus_token(region: str = "cn-beijing") -> str:
25
+ logger.info("Fetching APMPlus token...")
26
+
27
+ access_key = os.getenv("VOLCENGINE_ACCESS_KEY")
28
+ secret_key = os.getenv("VOLCENGINE_SECRET_KEY")
29
+ session_token = ""
30
+
31
+ if not (access_key and secret_key):
32
+ # try to get from vefaas iam
33
+ cred = get_credential_from_vefaas_iam()
34
+ access_key = cred.access_key_id
35
+ secret_key = cred.secret_access_key
36
+ session_token = cred.session_token
37
+
38
+ res = ve_request(
39
+ request_body={},
40
+ header={
41
+ "X-Security-Token": session_token,
42
+ # APMPlus frontend required
43
+ "X-Apmplus-Region": region.replace("-", "_"),
44
+ },
45
+ action="GetAppKey",
46
+ ak=access_key,
47
+ sk=secret_key,
48
+ service="apmplus_server",
49
+ version="2024-07-30",
50
+ region=region,
51
+ host="open.volcengineapi.com",
52
+ )
53
+ try:
54
+ api_key = res["data"]["app_key"]
55
+ logger.info("Successfully fetching APMPlus API Key.")
56
+ return api_key
57
+ except KeyError:
58
+ raise ValueError(f"Failed to get APMPlus token: {res}")
@@ -64,6 +64,8 @@ def get_ark_token(region: str = "cn-beijing") -> str:
64
64
  host="open.volcengineapi.com",
65
65
  )
66
66
  try:
67
- return res["Result"]["ApiKey"]
67
+ api_key = res["Result"]["ApiKey"]
68
+ logger.info("Successfully fetching ARK API Key.")
69
+ return api_key
68
70
  except KeyError:
69
71
  raise ValueError(f"Failed to get ARK api key: {res}")
@@ -50,8 +50,20 @@ def get_credential_from_vefaas_iam() -> VeIAMCredential:
50
50
  access_key = cred_dict["access_key_id"]
51
51
  secret_key = cred_dict["secret_access_key"]
52
52
  session_token = cred_dict["session_token"]
53
+
54
+ logger.info("Get credential from IAM file successfully.")
55
+
53
56
  return VeIAMCredential(
54
57
  access_key_id=access_key,
55
58
  secret_access_key=secret_key,
56
59
  session_token=session_token,
57
60
  )
61
+
62
+
63
+ def refresh_ak_sk(access_key: str, secret_key: str) -> VeIAMCredential:
64
+ if access_key and secret_key:
65
+ return VeIAMCredential(
66
+ access_key_id=access_key, secret_access_key=secret_key, session_token=""
67
+ )
68
+
69
+ return get_credential_from_vefaas_iam()
@@ -0,0 +1,91 @@
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 os
16
+
17
+ from veadk.auth.veauth.utils import get_credential_from_vefaas_iam
18
+ from veadk.utils.logger import get_logger
19
+ from veadk.utils.volcengine_sign import ve_request
20
+
21
+ logger = get_logger(__name__)
22
+
23
+
24
+ def _get_api_key_id_by_project_id(
25
+ project_id: str, access_key: str, secret_key: str, session_token: str, region: str
26
+ ):
27
+ res = ve_request(
28
+ request_body={"MemoryProjectId": project_id},
29
+ header={"X-Security-Token": session_token},
30
+ action="DescribeMemoryProjectDetail",
31
+ ak=access_key,
32
+ sk=secret_key,
33
+ service="mem0",
34
+ version="2025-10-10",
35
+ region=region,
36
+ host="open.volcengineapi.com",
37
+ )
38
+ try:
39
+ api_key_id = res["Result"]["APIKeyInfos"]["APIKeyId"]
40
+ except KeyError:
41
+ raise ValueError(f"Failed to get mem0 api key id: {res}")
42
+
43
+ return api_key_id
44
+
45
+
46
+ def _get_api_key_by_api_key_id(
47
+ api_key_id: str, access_key: str, secret_key: str, session_token: str, region: str
48
+ ) -> str:
49
+ res = ve_request(
50
+ request_body={"APIKeyId": api_key_id},
51
+ header={"X-Security-Token": session_token},
52
+ action="DescribeAPIKeyDetail",
53
+ ak=access_key,
54
+ sk=secret_key,
55
+ service="mem0",
56
+ version="2025-10-10",
57
+ region=region,
58
+ host="open.volcengineapi.com",
59
+ )
60
+ try:
61
+ api_key = res["Result"]["APIKeyValue"]
62
+ except KeyError:
63
+ raise ValueError(f"Failed to get mem0 api key: {res}")
64
+
65
+ return api_key
66
+
67
+
68
+ def get_viking_mem0_token(
69
+ api_key_id: str, memory_project_id: str, region: str = "cn-beijing"
70
+ ) -> str:
71
+ logger.info("Fetching Viking mem0 token...")
72
+
73
+ access_key = os.getenv("VOLCENGINE_ACCESS_KEY")
74
+ secret_key = os.getenv("VOLCENGINE_SECRET_KEY")
75
+ session_token = ""
76
+
77
+ if not (access_key and secret_key):
78
+ # try to get from vefaas iam
79
+ cred = get_credential_from_vefaas_iam()
80
+ access_key = cred.access_key_id
81
+ secret_key = cred.secret_access_key
82
+ session_token = cred.session_token
83
+
84
+ if not api_key_id:
85
+ api_key_id = _get_api_key_id_by_project_id(
86
+ memory_project_id, access_key, secret_key, session_token, region
87
+ )
88
+
89
+ return _get_api_key_by_api_key_id(
90
+ api_key_id, access_key, secret_key, session_token, region
91
+ )
@@ -32,7 +32,11 @@ from veadk.version import VERSION
32
32
  version=VERSION, prog_name="Volcengine Agent Development Kit (VeADK)"
33
33
  )
34
34
  def veadk():
35
- """Volcengine ADK command line tools"""
35
+ """Volcengine Agent Development Kit (VeADK) command line interface.
36
+
37
+ This is the main entry point for all VeADK CLI commands. VeADK provides
38
+ tools for developing, deploying, and managing AI agents on the Volcengine platform.
39
+ """
36
40
  pass
37
41
 
38
42