VeADK (Volcengine Agent Development Kit) is a comprehensive Python framework for developing, deploying, and monitoring AI agents on the Volcengine platform. It provides an opinionated architecture built on top of Google ADK that integrates deeply with Volcengine's cloud services, offering developers a complete toolkit for building enterprise-grade agent applications with built-in observability, knowledge management, and deployment capabilities.
This page provides a high-level introduction to VeADK's architecture, core components, and design philosophy. For detailed implementation guides, see:
VeADK addresses the complete agent development lifecycle through five integrated subsystems:
| Subsystem | Purpose | Key Components |
|---|---|---|
| Development Tools | Project scaffolding, local testing, deployment automation | veadk CLI, cookiecutter templates, FastAPI server |
| Core Agent Runtime | LLM orchestration, tool execution, conversation management | Agent, Runner, instruction management |
| Memory & Knowledge | Context persistence and retrieval | ShortTermMemory, LongTermMemory, KnowledgeBase |
| Tool Ecosystem | Extensible capabilities for agents | Built-in tools, Skills system, MCP integration |
| Cloud Infrastructure | Production deployment and scaling | CloudAgentEngine, VeFaaS, APIGateway |
| Observability | Monitoring and debugging | OpentelemetryTracer, multiple exporters |
Sources: pyproject.toml1-101 docs/docs/index.md38-146 docs/docs/veadk.md1-111
VeADK extends Google ADK rather than replacing it, maintaining full compatibility with the ADK ecosystem while adding Volcengine-specific integrations. The framework inherits ADK's session management, event streaming, and agent composition patterns.
Sources: pyproject.toml16-19 docs/docs/index.md111-114
Unlike generic agent frameworks, VeADK treats Volcengine services as first-class citizens, providing:
Runner media handlingSources: docs/docs/index.md148-180 docs/docs/configuration.md1-164
VeADK abstracts storage and services through pluggable backends, allowing developers to start with local/in-memory implementations and swap to production backends without code changes:
| Component | Development Backend | Production Backends |
|---|---|---|
| Short-term Memory | local (in-memory) | mysql, postgresql, sqlite |
| Long-term Memory | local (in-memory) | viking, mem0, opensearch, redis |
| Knowledge Base | local (in-memory) | viking, opensearch, redis, tosvector |
Sources: docs/docs/memory/short-term-memory.md152-162 docs/docs/memory/long-term-memory.md18-30
The following diagram maps VeADK's conceptual architecture to actual Python classes and modules:
Sources: pyproject.toml47-49 Diagram 1 from system architecture overview, Diagram 2 from data flow overview
A typical VeADK project generated by veadk create has the following structure:
your_project/
├── __init__.py # Module exports
├── .env # Environment variables (MODEL_AGENT_API_KEY, etc.)
├── agent.py # Agent definition with root_agent instance
├── config.yaml # Optional: structured configuration
└── deploy.py # Generated deployment script (CloudAgentEngine)
The framework itself is organized as:
veadk/
├── agent/ # Agent and Runner implementations
├── memory/ # ShortTermMemory, LongTermMemory
├── knowledgebase/ # KnowledgeBase and backends
├── tools/
│ ├── builtin_tools/ # web_search, image_generate, etc.
│ └── skills/ # Skills system
├── integrations/
│ ├── ve_faas/ # VeFaaS deployment
│ ├── ve_api_gateway/ # API Gateway management
│ └── ve_tos/ # TOS object storage
├── tracing/ # OpenTelemetry instrumentation
├── cli/ # CLI commands
├── auth/ # Authentication and credentials
└── configs/ # Pydantic configuration models
Sources: docs/docs/quickstart.md99-107 pyproject.toml87-95
The Agent class is the primary interface for defining agent behavior, while Runner orchestrates execution:
Key code references:
Agent initialization: veadk/agent/ (extends google.adk.agent.llmagent.LLMAgent)Runner.run() method: veadk/agent/ (wraps google.adk.runner)google.adk.session.SessionServiceAgent(auto_save_session=True, long_term_memory=...)Sources: Diagram 2 from system architecture overview, docs/docs/memory/long-term-memory.md424-442
VeADK implements a two-tier memory architecture:
Short-term Memory (Session Context):
ShortTermMemory wrapper around google.adk.session.SessionServicelocal, mysql, postgresql, sqliteLlmEventSummarizerLong-term Memory (Cross-session Persistence):
veadk.memory.LongTermMemoryviking (VikingDB), mem0, opensearch, redisAgent.auto_save_session triggers add_session_to_memory()Sources: docs/docs/memory/short-term-memory.md1-269 docs/docs/memory/long-term-memory.md1-442
The KnowledgeBase class provides retrieval-augmented generation capabilities:
Backend implementations:
VikingDBKnowledgeBackend: TOS upload + VikingDB vector storage (veadk/knowledgebase/backends/vikingdb_knowledge_backend.py67-657)OpensearchKnowledgeBackend: OpenSearch integrationRedisKnowledgeBackend: Redis with RedisearchTOSVectorKnowledgeBackend: TOS-based vector storageInMemoryKnowledgeBackend: Local developmentSources: veadk/knowledgebase/backends/vikingdb_knowledge_backend.py1-657 veadk/knowledgebase/backends/base_backend.py1-73
VeADK provides production-ready tools integrated with Volcengine services:
| Tool | Purpose | Integration | Code Path |
|---|---|---|---|
web_search | Web search via Volcengine API | Ark Fusion Search | builtin_tools/web_search.py |
vesearch | Agent-based search | VeSearch Agent | builtin_tools/vesearch.py |
image_generate | Text-to-image generation | Ark Seedream models | builtin_tools/image_generate.py |
video_generate | Text-to-video generation | Ark Seedance models | builtin_tools/video_generate.py |
run_code | Code execution sandbox | AgentKit Tools | builtin_tools/run_code.py |
lark | Feishu/Lark integration | Lark MCP Server | builtin_tools/lark.py |
las | Data lake operations | LAS MCP Server | builtin_tools/las.py |
vod_tools | Video editing | VOD MCP Server | builtin_tools/vod.py |
Example tool usage pattern:
Sources: docs/docs/tools/builtin.md1-693 veadk/tools/builtin_tools/vod.py1-72
VeADK supports three execution modes for skills:
Skills are defined in SKILL.md format and loaded from:
agent.load_skills("./my_skills")SKILL_SPACE_IDTOS_SKILLS_DIRSources: Referenced in Diagram 1 system architecture overview, tool ecosystem section
VeADK implements a three-tier credential resolution hierarchy:
The get_credential_from_vefaas_iam() function automatically retrieves temporary credentials when running in VeFaaS, eliminating the need for hardcoded secrets in deployed agents.
Sources: veadk/knowledgebase/backends/vikingdb_knowledge_backend.py601-619 authentication and security documentation references
The CloudAgentEngine orchestrates the complete deployment workflow:
Key deployment components:
CloudAgentEngine.deploy(): Main orchestration (veadk/integrations/ve_faas/cloud_agent_engine.py)VeFaaS.deploy(): Function deployment with code upload (veadk/integrations/ve_faas/ve_faas.py)VeFaaS.deploy_image(): Container-based deploymentAPIGateway: Resource topology management (Gateway → Service → Upstream → Route)VeTOS: Document/file storage with signed URLs (veadk/integrations/ve_tos/ve_tos.py)Sources: Diagram 3 from system architecture overview, cloud deployment section
VeADK implements OpenTelemetry-based observability with multiple export targets:
Configuration via environment variables:
OBSERVABILITY_OPENTELEMETRY_APMPLUS_ENDPOINT, OBSERVABILITY_OPENTELEMETRY_APMPLUS_API_KEYOBSERVABILITY_OPENTELEMETRY_COZELOOP_ENDPOINT, OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEYOBSERVABILITY_OPENTELEMETRY_TLS_ENDPOINT, OBSERVABILITY_OPENTELEMETRY_TLS_SERVICE_NAMESources: Diagram 5 from system architecture overview, docs/docs/configuration.md96-114
VeADK supports Agent-to-Agent communication via the A2A protocol:
Authentication methods:
Authorization: Bearer {token}?token={token} (default for VeFaaS deployments)Sources: docs/docs/agent/agent-to-agent.md1-272
VeADK uses a three-tier configuration hierarchy (highest to lowest precedence):
.env file: Loaded from project rootconfig.yaml: Structured configuration fileCommon configuration patterns:
Default constants (when not specified):
DEFAULT_MODEL_AGENT_NAME: doubao-seed-1-6-251015DEFAULT_MODEL_AGENT_API_BASE: https://ark.cn-beijing.volces.com/api/v1/DEFAULT_TOS_BUCKET_NAME: veadk-default-bucketSources: docs/docs/configuration.md1-164 veadk/version.py1-16
The quickest path to a working agent:
For production deployment:
The generated deploy.py uses CloudAgentEngine to orchestrate:
_try_launch_fastapi_server()For detailed guides:
Refresh this wiki
This wiki was recently refreshed. Please wait 1 day to refresh again.