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)Use the shared AgentKit application factory when your project needs AgentKit APIs, VeADK's bundled Web UI, health checks, and agent-topology endpoints. This keeps platform routes and lifecycle code out of your agent module:
from veadk import Agent
from veadk.integrations.agentkit import create_agentkit_app
root_agent = Agent(name="customer_support")
app = create_agentkit_app(root_agent)See examples/generated_agentkit_project
for a complete generated project.
The Agent Server metadata endpoint reports the root Agent's name, description, model, sub-Agents, tools, skills, and mounted component summaries. Each Runtime row in Studio has explicit connect and info actions; the info panel's tabs switch between this live metadata and control-plane information without exposing prompts or credentials. The same metadata advertises mounted smart-search sources, so Studio can disable unavailable sources up front and query the Agent's web-search tool, KnowledgeBase, or long-term memory without exposing component credentials. Studio also provides an isolated Insight Sandbox for temporary Codex conversations. It reuses a dedicated AgentKit CodeEnv tool, creates a fresh user-owned Sandbox session, and deletes that session on exit without adding the conversation to normal Studio history. Reloading may create another temporary session; AgentKit reclaims abandoned sessions automatically when their TTL ends. When configuring skills, Studio can also browse account-scoped AgentKit Skill Spaces and their paginated skill lists by region and project. These requests are signed on the server, so browser clients never receive Volcengine credentials.
The Studio deployment flow lists Feishu, knowledge-base, short-/long-term memory, and observability settings in their feature sections. Values entered there are mirrored in the deployment environment-variable summary and converted to VeADK runtime environment variables only when deploying; secrets are not written to generated source or exported YAML. For multi-instance runtimes, use a database-backed short-term memory store so sessions remain available across instances.
When a cloud image build fails from the bundled Web UI, the deployment error includes a credential-safe excerpt from the build log so dependency and Dockerfile failures can be diagnosed directly.
When Studio connects to an AgentKit Runtime, users can rate completed answers
with like/dislike controls. Feedback is written server-side to per-Agent
{agent_name}_good_case and {agent_name}_bad_case evaluation sets, with
stable item keys so repeated clicks and rating changes remain idempotent.
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.
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.

