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.
- {veadk_python-0.5.4/veadk_python.egg-info → veadk_python-0.5.6}/PKG-INFO +3 -2
- {veadk_python-0.5.4 → veadk_python-0.5.6}/pyproject.toml +4 -3
- veadk_python-0.5.6/veadk/a2a/hub/a2a_hub_client.py +76 -0
- veadk_python-0.5.6/veadk/a2a/hub/a2a_hub_server.py +104 -0
- veadk_python-0.5.6/veadk/a2a/hub/models.py +78 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/agent.py +72 -188
- veadk_python-0.5.6/veadk/auth/veauth/mse_veauth.py +118 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/plugins/raw_async_veadk_rollout.py +2 -33
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/configs/database_configs.py +10 -0
- veadk_python-0.5.6/veadk/configs/dynamic_config_manager.py +159 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/consts.py +4 -1
- veadk_python-0.5.6/veadk/examples/in_memory_example_store.py +108 -0
- veadk_python-0.5.6/veadk/examples/types.py +28 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/vikingdb_knowledge_backend.py +70 -41
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory.py +0 -21
- veadk_python-0.5.6/veadk/models/ark_llm.py +781 -0
- veadk_python-0.5.6/veadk/reflector/base_reflector.py +44 -0
- veadk_python-0.5.6/veadk/reflector/local_reflector.py +77 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/runner.py +26 -15
- veadk_python-0.5.6/veadk/skills/skill.py +24 -0
- veadk_python-0.5.6/veadk/skills/utils.py +139 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/execute_skills.py +10 -29
- veadk_python-0.5.6/veadk/tools/builtin_tools/playwright.py +53 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/mcp_tool/trusted_mcp_session_manager.py +1 -1
- veadk_python-0.5.6/veadk/tools/skills_tools/__init__.py +32 -0
- veadk_python-0.5.6/veadk/tools/skills_tools/bash_tool.py +158 -0
- veadk_python-0.5.6/veadk/tools/skills_tools/file_tool.py +234 -0
- veadk_python-0.5.6/veadk/tools/skills_tools/register_skills_tool.py +176 -0
- veadk_python-0.5.6/veadk/tools/skills_tools/session_path.py +113 -0
- veadk_python-0.5.6/veadk/tools/skills_tools/skills_tool.py +235 -0
- veadk_python-0.5.6/veadk/tracing/__init__.py +13 -0
- veadk_python-0.5.6/veadk/tracing/telemetry/__init__.py +13 -0
- veadk_python-0.5.6/veadk/tracing/telemetry/exporters/__init__.py +13 -0
- veadk_python-0.5.6/veadk/utils/__init__.py +13 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/misc.py +32 -28
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/version.py +1 -1
- {veadk_python-0.5.4 → veadk_python-0.5.6/veadk_python.egg-info}/PKG-INFO +3 -2
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk_python.egg-info/SOURCES.txt +22 -1
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk_python.egg-info/requires.txt +2 -1
- veadk_python-0.5.4/veadk/models/ark_llm.py +0 -252
- veadk_python-0.5.4/veadk/models/ark_transform.py +0 -397
- {veadk_python-0.5.4 → veadk_python-0.5.6}/LICENSE +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/README.md +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/setup.cfg +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_agent.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_cloud.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_evaluator.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_knowledgebase.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_long_term_memory.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_misc.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_multiple_agents.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_runner.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_runtime_data_collecting.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_short_term_memory.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_tracing.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_ve_a2a_middlewares.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_ve_identity_auth_config.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_ve_identity_function_tool.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_ve_identity_mcp_tool.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/tests/test_ve_identity_mcp_toolset.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/agent_card.py +0 -0
- {veadk_python-0.5.4/veadk/a2a/utils → veadk_python-0.5.6/veadk/a2a/hub}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/remote_ve_agent.py +0 -0
- {veadk_python-0.5.4/veadk/auth → veadk_python-0.5.6/veadk/a2a/utils}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/utils/agent_to_a2a.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/ve_a2a_server.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/ve_agent_executor.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/ve_middlewares.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/a2a/ve_task_store.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/agent_builder.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/agents/loop_agent.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/agents/parallel_agent.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/agents/sequential_agent.py +0 -0
- {veadk_python-0.5.4/veadk/auth/veauth → veadk_python-0.5.6/veadk/auth}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/base_auth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/ve_credential_service.py +0 -0
- {veadk_python-0.5.4/veadk/cli → veadk_python-0.5.6/veadk/auth/veauth}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/apmplus_veauth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/ark_veauth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/base_veauth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/cozeloop_veauth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/opensearch_veauth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/postgresql_veauth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/prompt_pilot_veauth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/speech_veauth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/utils.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/vesearch_veauth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/auth/veauth/viking_mem0_veauth.py +0 -0
- {veadk_python-0.5.4/veadk/cloud → veadk_python-0.5.6/veadk/cli}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_agentkit.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_clean.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_create.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_deploy.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_eval.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_init.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_kb.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_pipeline.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_prompt.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_rl.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_update.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_uploadevalset.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/cli_web.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/README.md +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/arkworkspace.toml +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/data/demo_dataset.jsonl +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/job.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/job.yaml +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/plugins/random_reward.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/plugins/test_utils.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/requirements.txt +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/ark/test_faas.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/README.md +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/data/demo_test.parquet +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/data/demo_train.parquet +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/demo_calculate_agent.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/restart_ray.sh +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cli/templates/rl/lightning/train.sh +0 -0
- {veadk_python-0.5.4/veadk/community/langchain_ai/checkpoint → veadk_python-0.5.6/veadk/cloud}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cloud/cloud_agent_engine.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/cloud/cloud_app.py +0 -0
- {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
- {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
- {veadk_python-0.5.4/veadk/community/langchain_ai/models → veadk_python-0.5.6/veadk/community/langchain_ai/middlewares}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/community/langchain_ai/middlewares/save_session.py +0 -0
- {veadk_python-0.5.4/veadk/community/langchain_ai/store → veadk_python-0.5.6/veadk/community/langchain_ai/models}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/community/langchain_ai/models/ark_model.py +0 -0
- {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
- {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
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/community/langchain_ai/store/memory/viking_memory.py +0 -0
- {veadk_python-0.5.4/veadk/configs → veadk_python-0.5.6/veadk/community/langchain_ai/tools}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/community/langchain_ai/tools/load_knowledgebase.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/community/langchain_ai/tools/load_memory.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/config.py +0 -0
- {veadk_python-0.5.4/veadk/integrations → veadk_python-0.5.6/veadk/configs}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/configs/auth_configs.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/configs/model_configs.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/configs/tool_configs.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/configs/tracing_configs.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/adk_evaluator/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/adk_evaluator/adk_evaluator.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/base_evaluator.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/deepeval_evaluator/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/eval_set_file_loader.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/eval_set_recorder.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/types.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/evaluation/utils/prometheus.py +0 -0
- {veadk_python-0.5.4/veadk/integrations/ve_apig → veadk_python-0.5.6/veadk/integrations}/__init__.py +0 -0
- {veadk_python-0.5.4/veadk/integrations/ve_code_pipeline → veadk_python-0.5.6/veadk/integrations/ve_apig}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_apig/ve_apig.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_apig/ve_apig_utils.py +0 -0
- {veadk_python-0.5.4/veadk/integrations/ve_cozeloop → veadk_python-0.5.6/veadk/integrations/ve_code_pipeline}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_code_pipeline/ve_code_pipeline.py +0 -0
- {veadk_python-0.5.4/veadk/integrations/ve_cr → veadk_python-0.5.6/veadk/integrations/ve_cozeloop}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_cozeloop/ve_cozeloop.py +0 -0
- {veadk_python-0.5.4/veadk/integrations/ve_faas → veadk_python-0.5.6/veadk/integrations/ve_cr}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_cr/ve_cr.py +0 -0
- {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
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/cookiecutter.json +0 -0
- {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
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
- {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
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
- {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
- {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
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/ve_faas.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/ve_faas_utils.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/cookiecutter.json +0 -0
- {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
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
- {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
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/auth_config.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/auth_mixins.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/auth_processor.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/function_tool.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/identity_client.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/mcp_tool.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/mcp_toolset.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/models.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/token_manager.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_identity/utils.py +0 -0
- {veadk_python-0.5.4/veadk/integrations/ve_tls → veadk_python-0.5.6/veadk/integrations/ve_prompt_pilot}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py +0 -0
- {veadk_python-0.5.4/veadk/integrations/ve_viking_db_memory → veadk_python-0.5.6/veadk/integrations/ve_tls}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_tls/utils.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_tls/ve_tls.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_tos/ve_tos.py +0 -0
- {veadk_python-0.5.4/veadk/knowledgebase/backends → veadk_python-0.5.6/veadk/integrations/ve_viking_db_memory}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/__init__.py +0 -0
- {veadk_python-0.5.4/veadk/memory/long_term_memory_backends → veadk_python-0.5.6/veadk/knowledgebase/backends}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/base_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/in_memory_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/opensearch_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/redis_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/tos_vector_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/backends/utils.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/entry.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/knowledgebase/knowledgebase.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory.py +0 -0
- {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
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/base_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/in_memory_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/mem0_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/opensearch_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/redis_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/long_term_memory_backends/vikingdb_memory_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/save_session_callback.py +0 -0
- {veadk_python-0.5.4/veadk/prompts → veadk_python-0.5.6/veadk/memory/short_term_memory_backends}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory_backends/base_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory_backends/mysql_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory_backends/postgresql_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory_backends/sqlite_backend.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/memory/short_term_memory_processor.py +0 -0
- {veadk_python-0.5.4/veadk/tools → veadk_python-0.5.6/veadk/models}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/processors/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/processors/base_run_processor.py +0 -0
- {veadk_python-0.5.4/veadk/tools/builtin_tools → veadk_python-0.5.6/veadk/prompts}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/prompts/agent_default_prompt.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/prompts/prompt_evaluator.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/prompts/prompt_manager.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/prompts/prompt_memory_processor.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/prompts/prompt_optimization.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/client.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/doubao_realtime_voice_llm.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/doubao_realtime_voice_llm_connection.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/live.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/realtime/protocol.py +0 -0
- {veadk_python-0.5.4/veadk/tools/mcp_tool → veadk_python-0.5.6/veadk/reflector}/__init__.py +0 -0
- {veadk_python-0.5.4/veadk/tools/sandbox → veadk_python-0.5.6/veadk/skills}/__init__.py +0 -0
- {veadk_python-0.5.4/veadk/tracing → veadk_python-0.5.6/veadk/tools}/__init__.py +0 -0
- {veadk_python-0.5.4/veadk/tracing/telemetry → veadk_python-0.5.6/veadk/tools/builtin_tools}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/agent_authorization.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/generate_image.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/image_edit.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/image_generate.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/lark.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/las.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/link_reader.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/llm_shield.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/load_knowledgebase.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/mcp_router.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/mobile_run.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/run_code.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/tts.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/vesearch.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/video_generate.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/vod.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/web_scraper.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/builtin_tools/web_search.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/demo_tools.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/load_knowledgebase_tool.py +0 -0
- {veadk_python-0.5.4/veadk/tracing/telemetry/exporters → veadk_python-0.5.6/veadk/tools/mcp_tool}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/mcp_tool/trusted_mcp_toolset.py +0 -0
- {veadk_python-0.5.4/veadk/utils → veadk_python-0.5.6/veadk/tools/sandbox}/__init__.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/sandbox/browser_sandbox.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/sandbox/code_sandbox.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tools/sandbox/computer_sandbox.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/base_tracer.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/attributes/attributes.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/attributes/extractors/types.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/exporters/apmplus_exporter.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/exporters/base_exporter.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/exporters/cozeloop_exporter.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/exporters/inmemory_exporter.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/exporters/tls_exporter.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/opentelemetry_tracer.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/tracing/telemetry/telemetry.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/types.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/audio_manager.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/auth.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/logger.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/mcp_utils.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/patches.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk/utils/volcengine_sign.py +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk_python.egg-info/dependency_links.txt +0 -0
- {veadk_python-0.5.4 → veadk_python-0.5.6}/veadk_python.egg-info/entry_points.txt +0 -0
- {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.
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
if
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
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
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
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
|
-
|
|
420
|
-
|
|
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
|