Volcengine agent development kit, integrations with Volcengine cloud services.
Project description
Volcengine Agent Development Kit
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.
Installation
From PyPI
pip install veadk-python
# install extensions
pip install veadk-python[extensions]
Build from source
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 .
Configuration
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 here
You can refer to the config instructions for more details.
Have a try
Enjoy a minimal agent from VeADK:
from veadk import Agent
import asyncio
agent = Agent()
res = asyncio.run(agent.run("hello!"))
print(res)
Feishu bot channel
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.
A2UI (agent-driven UI)
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 catalog
A 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:8000
To 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 build
Point 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 agent
Enterprises 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.
Command line tools
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
Contribution
Before making your contribution to our repository, please install and config the pre-commit linter first.
pip install pre-commit
pre-commit install
Before 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 16
Security and privacy
This project takes security seriously. For vulnerability reporting and supported versions, see SECURITY.md
Contact with us
Join our discussion group by scanning the QR code below:
License
This project is licensed under the Apache 2.0 License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file veadk_python-0.5.39.tar.gz.
File metadata
- Download URL: veadk_python-0.5.39.tar.gz
- Upload date:
- Size: 58.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f6737785ffc4a9766028c0083e9626753a8bc33d4adfc7f703f94a80b9b0b0a
|
|
| MD5 |
a47e908487646f8ae0e542f37f6a1fc8
|
|
| BLAKE2b-256 |
83e6c3ddf9c6ce8bc4fe03ae5be28677c46849a218cefcca3ad71c29a09e1bcb
|
File details
Details for the file veadk_python-0.5.39-py3-none-any.whl.
File metadata
- Download URL: veadk_python-0.5.39-py3-none-any.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9450f16bd7431bff1dbc82886b2f4259c35bb7d01f2fb670656fbc23a397b6a4
|
|
| MD5 |
75940623aa59fc37090d879dd7027168
|
|
| BLAKE2b-256 |
55988b8aef8c4823acddd2307a3907fe4832ce9184b774c9865e8c5192110c22
|