An open-source kit for agent development, integrated the powerful capabilities of Volcengine.
For more details, see our documents.
A tutorial is available by Jupyter Notebook, or open it in Google Colab directly.
pip install veadk-python
# install extensions
pip install veadk-python[extensions]We use uv to build this project (how-to-install-uv).
git clone ... # clone repo first
cd veadk-python
# create a virtual environment with python 3.12
uv venv --python 3.12
# only install necessary requirements
uv sync
# or, install extra requirements
# uv sync --extra database
# uv sync --extra eval
# uv sync --extra cli
# or, directly install all requirements
# uv sync --all-extras
# install veadk-python with editable mode
uv pip install -e .We recommand you to create a config.yaml file in the root directory of your own project, VeADK is able to read it automatically. For running a minimal agent, you just need to set the following configs in your config.yaml file:
model:
agent:
provider: openai
name: doubao-seed-1-6-250615
api_base: https://ark.cn-beijing.volces.com/api/v3/
api_key: # <-- set your Volcengine ARK api key hereYou can refer to the config instructions for more details.
Enjoy a minimal agent from VeADK:
from veadk import Agent
import asyncio
agent = Agent()
res = asyncio.run(agent.run("hello!"))
print(res)VeADK now provides veadk.extensions.FeishuChannelExtension for bridging a Feishu bot with a Runner. It maps union_id to user_id, and thread_id / chat_id to session_id, so VeADK memory and tracing can work directly in Feishu conversations.
from veadk import Agent, Runner
from veadk.extensions import FeishuChannelExtension
agent = Agent()
runner = Runner(agent=agent, app_name="feishu_demo")
channel = FeishuChannelExtension(runner=runner)Configure credentials with TOOL_FEISHU_CHANNEL_APP_ID and TOOL_FEISHU_CHANNEL_APP_SECRET, or in config.yaml under tool.feishu_channel.
VeADK integrates Google's A2UI, letting an agent reply with
declarative UI (cards, rows, forms) instead of plain text. A client renders the
UI with native components. Enable it with a single flag (requires the optional
a2ui-agent-sdk dependency: pip install veadk-python[a2ui]):
from veadk import Agent
agent = Agent(enable_a2ui=True) # uses the bundled "basic" component catalogA bundled React web UI renders A2UI over the standard ADK API server. The built
UI ships inside the package (veadk/webui, produced by npm run build), so
installed users can launch it directly:
veadk frontend --agents-dir examples # serve UI + API on http://127.0.0.1:8000To rebuild the UI from source (output goes to veadk/webui, which is committed
so it ships with the wheel):
cd frontend && npm install && npm run buildPoint the agent at a custom component catalog (relative paths resolve against the
agent's directory; absolute paths work too). With no argument it auto-discovers a
catalog.json next to the agent, falling back to the bundled basic catalog:
Agent(enable_a2ui=True, a2ui_catalog="catalog.json") # beside the agentEnterprises extend the component set in two matching halves: a backend catalog
(a catalog.json or a veadk.a2ui.BaseA2UICatalog subclass) and a frontend
renderer directory (frontend/src/a2ui/components/<Name>/). See
frontend/README.md.
VeADK provides several useful command line tools for faster deployment and optimization, such as:
veadk deploy: deploy your project to Volcengine VeFaaS platform (you can useveadk initto init a demo project first)veadk prompt: otpimize the system prompt of your agent by PromptPilotveadk frontend: serve the A2UI web UI together with the ADK agent API server
Before making your contribution to our repository, please install and config the pre-commit linter first.
pip install pre-commit
pre-commit installBefore commit or push your changes, please make sure the unittests are passed ,otherwise your PR will be rejected by CI/CD workflow. Running the unittests by:
pytest -n 16This project takes security seriously. For vulnerability reporting and supported versions, see SECURITY.md
Join our discussion group by scanning the QR code below:
This project is licensed under the Apache 2.0 License.

