veadk-python 0.5.4__tar.gz → 0.5.6__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 (309) hide show
  1. {veadk_python-0.5.4/veadk_python.egg-info → veadk_python-0.5.6}/PKG-INFO +3 -2
  2. {veadk_python-0.5.4 → veadk_python-0.5.6}/pyproject.toml +4 -3
  3. veadk_python-0.5.6/veadk/a2a/hub/a2a_hub_client.py +76 -0
  4. veadk_python-0.5.6/veadk/a2a/hub/a2a_hub_server.py +104 -0
  5. veadk_python-0.5.6/veadk/a2a/hub/models.py +78 -0
  6. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/agent.py +72 -188
  7. veadk_python-0.5.6/veadk/auth/veauth/mse_veauth.py +118 -0
  8. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/plugins/raw_async_veadk_rollout.py +2 -33
  9. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/configs/database_configs.py +10 -0
  10. veadk_python-0.5.6/veadk/configs/dynamic_config_manager.py +159 -0
  11. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/consts.py +4 -1
  12. veadk_python-0.5.6/veadk/examples/in_memory_example_store.py +108 -0
  13. veadk_python-0.5.6/veadk/examples/types.py +28 -0
  14. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/vikingdb_knowledge_backend.py +70 -41
  15. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory.py +0 -21
  16. veadk_python-0.5.6/veadk/models/ark_llm.py +781 -0
  17. veadk_python-0.5.6/veadk/reflector/base_reflector.py +44 -0
  18. veadk_python-0.5.6/veadk/reflector/local_reflector.py +77 -0
  19. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/runner.py +26 -15
  20. veadk_python-0.5.6/veadk/skills/skill.py +24 -0
  21. veadk_python-0.5.6/veadk/skills/utils.py +139 -0
  22. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/execute_skills.py +10 -29
  23. veadk_python-0.5.6/veadk/tools/builtin_tools/playwright.py +53 -0
  24. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/mcp_tool/trusted_mcp_session_manager.py +1 -1
  25. veadk_python-0.5.6/veadk/tools/skills_tools/__init__.py +32 -0
  26. veadk_python-0.5.6/veadk/tools/skills_tools/bash_tool.py +158 -0
  27. veadk_python-0.5.6/veadk/tools/skills_tools/file_tool.py +234 -0
  28. veadk_python-0.5.6/veadk/tools/skills_tools/register_skills_tool.py +176 -0
  29. veadk_python-0.5.6/veadk/tools/skills_tools/session_path.py +113 -0
  30. veadk_python-0.5.6/veadk/tools/skills_tools/skills_tool.py +235 -0
  31. veadk_python-0.5.6/veadk/tracing/__init__.py +13 -0
  32. veadk_python-0.5.6/veadk/tracing/telemetry/__init__.py +13 -0
  33. veadk_python-0.5.6/veadk/tracing/telemetry/exporters/__init__.py +13 -0
  34. veadk_python-0.5.6/veadk/utils/__init__.py +13 -0
  35. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/misc.py +32 -28
  36. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/version.py +1 -1
  37. {veadk_python-0.5.4 → veadk_python-0.5.6/veadk_python.egg-info}/PKG-INFO +3 -2
  38. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk_python.egg-info/SOURCES.txt +22 -1
  39. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk_python.egg-info/requires.txt +2 -1
  40. veadk_python-0.5.4/veadk/models/ark_llm.py +0 -252
  41. veadk_python-0.5.4/veadk/models/ark_transform.py +0 -397
  42. {veadk_python-0.5.4 → veadk_python-0.5.6}/LICENSE +0 -0
  43. {veadk_python-0.5.4 → veadk_python-0.5.6}/README.md +0 -0
  44. {veadk_python-0.5.4 → veadk_python-0.5.6}/setup.cfg +0 -0
  45. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_agent.py +0 -0
  46. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_cloud.py +0 -0
  47. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_evaluator.py +0 -0
  48. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_knowledgebase.py +0 -0
  49. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_long_term_memory.py +0 -0
  50. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_misc.py +0 -0
  51. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_multiple_agents.py +0 -0
  52. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_runner.py +0 -0
  53. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_runtime_data_collecting.py +0 -0
  54. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_short_term_memory.py +0 -0
  55. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_tracing.py +0 -0
  56. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_ve_a2a_middlewares.py +0 -0
  57. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_ve_identity_auth_config.py +0 -0
  58. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_ve_identity_function_tool.py +0 -0
  59. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_ve_identity_mcp_tool.py +0 -0
  60. {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_ve_identity_mcp_toolset.py +0 -0
  61. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/__init__.py +0 -0
  62. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/__init__.py +0 -0
  63. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/agent_card.py +0 -0
  64. {veadk_python-0.5.4/veadk/a2a/utils → veadk_python-0.5.6/veadk/a2a/hub}/__init__.py +0 -0
  65. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/remote_ve_agent.py +0 -0
  66. {veadk_python-0.5.4/veadk/auth → veadk_python-0.5.6/veadk/a2a/utils}/__init__.py +0 -0
  67. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/utils/agent_to_a2a.py +0 -0
  68. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/ve_a2a_server.py +0 -0
  69. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/ve_agent_executor.py +0 -0
  70. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/ve_middlewares.py +0 -0
  71. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/ve_task_store.py +0 -0
  72. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/agent_builder.py +0 -0
  73. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/agents/loop_agent.py +0 -0
  74. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/agents/parallel_agent.py +0 -0
  75. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/agents/sequential_agent.py +0 -0
  76. {veadk_python-0.5.4/veadk/auth/veauth → veadk_python-0.5.6/veadk/auth}/__init__.py +0 -0
  77. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/base_auth.py +0 -0
  78. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/ve_credential_service.py +0 -0
  79. {veadk_python-0.5.4/veadk/cli → veadk_python-0.5.6/veadk/auth/veauth}/__init__.py +0 -0
  80. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/apmplus_veauth.py +0 -0
  81. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/ark_veauth.py +0 -0
  82. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/base_veauth.py +0 -0
  83. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/cozeloop_veauth.py +0 -0
  84. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/opensearch_veauth.py +0 -0
  85. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/postgresql_veauth.py +0 -0
  86. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/prompt_pilot_veauth.py +0 -0
  87. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/speech_veauth.py +0 -0
  88. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/utils.py +0 -0
  89. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/vesearch_veauth.py +0 -0
  90. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/viking_mem0_veauth.py +0 -0
  91. {veadk_python-0.5.4/veadk/cloud → veadk_python-0.5.6/veadk/cli}/__init__.py +0 -0
  92. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli.py +0 -0
  93. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_agentkit.py +0 -0
  94. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_clean.py +0 -0
  95. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_create.py +0 -0
  96. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_deploy.py +0 -0
  97. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_eval.py +0 -0
  98. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_init.py +0 -0
  99. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_kb.py +0 -0
  100. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_pipeline.py +0 -0
  101. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_prompt.py +0 -0
  102. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_rl.py +0 -0
  103. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_update.py +0 -0
  104. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_uploadevalset.py +0 -0
  105. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_web.py +0 -0
  106. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/README.md +0 -0
  107. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/arkworkspace.toml +0 -0
  108. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/data/demo_dataset.jsonl +0 -0
  109. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/job.py +0 -0
  110. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/job.yaml +0 -0
  111. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/plugins/random_reward.py +0 -0
  112. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/plugins/test_utils.py +0 -0
  113. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/requirements.txt +0 -0
  114. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/test_faas.py +0 -0
  115. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/README.md +0 -0
  116. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/data/demo_test.parquet +0 -0
  117. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/data/demo_train.parquet +0 -0
  118. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/demo_calculate_agent.py +0 -0
  119. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/restart_ray.sh +0 -0
  120. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/train.sh +0 -0
  121. {veadk_python-0.5.4/veadk/community/langchain_ai/checkpoint → veadk_python-0.5.6/veadk/cloud}/__init__.py +0 -0
  122. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cloud/cloud_agent_engine.py +0 -0
  123. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cloud/cloud_app.py +0 -0
  124. {veadk_python-0.5.4/veadk/community/langchain_ai/checkpoint/memory → veadk_python-0.5.6/veadk/community/langchain_ai/checkpoint}/__init__.py +0 -0
  125. {veadk_python-0.5.4/veadk/community/langchain_ai/middlewares → veadk_python-0.5.6/veadk/community/langchain_ai/checkpoint/memory}/__init__.py +0 -0
  126. {veadk_python-0.5.4/veadk/community/langchain_ai/models → veadk_python-0.5.6/veadk/community/langchain_ai/middlewares}/__init__.py +0 -0
  127. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/community/langchain_ai/middlewares/save_session.py +0 -0
  128. {veadk_python-0.5.4/veadk/community/langchain_ai/store → veadk_python-0.5.6/veadk/community/langchain_ai/models}/__init__.py +0 -0
  129. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/community/langchain_ai/models/ark_model.py +0 -0
  130. {veadk_python-0.5.4/veadk/community/langchain_ai/store/memory → veadk_python-0.5.6/veadk/community/langchain_ai/store}/__init__.py +0 -0
  131. {veadk_python-0.5.4/veadk/community/langchain_ai/tools → veadk_python-0.5.6/veadk/community/langchain_ai/store/memory}/__init__.py +0 -0
  132. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/community/langchain_ai/store/memory/viking_memory.py +0 -0
  133. {veadk_python-0.5.4/veadk/configs → veadk_python-0.5.6/veadk/community/langchain_ai/tools}/__init__.py +0 -0
  134. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/community/langchain_ai/tools/load_knowledgebase.py +0 -0
  135. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/community/langchain_ai/tools/load_memory.py +0 -0
  136. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/config.py +0 -0
  137. {veadk_python-0.5.4/veadk/integrations → veadk_python-0.5.6/veadk/configs}/__init__.py +0 -0
  138. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/configs/auth_configs.py +0 -0
  139. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/configs/model_configs.py +0 -0
  140. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/configs/tool_configs.py +0 -0
  141. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/configs/tracing_configs.py +0 -0
  142. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/__init__.py +0 -0
  143. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/adk_evaluator/__init__.py +0 -0
  144. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/adk_evaluator/adk_evaluator.py +0 -0
  145. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/base_evaluator.py +0 -0
  146. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/deepeval_evaluator/__init__.py +0 -0
  147. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +0 -0
  148. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/eval_set_file_loader.py +0 -0
  149. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/eval_set_recorder.py +0 -0
  150. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/types.py +0 -0
  151. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/utils/prometheus.py +0 -0
  152. {veadk_python-0.5.4/veadk/integrations/ve_apig → veadk_python-0.5.6/veadk/integrations}/__init__.py +0 -0
  153. {veadk_python-0.5.4/veadk/integrations/ve_code_pipeline → veadk_python-0.5.6/veadk/integrations/ve_apig}/__init__.py +0 -0
  154. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_apig/ve_apig.py +0 -0
  155. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_apig/ve_apig_utils.py +0 -0
  156. {veadk_python-0.5.4/veadk/integrations/ve_cozeloop → veadk_python-0.5.6/veadk/integrations/ve_code_pipeline}/__init__.py +0 -0
  157. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_code_pipeline/ve_code_pipeline.py +0 -0
  158. {veadk_python-0.5.4/veadk/integrations/ve_cr → veadk_python-0.5.6/veadk/integrations/ve_cozeloop}/__init__.py +0 -0
  159. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_cozeloop/ve_cozeloop.py +0 -0
  160. {veadk_python-0.5.4/veadk/integrations/ve_faas → veadk_python-0.5.6/veadk/integrations/ve_cr}/__init__.py +0 -0
  161. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_cr/ve_cr.py +0 -0
  162. {veadk_python-0.5.4/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}} → veadk_python-0.5.6/veadk/integrations/ve_faas}/__init__.py +0 -0
  163. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/cookiecutter.json +0 -0
  164. {veadk_python-0.5.4/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src → veadk_python-0.5.6/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}}/__init__.py +0 -0
  165. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
  166. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
  167. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
  168. {veadk_python-0.5.4/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}} → veadk_python-0.5.6/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src}/__init__.py +0 -0
  169. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py +0 -0
  170. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
  171. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
  172. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
  173. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/__init__.py +0 -0
  174. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/agent.py +0 -0
  175. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/ve_faas.py +0 -0
  176. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/ve_faas_utils.py +0 -0
  177. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/cookiecutter.json +0 -0
  178. {veadk_python-0.5.4/veadk/integrations/ve_prompt_pilot → veadk_python-0.5.6/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}}/__init__.py +0 -0
  179. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
  180. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
  181. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
  182. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile +0 -0
  183. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
  184. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/init_db.py +0 -0
  185. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/models.py +0 -0
  186. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
  187. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
  188. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/css/style.css +0 -0
  189. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/js/admin.js +0 -0
  190. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/dashboard.html +0 -0
  191. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/edit_post.html +0 -0
  192. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/login.html +0 -0
  193. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/posts.html +0 -0
  194. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/base.html +0 -0
  195. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/index.html +0 -0
  196. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/post.html +0 -0
  197. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/__init__.py +0 -0
  198. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/auth_config.py +0 -0
  199. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/auth_mixins.py +0 -0
  200. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/auth_processor.py +0 -0
  201. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/function_tool.py +0 -0
  202. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/identity_client.py +0 -0
  203. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/mcp_tool.py +0 -0
  204. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/mcp_toolset.py +0 -0
  205. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/models.py +0 -0
  206. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/token_manager.py +0 -0
  207. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/utils.py +0 -0
  208. {veadk_python-0.5.4/veadk/integrations/ve_tls → veadk_python-0.5.6/veadk/integrations/ve_prompt_pilot}/__init__.py +0 -0
  209. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py +0 -0
  210. {veadk_python-0.5.4/veadk/integrations/ve_viking_db_memory → veadk_python-0.5.6/veadk/integrations/ve_tls}/__init__.py +0 -0
  211. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_tls/utils.py +0 -0
  212. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_tls/ve_tls.py +0 -0
  213. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_tos/ve_tos.py +0 -0
  214. {veadk_python-0.5.4/veadk/knowledgebase/backends → veadk_python-0.5.6/veadk/integrations/ve_viking_db_memory}/__init__.py +0 -0
  215. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py +0 -0
  216. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/__init__.py +0 -0
  217. {veadk_python-0.5.4/veadk/memory/long_term_memory_backends → veadk_python-0.5.6/veadk/knowledgebase/backends}/__init__.py +0 -0
  218. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/base_backend.py +0 -0
  219. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/in_memory_backend.py +0 -0
  220. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/opensearch_backend.py +0 -0
  221. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/redis_backend.py +0 -0
  222. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/tos_vector_backend.py +0 -0
  223. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/utils.py +0 -0
  224. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/entry.py +0 -0
  225. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/knowledgebase.py +0 -0
  226. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/__init__.py +0 -0
  227. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory.py +0 -0
  228. {veadk_python-0.5.4/veadk/memory/short_term_memory_backends → veadk_python-0.5.6/veadk/memory/long_term_memory_backends}/__init__.py +0 -0
  229. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/base_backend.py +0 -0
  230. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/in_memory_backend.py +0 -0
  231. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/mem0_backend.py +0 -0
  232. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/opensearch_backend.py +0 -0
  233. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/redis_backend.py +0 -0
  234. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/vikingdb_memory_backend.py +0 -0
  235. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/save_session_callback.py +0 -0
  236. {veadk_python-0.5.4/veadk/prompts → veadk_python-0.5.6/veadk/memory/short_term_memory_backends}/__init__.py +0 -0
  237. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory_backends/base_backend.py +0 -0
  238. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory_backends/mysql_backend.py +0 -0
  239. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory_backends/postgresql_backend.py +0 -0
  240. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory_backends/sqlite_backend.py +0 -0
  241. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory_processor.py +0 -0
  242. {veadk_python-0.5.4/veadk/tools → veadk_python-0.5.6/veadk/models}/__init__.py +0 -0
  243. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/processors/__init__.py +0 -0
  244. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/processors/base_run_processor.py +0 -0
  245. {veadk_python-0.5.4/veadk/tools/builtin_tools → veadk_python-0.5.6/veadk/prompts}/__init__.py +0 -0
  246. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/prompts/agent_default_prompt.py +0 -0
  247. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/prompts/prompt_evaluator.py +0 -0
  248. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/prompts/prompt_manager.py +0 -0
  249. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/prompts/prompt_memory_processor.py +0 -0
  250. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/prompts/prompt_optimization.py +0 -0
  251. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/__init__.py +0 -0
  252. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/client.py +0 -0
  253. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/doubao_realtime_voice_llm.py +0 -0
  254. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/doubao_realtime_voice_llm_connection.py +0 -0
  255. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/live.py +0 -0
  256. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/protocol.py +0 -0
  257. {veadk_python-0.5.4/veadk/tools/mcp_tool → veadk_python-0.5.6/veadk/reflector}/__init__.py +0 -0
  258. {veadk_python-0.5.4/veadk/tools/sandbox → veadk_python-0.5.6/veadk/skills}/__init__.py +0 -0
  259. {veadk_python-0.5.4/veadk/tracing → veadk_python-0.5.6/veadk/tools}/__init__.py +0 -0
  260. {veadk_python-0.5.4/veadk/tracing/telemetry → veadk_python-0.5.6/veadk/tools/builtin_tools}/__init__.py +0 -0
  261. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/agent_authorization.py +0 -0
  262. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/generate_image.py +0 -0
  263. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/image_edit.py +0 -0
  264. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/image_generate.py +0 -0
  265. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/lark.py +0 -0
  266. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/las.py +0 -0
  267. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/link_reader.py +0 -0
  268. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/llm_shield.py +0 -0
  269. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/load_knowledgebase.py +0 -0
  270. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/mcp_router.py +0 -0
  271. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/mobile_run.py +0 -0
  272. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/run_code.py +0 -0
  273. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/tts.py +0 -0
  274. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/vesearch.py +0 -0
  275. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/video_generate.py +0 -0
  276. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/vod.py +0 -0
  277. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/web_scraper.py +0 -0
  278. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/web_search.py +0 -0
  279. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/demo_tools.py +0 -0
  280. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/load_knowledgebase_tool.py +0 -0
  281. {veadk_python-0.5.4/veadk/tracing/telemetry/exporters → veadk_python-0.5.6/veadk/tools/mcp_tool}/__init__.py +0 -0
  282. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/mcp_tool/trusted_mcp_toolset.py +0 -0
  283. {veadk_python-0.5.4/veadk/utils → veadk_python-0.5.6/veadk/tools/sandbox}/__init__.py +0 -0
  284. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/sandbox/browser_sandbox.py +0 -0
  285. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/sandbox/code_sandbox.py +0 -0
  286. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/sandbox/computer_sandbox.py +0 -0
  287. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/base_tracer.py +0 -0
  288. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/attributes/attributes.py +0 -0
  289. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +0 -0
  290. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +0 -0
  291. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +0 -0
  292. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/attributes/extractors/types.py +0 -0
  293. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/exporters/apmplus_exporter.py +0 -0
  294. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/exporters/base_exporter.py +0 -0
  295. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/exporters/cozeloop_exporter.py +0 -0
  296. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/exporters/inmemory_exporter.py +0 -0
  297. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/exporters/tls_exporter.py +0 -0
  298. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/opentelemetry_tracer.py +0 -0
  299. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/telemetry.py +0 -0
  300. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/types.py +0 -0
  301. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/audio_manager.py +0 -0
  302. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/auth.py +0 -0
  303. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/logger.py +0 -0
  304. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/mcp_utils.py +0 -0
  305. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/patches.py +0 -0
  306. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/volcengine_sign.py +0 -0
  307. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk_python.egg-info/dependency_links.txt +0 -0
  308. {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk_python.egg-info/entry_points.txt +0 -0
  309. {veadk_python-0.5.4 → veadk_python-0.5.6}/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.5.4
3
+ Version: 0.5.6
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
@@ -234,8 +234,9 @@ Requires-Dist: pymysql==1.1.1
234
234
  Requires-Dist: aiomysql==0.3.2
235
235
  Requires-Dist: opensearch-py==2.8.0
236
236
  Requires-Dist: filetype==1.2.0
237
- Requires-Dist: vikingdb-python-sdk==0.1.3
237
+ Requires-Dist: vikingdb-python-sdk>=0.1.3
238
238
  Requires-Dist: agentkit-sdk-python>=0.2.0
239
+ Requires-Dist: python-frontmatter==1.1.0
239
240
  Provides-Extra: extensions
240
241
  Requires-Dist: redis>=5.0; extra == "extensions"
241
242
  Requires-Dist: tos>=2.8.4; extra == "extensions"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "veadk-python"
3
- version = "0.5.4"
3
+ version = "0.5.6"
4
4
  description = "Volcengine agent development kit, integrations with Volcengine cloud services."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -38,8 +38,9 @@ dependencies = [
38
38
  "aiomysql==0.3.2", # For async MySQL database (short term memory)
39
39
  "opensearch-py==2.8.0",
40
40
  "filetype==1.2.0",
41
- "vikingdb-python-sdk==0.1.3",
42
- "agentkit-sdk-python>=0.2.0"
41
+ "vikingdb-python-sdk>=0.1.3",
42
+ "agentkit-sdk-python>=0.2.0",
43
+ "python-frontmatter==1.1.0",
43
44
  ]
44
45
 
45
46
  [project.scripts]
@@ -0,0 +1,76 @@
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 requests
16
+ from a2a.types import AgentCard
17
+
18
+
19
+ class A2AHubClient:
20
+ def __init__(self, server_host: str, server_port: int):
21
+ self.server_host = server_host
22
+ self.server_port = server_port
23
+ self.health_check()
24
+
25
+ def health_check(self) -> None:
26
+ """Check the health of the server."""
27
+ response = requests.get(f"http://{self.server_host}:{self.server_port}/ping")
28
+ assert response.status_code == 200, (
29
+ f"unexpected status code from A2A hub server: {response.status_code}"
30
+ )
31
+
32
+ def get_agent_cards(
33
+ self, group_id: str, target_agents: list[str] = []
34
+ ) -> list[dict]:
35
+ """Get the agent cards of the agents in the group."""
36
+ ret = []
37
+
38
+ response = requests.get(
39
+ f"http://{self.server_host}:{self.server_port}/group/{group_id}/agents"
40
+ ).json()
41
+ agent_infos = response["agent_infos"]
42
+ for agent_info in agent_infos:
43
+ agent_id = agent_info["agent_id"]
44
+ if target_agents:
45
+ if agent_id in target_agents:
46
+ ret.append(agent_info)
47
+ else:
48
+ ret.append(agent_info)
49
+
50
+ return ret
51
+
52
+ def register_agent(self, group_id: str, agent_id: str, agent_card: AgentCard):
53
+ response = requests.post(
54
+ f"http://{self.server_host}:{self.server_port}/register_agent",
55
+ json={
56
+ "group_id": group_id,
57
+ "agent_id": agent_id,
58
+ "agent_card": agent_card.model_dump(),
59
+ },
60
+ )
61
+
62
+ assert response.status_code == 200, (
63
+ f"unexpected status code from A2A hub server: {response.status_code}"
64
+ )
65
+
66
+ def create_group(self, group_id: str):
67
+ response = requests.post(
68
+ f"http://{self.server_host}:{self.server_port}/create_group",
69
+ params={
70
+ "group_id": group_id,
71
+ },
72
+ )
73
+
74
+ assert response.status_code == 200, (
75
+ f"unexpected status code from A2A hub server: {response.status_code}"
76
+ )
@@ -0,0 +1,104 @@
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 uvicorn
16
+ from fastapi import FastAPI
17
+ from fastapi.responses import JSONResponse
18
+
19
+ from veadk.a2a.hub.models import (
20
+ AgentInformation,
21
+ GetAgentResponse,
22
+ GetAgentsResponse,
23
+ GetGroupsResponse,
24
+ RegisterAgentRequest,
25
+ RegisterAgentResponse,
26
+ RegisterGroupResponse,
27
+ )
28
+
29
+
30
+ class A2AHubServer:
31
+ def __init__(self):
32
+ self.app = FastAPI()
33
+
34
+ self.groups: list[str] = []
35
+
36
+ # group_id -> agent_id -> agent_card
37
+ self.agent_cards: dict[str, dict[str, dict]] = {}
38
+
39
+ @self.app.get("/ping")
40
+ def ping() -> JSONResponse:
41
+ return JSONResponse(content={"msg": "pong!"})
42
+
43
+ @self.app.post("/create_group")
44
+ def create_group(group_id: str) -> RegisterGroupResponse:
45
+ """Create a group."""
46
+ self.groups.append(group_id)
47
+ self.agent_cards[group_id] = {}
48
+ return RegisterGroupResponse(group_id=group_id)
49
+
50
+ @self.app.post("/register_agent")
51
+ def register_agent(
52
+ request: RegisterAgentRequest,
53
+ ) -> RegisterAgentResponse:
54
+ """Register an agent to a specified group."""
55
+ if request.group_id not in self.groups:
56
+ return RegisterAgentResponse(
57
+ err_code=1, msg=f"group {request.group_id} not exist"
58
+ )
59
+ if request.agent_id in self.agent_cards[request.group_id]:
60
+ return RegisterAgentResponse(
61
+ err_code=1, msg=f"agent {request.agent_id} already exist"
62
+ )
63
+
64
+ self.agent_cards[request.group_id][request.agent_id] = request.agent_card
65
+ return RegisterAgentResponse(
66
+ group_id=request.group_id,
67
+ agent_id=request.agent_id,
68
+ agent_card=self.agent_cards[request.group_id][request.agent_id],
69
+ )
70
+
71
+ @self.app.get("/group/{group_id}/agents")
72
+ def agents(group_id: str) -> GetAgentsResponse:
73
+ """Get all agents in a specified group."""
74
+ if group_id not in self.groups:
75
+ return GetAgentsResponse(err_code=1, msg=f"group {group_id} not exist")
76
+
77
+ agent_infos = [
78
+ AgentInformation(agent_id=agent_id, agent_card=agent_card)
79
+ for agent_id, agent_card in self.agent_cards[group_id].items()
80
+ ]
81
+ return GetAgentsResponse(group_id=group_id, agent_infos=agent_infos)
82
+
83
+ @self.app.get("/group/{group_id}/agent/{agent_id}")
84
+ def agent(group_id: str, agent_id: str) -> GetAgentResponse:
85
+ """Get the agent card of a specified agent in a specified group."""
86
+ if group_id not in self.groups:
87
+ return GetAgentResponse(err_code=1, msg=f"group {group_id} not exist")
88
+ if agent_id not in self.agent_cards[group_id]:
89
+ return GetAgentResponse(
90
+ err_code=1,
91
+ msg=f"agent {agent_id} in group {group_id} not exist",
92
+ )
93
+ return GetAgentResponse(
94
+ agent_id=agent_id,
95
+ agent_card=self.agent_cards[group_id][agent_id],
96
+ )
97
+
98
+ @self.app.get("/groups")
99
+ def groups() -> GetGroupsResponse:
100
+ """Get all registered groups."""
101
+ return GetGroupsResponse(group_ids=self.groups)
102
+
103
+ def serve(self, **kwargs):
104
+ uvicorn.run(self.app, **kwargs)
@@ -0,0 +1,78 @@
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 pydantic import BaseModel, Field
16
+
17
+
18
+ class BaseResponse(BaseModel):
19
+ err_code: int = 0
20
+
21
+ msg: str = ""
22
+ """The message of the response."""
23
+
24
+
25
+ class RegisterGroupResponse(BaseResponse):
26
+ group_id: str = ""
27
+ """The id of the group."""
28
+
29
+
30
+ class RegisterAgentRequest(BaseResponse):
31
+ group_id: str
32
+ """Target group id."""
33
+
34
+ agent_id: str
35
+ """The id of the agent."""
36
+
37
+ agent_card: dict
38
+ """The agent card of the agent in json format."""
39
+
40
+
41
+ class RegisterAgentResponse(BaseResponse):
42
+ group_id: str = ""
43
+ """Target group id."""
44
+
45
+ agent_id: str = ""
46
+ """The id of the agent."""
47
+
48
+ agent_card: dict = Field(default_factory=dict)
49
+ """The agent card of the agent in json format."""
50
+
51
+
52
+ class AgentInformation(BaseModel):
53
+ agent_id: str = ""
54
+ """The id of the agent."""
55
+
56
+ agent_card: dict = Field(default_factory=dict)
57
+ """The agent card of the agent in json format."""
58
+
59
+
60
+ class GetAgentsResponse(BaseResponse):
61
+ group_id: str = ""
62
+ """Target group id."""
63
+
64
+ agent_infos: list[AgentInformation] = Field(default_factory=list)
65
+ """The agent cards of the agents in json format."""
66
+
67
+
68
+ class GetAgentResponse(BaseResponse):
69
+ agent_id: str = ""
70
+ """The id of the agent."""
71
+
72
+ agent_card: dict = Field(default_factory=dict)
73
+ """The agent card of the agent in json format."""
74
+
75
+
76
+ class GetGroupsResponse(BaseResponse):
77
+ group_ids: list[str] = Field(default_factory=list)
78
+ """The ids of the groups."""
@@ -15,7 +15,7 @@
15
15
  from __future__ import annotations
16
16
 
17
17
  import os
18
- from typing import Optional, Union, AsyncGenerator
18
+ from typing import Dict, Optional, Union
19
19
 
20
20
  # If user didn't set LITELLM_LOCAL_MODEL_COST_MAP, set it to True
21
21
  # to enable local model cost map.
@@ -24,15 +24,14 @@ from typing import Optional, Union, AsyncGenerator
24
24
  if not os.getenv("LITELLM_LOCAL_MODEL_COST_MAP"):
25
25
  os.environ["LITELLM_LOCAL_MODEL_COST_MAP"] = "True"
26
26
 
27
- from google.adk.agents import LlmAgent, RunConfig, InvocationContext
27
+ import uuid
28
+
29
+ from google.adk.agents import LlmAgent
28
30
  from google.adk.agents.base_agent import BaseAgent
29
31
  from google.adk.agents.context_cache_config import ContextCacheConfig
30
32
  from google.adk.agents.llm_agent import InstructionProvider, ToolUnion
31
- from google.adk.agents.run_config import StreamingMode
32
- from google.adk.events import Event, EventActions
33
+ from google.adk.examples.base_example_provider import BaseExampleProvider
33
34
  from google.adk.models.lite_llm import LiteLlm
34
- from google.adk.runners import Runner
35
- from google.genai import types
36
35
  from pydantic import ConfigDict, Field
37
36
  from typing_extensions import Any
38
37
 
@@ -41,7 +40,6 @@ from veadk.consts import (
41
40
  DEFAULT_AGENT_NAME,
42
41
  DEFAULT_MODEL_EXTRA_CONFIG,
43
42
  )
44
- from veadk.evaluation import EvalSetRecorder
45
43
  from veadk.knowledgebase import KnowledgeBase
46
44
  from veadk.memory.long_term_memory import LongTermMemory
47
45
  from veadk.memory.short_term_memory import ShortTermMemory
@@ -54,7 +52,6 @@ from veadk.prompts.prompt_manager import BasePromptManager
54
52
  from veadk.tracing.base_tracer import BaseTracer
55
53
  from veadk.utils.logger import get_logger
56
54
  from veadk.utils.patches import patch_asyncio, patch_tracer
57
- from veadk.utils.misc import check_litellm_version
58
55
  from veadk.version import VERSION
59
56
 
60
57
  patch_tracer()
@@ -87,10 +84,13 @@ class Agent(LlmAgent):
87
84
  tracers (list[BaseTracer]): List of tracers used for telemetry and monitoring.
88
85
  enable_authz (bool): Whether to enable agent authorization checks.
89
86
  auto_save_session (bool): Whether to automatically save sessions to long-term memory.
87
+ skills (list[str]): List of skills that equip the agent with specific capabilities.
88
+ example_store (Optional[BaseExampleProvider]): Example store for providing example Q/A.
90
89
  """
91
90
 
92
91
  model_config = ConfigDict(arbitrary_types_allowed=True, extra="allow")
93
92
 
93
+ id: str = Field(default_factory=lambda: str(uuid.uuid4()).split("-")[0])
94
94
  name: str = DEFAULT_AGENT_NAME
95
95
  description: str = DEFAULT_DESCRIPTION
96
96
  instruction: Union[str, InstructionProvider] = DEFAULT_INSTRUCTION
@@ -144,6 +144,10 @@ class Agent(LlmAgent):
144
144
 
145
145
  auto_save_session: bool = False
146
146
 
147
+ skills: list[str] = Field(default_factory=list)
148
+
149
+ example_store: Optional[BaseExampleProvider] = None
150
+
147
151
  def model_post_init(self, __context: Any) -> None:
148
152
  super().model_post_init(None) # for sub_agents init
149
153
 
@@ -171,9 +175,6 @@ class Agent(LlmAgent):
171
175
 
172
176
  if not self.model:
173
177
  if self.enable_responses:
174
- min_version = "1.79.3"
175
- check_litellm_version(min_version)
176
-
177
178
  from veadk.models.ark_llm import ArkLlm
178
179
 
179
180
  self.model = ArkLlm(
@@ -182,12 +183,6 @@ class Agent(LlmAgent):
182
183
  api_base=self.model_api_base,
183
184
  **self.model_extra_config,
184
185
  )
185
- if not self.context_cache_config:
186
- self.context_cache_config = ContextCacheConfig(
187
- cache_intervals=100, # maximum number
188
- ttl_seconds=315360000,
189
- min_tokens=0,
190
- )
191
186
  else:
192
187
  fallbacks = None
193
188
  if isinstance(self.model_name, list):
@@ -285,89 +280,70 @@ class Agent(LlmAgent):
285
280
  else:
286
281
  self.after_agent_callback = save_session_to_long_term_memory
287
282
 
283
+ if self.skills:
284
+ self.load_skills()
285
+
286
+ if self.example_store:
287
+ from google.adk.tools.example_tool import ExampleTool
288
+
289
+ self.tools.append(ExampleTool(examples=self.example_store))
290
+
288
291
  logger.info(f"VeADK version: {VERSION}")
289
292
 
290
293
  logger.info(f"{self.__class__.__name__} `{self.name}` init done.")
291
294
  logger.debug(
292
- f"Agent: {self.model_dump(include={'name', 'model_name', 'model_api_base', 'tools'})}"
295
+ f"Agent: {self.model_dump(include={'id', 'name', 'model_name', 'model_api_base', 'tools', 'skills'})}"
296
+ )
297
+
298
+ def update_model(self, model_name: str):
299
+ logger.info(f"Updating model to {model_name}")
300
+ self.model = self.model.model_copy(
301
+ update={"model": f"{self.model_provider}/{model_name}"}
302
+ )
303
+
304
+ def load_skills(self):
305
+ from pathlib import Path
306
+
307
+ from veadk.skills.skill import Skill
308
+ from veadk.skills.utils import (
309
+ load_skills_from_cloud,
310
+ load_skills_from_directory,
293
311
  )
312
+ from veadk.tools.skills_tools import (
313
+ SkillsTool,
314
+ bash_tool,
315
+ edit_file_tool,
316
+ read_file_tool,
317
+ write_file_tool,
318
+ register_skills_tool,
319
+ )
320
+
321
+ skills: Dict[str, Skill] = {}
294
322
 
295
- async def _run_async_impl(
296
- self, ctx: InvocationContext
297
- ) -> AsyncGenerator[Event, None]:
298
- if self.enable_responses:
299
- if not ctx.context_cache_config:
300
- ctx.context_cache_config = self.context_cache_config
301
-
302
- async for event in super()._run_async_impl(ctx):
303
- yield event
304
- if self.enable_responses and event.cache_metadata:
305
- # for persistent short-term memory with response api
306
- session_state_event = Event(
307
- invocation_id=event.invocation_id,
308
- author=event.author,
309
- actions=EventActions(
310
- state_delta={
311
- "response_id": event.cache_metadata.cache_name,
312
- }
313
- ),
323
+ for item in self.skills:
324
+ if not item or str(item).strip() == "":
325
+ continue
326
+ path = Path(item)
327
+ if path.exists() and path.is_dir():
328
+ for skill in load_skills_from_directory(path):
329
+ skills[skill.name] = skill
330
+ else:
331
+ for skill in load_skills_from_cloud(item):
332
+ skills[skill.name] = skill
333
+ if skills:
334
+ self.instruction += "\nYou have the following skills:\n"
335
+
336
+ for skill in skills.values():
337
+ self.instruction += (
338
+ f"- name: {skill.name}\n- description: {skill.description}\n\n"
314
339
  )
315
- yield session_state_event
316
-
317
- async def _run(
318
- self,
319
- runner,
320
- user_id: str,
321
- session_id: str,
322
- message: types.Content,
323
- stream: bool,
324
- run_processor: Optional[BaseRunProcessor] = None,
325
- ):
326
- """Internal run method with run processor support.
327
-
328
- Args:
329
- runner: The Runner instance.
330
- user_id: User ID for the session.
331
- session_id: Session ID.
332
- message: The message to send.
333
- stream: Whether to stream the output.
334
- run_processor: Optional run processor to use. If not provided, uses self.run_processor.
335
-
336
- Returns:
337
- The final output string.
338
- """
339
- stream_mode = StreamingMode.SSE if stream else StreamingMode.NONE
340
-
341
- # Use provided run_processor or fall back to instance's run_processor
342
- processor = run_processor or self.run_processor
343
-
344
- @processor.process_run(runner=runner, message=message)
345
- async def event_generator():
346
- async for event in runner.run_async(
347
- user_id=user_id,
348
- session_id=session_id,
349
- new_message=message,
350
- run_config=RunConfig(streaming_mode=stream_mode),
351
- ):
352
- if event.get_function_calls():
353
- for function_call in event.get_function_calls():
354
- logger.debug(f"Function call: {function_call}")
355
- elif (
356
- event.content is not None
357
- and event.content.parts[0].text is not None
358
- and len(event.content.parts[0].text.strip()) > 0
359
- ):
360
- yield event.content.parts[0].text
361
-
362
- final_output = ""
363
- async for chunk in event_generator():
364
- if stream:
365
- print(chunk, end="", flush=True)
366
- final_output += chunk
367
- if stream:
368
- print() # end with a new line
369
-
370
- return final_output
340
+
341
+ self.tools.append(SkillsTool(skills))
342
+ self.tools.append(read_file_tool)
343
+ self.tools.append(write_file_tool)
344
+ self.tools.append(edit_file_tool)
345
+ self.tools.append(bash_tool)
346
+ self.tools.append(register_skills_tool)
371
347
 
372
348
  def _prepare_tracers(self):
373
349
  enable_apmplus_tracer = os.getenv("ENABLE_APMPLUS", "false").lower() == "true"
@@ -415,99 +391,7 @@ class Agent(LlmAgent):
415
391
  f"Opentelemetry Tracer init {len(self.tracers[0].exporters)} exporters" # type: ignore
416
392
  )
417
393
 
418
- async def run(
419
- self,
420
- prompt: str | list[str],
421
- stream: bool = False,
422
- app_name: str = "veadk_app",
423
- user_id: str = "veadk_user",
424
- session_id="veadk_session",
425
- load_history_sessions_from_db: bool = False,
426
- db_url: str = "",
427
- collect_runtime_data: bool = False,
428
- eval_set_id: str = "",
429
- save_session_to_memory: bool = False,
430
- run_processor: Optional[BaseRunProcessor] = None,
431
- ):
432
- """Running the agent. The runner and session service will be created automatically.
433
-
434
- For production, consider using Google-ADK runner to run agent, rather than invoking this method.
435
-
436
- Args:
437
- prompt (str | list[str]): The prompt to run the agent.
438
- stream (bool, optional): Whether to stream the output. Defaults to False.
439
- app_name (str, optional): The name of the application. Defaults to "veadk_app".
440
- user_id (str, optional): The id of the user. Defaults to "veadk_user".
441
- session_id (str, optional): The id of the session. Defaults to "veadk_session".
442
- load_history_sessions_from_db (bool, optional): Whether to load history sessions from database. Defaults to False.
443
- db_url (str, optional): The url of the database. Defaults to "".
444
- collect_runtime_data (bool, optional): Whether to collect runtime data. Defaults to False.
445
- eval_set_id (str, optional): The id of the eval set. Defaults to "".
446
- save_session_to_memory (bool, optional): Whether to save this turn session to memory. Defaults to False.
447
- run_processor (Optional[BaseRunProcessor], optional): Optional run processor to use for this run.
448
- If not provided, uses the agent's default run_processor. Defaults to None.
449
- """
450
-
451
- logger.warning(
452
- "Running agent in this function is only for development and testing, do not use this function in production. For production, consider using `Google ADK Runner` to run agent, rather than invoking this method."
394
+ async def run(self, **kwargs):
395
+ raise NotImplementedError(
396
+ "Run method in VeADK agent is deprecated since version 0.5.6. Please use runner.run_async instead. Ref: https://agentkit.gitbook.io/docs/runner/overview"
453
397
  )
454
- logger.info(
455
- f"Run agent {self.name}: app_name: {app_name}, user_id: {user_id}, session_id: {session_id}."
456
- )
457
- prompt = [prompt] if isinstance(prompt, str) else prompt
458
-
459
- # memory service
460
- short_term_memory = ShortTermMemory(
461
- backend="database" if load_history_sessions_from_db else "local",
462
- db_url=db_url,
463
- )
464
- session_service = short_term_memory.session_service
465
- await short_term_memory.create_session(
466
- app_name=app_name, user_id=user_id, session_id=session_id
467
- )
468
-
469
- # runner
470
- runner = Runner(
471
- agent=self,
472
- app_name=app_name,
473
- session_service=session_service,
474
- memory_service=self.long_term_memory,
475
- )
476
-
477
- logger.info(f"Begin to process prompt {prompt}")
478
- # run
479
- final_output = ""
480
- for _prompt in prompt:
481
- message = types.Content(role="user", parts=[types.Part(text=_prompt)])
482
- final_output = await self._run(
483
- runner, user_id, session_id, message, stream, run_processor
484
- )
485
-
486
- # VeADK features
487
- if save_session_to_memory:
488
- assert self.long_term_memory is not None, (
489
- "Long-term memory is not initialized in agent"
490
- )
491
- session = await session_service.get_session(
492
- app_name=app_name,
493
- user_id=user_id,
494
- session_id=session_id,
495
- )
496
- if session:
497
- await self.long_term_memory.add_session_to_memory(session)
498
- logger.info(f"Add session `{session.id}` to your long-term memory.")
499
- else:
500
- logger.error(
501
- f"Session {session_id} not found in session service, cannot save to long-term memory."
502
- )
503
-
504
- if collect_runtime_data:
505
- eval_set_recorder = EvalSetRecorder(session_service, eval_set_id)
506
- dump_path = await eval_set_recorder.dump(app_name, user_id, session_id)
507
- self._dump_path = dump_path # just for test/debug/instrumentation
508
-
509
- if self.tracers:
510
- for tracer in self.tracers:
511
- tracer.dump(user_id=user_id, session_id=session_id)
512
-
513
- return final_output