Metadata-Version: 2.4
Name: veadk-python
Version: 0.2.0
Summary: Volcengine agent development kit, integrations with Volcengine cloud services.
Author-email: Yaozheng Fang <fangyozheng@gmail.com>, Guodong Li <cu.eric.lee@gmail.com>, Zhi Han <sliverydayday@gmail.com>, Meng Wang <mengwangwm@gmail.com>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic-settings>=2.10.1
Requires-Dist: a2a-sdk==0.2.12
Requires-Dist: deprecated>=1.2.18
Requires-Dist: google-adk==1.8.0
Requires-Dist: litellm>=1.74.3
Requires-Dist: loguru>=0.7.3
Requires-Dist: openinference-instrumentation-google-adk>=0.1.1
Requires-Dist: opentelemetry-exporter-otlp>=1.35.0
Requires-Dist: opentelemetry-instrumentation-logging>=0.56b0
Requires-Dist: wrapt>=1.17.2
Provides-Extra: database
Requires-Dist: opensearch-py==2.8.0; extra == "database"
Requires-Dist: redis>=6.2.0; extra == "database"
Requires-Dist: pymysql>=1.1.1; extra == "database"
Requires-Dist: volcengine>=1.0.193; extra == "database"
Requires-Dist: tos>=2.8.4; extra == "database"
Provides-Extra: eval
Requires-Dist: prometheus-client>=0.22.1; extra == "eval"
Requires-Dist: deepeval>=3.2.6; extra == "eval"
Requires-Dist: google-adk[eval]; extra == "eval"
Provides-Extra: cli
Requires-Dist: volcengine-python-sdk==4.0.3; extra == "cli"
Requires-Dist: typer>=0.16.0; extra == "cli"
Requires-Dist: streamlit==1.46.1; extra == "cli"
Requires-Dist: agent-pilot-sdk>=0.0.9; extra == "cli"
Provides-Extra: dev
Requires-Dist: pre-commit>=4.2.0; extra == "dev"
Requires-Dist: pytest>=8.4.1; extra == "dev"
Requires-Dist: pytest-asyncio>=1.0.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.8.0; extra == "dev"
Dynamic: license-file

<p align="center">
    <img src="assets/images/logo.png" alt="Volcengine Agent Development Kit Logo" width="50%">
</p>

# Volcengine Agent Development Kit

[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
[![Deepwiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/volcengine/veadk-python)

An open-source kit for agent development, integrated the powerful capabilities of Volcengine.

For more details, see our [documents](https://volcengine.github.io/veadk-python/).

## Installation

We use `uv` to build this project ([how-to-install-uv](https://docs.astral.sh/uv/getting-started/installation/)).

```bash
git clone ... # clone repo first

cd veadk-python

uv venv --python 3.10

# 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:

```yaml
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](https://volcengine.github.io/veadk-python/installation.html#%E9%85%8D%E7%BD%AE) for more details.

## Have a try

Enjoy a minimal agent from VeADK:

```python
from veadk import Agent
import asyncio

agent = Agent()

res = asyncio.run(agent.run("hello!"))
print(res)
```

## 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](https://www.volcengine.com/product/vefaas) (you can use `veadk init` to init a demo project first)
- `veadk prompt`: otpimize the system prompt of your agent by [PromptPilot](https://promptpilot.volcengine.com)

## Contribution

Before making your contribution to our repository, please install and config the `pre-commit` linter first.

```bash
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:

```bash
pytest -n 16
```

## License

This project is licensed under the [Apache 2.0 License](./LICENSE).
