Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions docs/docs/agent/agent-to-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ title: A2A Agent
| **共享内存或上下文** | 当 Sub Agent 需要直接访问主 Agent 的内部状态或共享内存以提高效率时,A2A 的网络开销与序列化/反序列化会适得其反 |
| **简单的辅助函数** |对于无需独立部署或复杂状态管理的小型复用逻辑,直接在同一 Agent 中编写函数或类,通常比拆分为独立的 A2A Agent 更合适 |

## veADK 中的 A2A 工作流: <!-- 标题序号: 3 -->
**veADK** 简化了基于 A2A 协议构建并连接 Agent 的过程。下面是一个直观的工作流概览:
## VeADK 中的 A2A 工作流: <!-- 标题序号: 3 -->
**VeADK** 简化了基于 A2A 协议构建并连接 Agent 的过程。下面是一个直观的工作流概览:

1. **对 Agent 开放访问(Exposing):** 从现有的 veADK Agent 入手,将其转化为一个 A2AServer, 把它变成能让其他 Agent 可访问的形式。A2AServer 可以视作为 Agent 搭建的一个 Web 服务,其他 Agent 可以通过它向您的 Agent 发送请求。
2. **连接到开放访问的 Agent(Consuming):**在另一个 Agent 中(可能运行于同一台机器,也可能运行于不同机器),可使用名为 `RemoteVeAgent` 的 veADK 组件,作为客户端访问上一步创建的 A2AServer,`RemoteVeAgent` 会在后台处理网络通信、鉴权和数据格式等复杂问题。
1. **对 Agent 开放访问(Exposing):** 从现有的 VeADK Agent 入手,将其转化为一个 A2AServer, 把它变成能让其他 Agent 可访问的形式。A2AServer 可以视作为 Agent 搭建的一个 Web 服务,其他 Agent 可以通过它向您的 Agent 发送请求。
2. **连接到开放访问的 Agent(Consuming):**在另一个 Agent 中(可能运行于同一台机器,也可能运行于不同机器),可使用名为 `RemoteVeAgent` 的 VeADK 组件,作为客户端访问上一步创建的 A2AServer,`RemoteVeAgent` 会在后台处理网络通信、鉴权和数据格式等复杂问题。

**veADK** 对网络层进行了抽象封装,使分布式多 Agent 系统使用体验接近本地系统, 下图展示了一个完整的 **A2A 系统拓扑**:
**VeADK** 对网络层进行了抽象封装,使分布式多 Agent 系统使用体验接近本地系统, 下图展示了一个完整的 **A2A 系统拓扑**:
```mermaid
flowchart LR
A[Root Agent<br/>(需要访问其它 Agent)<br/>]
Expand All @@ -48,7 +48,7 @@ flowchart LR
end
A <-->RemoteVeAgent
B[您的 Agent 代码<br/>(开放访问)<br/>]
C[A2A Server<br/>(veADK 组件)<br/>]
C[A2A Server<br/>(VeADK 组件)<br/>]
C -->B
RemoteVeAgent <-->|网络请求交互|C
```
Expand Down Expand Up @@ -150,7 +150,7 @@ sequenceDiagram
```

## A2A Client 鉴权参数
veADK 的 A2A 鉴权机制提供了灵活的认证选项,支持标准的 Bearer token 认证和查询参数认证两种常见模式,同时也支持无认证的公开服务场景,能够满足不同的安全需求
VeADK 的 A2A 鉴权机制提供了灵活的认证选项,支持标准的 Bearer token 认证和查询参数认证两种常见模式,同时也支持无认证的公开服务场景,能够满足不同的安全需求
### Querystring 方式
- 将认证令牌作为 URL 查询参数 token={auth_token} 传递
- 通过设置 auth_method 为 "querystring" 来启用
Expand Down Expand Up @@ -184,7 +184,7 @@ veADK 的 A2A 鉴权机制提供了灵活的认证选项,支持标准的 Beare
![火山 veFaaS 应用中的认证信息](../assets/images/agents/a2a_querystring.png)

### 自定义 HTTP 客户端
veADK中,主要通过 RemoteVeAgent 类来实现自定义 HTTP 客户端的配置,它提供了一个 httpx_client 参数,允许您传入预配置的 httpx.AsyncClient 实例。这使得您可以灵活地控制 HTTP 请求的各种参数,如代理设置、超时控制、连接池管理等,从而更好地适应不同的网络环境和需求。
VeADK中,主要通过 RemoteVeAgent 类来实现自定义 HTTP 客户端的配置,它提供了一个 httpx_client 参数,允许您传入预配置的 httpx.AsyncClient 实例。这使得您可以灵活地控制 HTTP 请求的各种参数,如代理设置、超时控制、连接池管理等,从而更好地适应不同的网络环境和需求。
#### 您可以通过运参考以下示例代码设置创建自定义的 HTTP 客户端,可配置各种 HTTP 客户端参数,如:
- 超时设置
- 代理配置
Expand Down
Binary file added docs/docs/assets/images/uv_demo.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions docs/docs/deploy/deploy-agentkit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: 部署到 AgentKit
---

详见 [部署到 AgentKit 平台](https://volcengine.github.io/agentkit-sdk-python/content/2.agentkit-cli/1.overview.html#%E4%B8%89%E7%A7%8D%E9%83%A8%E7%BD%B2%E6%A8%A1%E5%BC%8F)
73 changes: 43 additions & 30 deletions docs/docs/deploy.md → docs/docs/deploy/deploy-vefaas.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,39 @@
---
title: 部署到火山引擎
title: 部署到 VeFaaS
---

本教程将介绍如何将您的 Agent 部署到火山引擎 VeFaaS 函数服务。

## 前置准备

在开始部署之前,请确保你已完成以下准备工作:

1. **创建火山引擎账号**:你首先需要一个有效的火山引擎账号。
2. **开通相关云服务**:为了成功部署和访问 Veadk 应用,你需要在火山引擎控制台中激活以下服务。这些通常是首次访问服务时根据引导完成的一次性操作。
* [**函数服务 (veFaaS)**](https://console.volcengine.com/vefaas):用于托管和运行你的 Agent 应用代码。
* [**API 网关 (API Gateway)**](https://console.volcengine.com/veapig):用于创建和管理 API,使你的 Agent 应用能够从外部访问。
1. **创建火山引擎账号**:你首先需要一个有效的火山引擎账号。
2. **开通相关云服务**:为了成功部署和访问 Veadk 应用,你需要在火山引擎控制台中激活以下服务。这些通常是首次访问服务时根据引导完成的一次性操作。
* [**函数服务 (veFaaS)**](https://console.volcengine.com/vefaas):用于托管和运行你的 Agent 应用代码。
* [**API 网关 (API Gateway)**](https://console.volcengine.com/veapig):用于创建和管理 API,使你的 Agent 应用能够从外部访问。

在部署到火山引擎前,你需要提前在火山引擎控制台开通 [函数服务](https://console.volcengine.com/vefaas) 和 [API网关](https://console.volcengine.com/veapig) 服务。如果你事先已开通过服务,可以忽略该环节。

### 首次开通服务授权

如果你是首次使用上述服务,控制台会引导你完成必要的 IAM (Identity and Access Management) 角色授权。

1. 访问 [函数服务](https://console.volcengine.com/vefaas) 或 [API 网关](https://console.volcengine.com/veapig) 的控制台页面。
2. 在页面弹出的授权提示中,单击 **立即授权**。
3. 授权成功后,系统会自动跳转至对应服务的控制台主页,表明服务已成功开通。
1. 访问 [函数服务](https://console.volcengine.com/vefaas) 或 [API 网关](https://console.volcengine.com/veapig) 的控制台页面。
2. 在页面弹出的授权提示中,单击 **立即授权**。
3. 授权成功后,系统会自动跳转至对应服务的控制台主页,表明服务已成功开通。

> ⚠️ **注意**:此授权步骤是必需的,它授予函数服务和 API 网关访问其他云资源的权限,以确保应用能够正常部署和运行。


### 函数服务

1. 首次进入 [函数服务](https://console.volcengine.com/vefaas) 页面,控制台将会提醒你进行IAM角色的开通,请点击【立即授权】同意角色开通。
![IAM 角色开通](./assets/images/deploy/vefaas_attach_role.png)
2. 点击后,控制台将会显示你已完成授权。几秒后将会自动跳转会 [函数服务](https://console.volcengine.com/vefaas) 控制台。当展示如下页面时,[函数服务](https://console.volcengine.com/vefaas) 服务即开通成功。
![IAM 角色开通](./assets/images/deploy/vefaas_index.png)

### API网关

1. 首次进入 [API网关](https://console.volcengine.com/veapig) 页面,控制台将会提醒你进行IAM角色的开通,请点击【立即授权】同意角色开通。
![IAM 角色开通](./assets/images/deploy/veapig_attach_role.png)
2. 点击后,控制台将会显示你已完成授权。几秒后将会自动跳转会 [API网关](https://console.volcengine.com/veapig) 控制台。当展示如下页面时,[API网关](https://console.volcengine.com/veapig) 服务即开通成功。
Expand All @@ -37,9 +43,9 @@ title: 部署到火山引擎

Veadk 提供多种部署方式以适应不同的开发工作流:

* **通过命令行工具 (CLI) 部署**:最快捷的方式,适合快速创建、部署和迭代 Agent 应用。
* **通过 Python SDK 部署**:允许你通过编写代码以编程方式管理部署流程,适合集成到自动化脚本或现有项目中。
* **设置持续交付 (CI/CD)**:与代码仓库(如 GitHub)集成,实现代码提交后自动构建和部署,是团队协作和生产环境的最佳实践。
* **通过命令行工具 (CLI) 部署**:最快捷的方式,适合快速创建、部署和迭代 Agent 应用。
* **通过 Python SDK 部署**:允许你通过编写代码以编程方式管理部署流程,适合集成到自动化脚本或现有项目中。
* **设置持续交付 (CI/CD)**:与代码仓库(如 GitHub)集成,实现代码提交后自动构建和部署,是团队协作和生产环境的最佳实践。

接下来,我们将详细介绍每种部署方式的操作步骤。

Expand Down Expand Up @@ -81,16 +87,17 @@ Run python `deploy.py` for deployment on Volcengine FaaS platform.

**参数说明**:

* **Local directory name**:项目在本地创建的目录名称。
* **Volcengine FaaS application name**:你的应用在火山引擎函数服务平台的名称。**注意**:名称中不能包含下划线 `_`。
* **Volcengine API Gateway ...**:API 网关相关的实例、服务和上游名称。这些为**可选**参数。如果留空,Veadk 会在部署时自动创建和关联相应的网关资源。
* **Choose a deploy mode**:选择部署模式。
* `A2A/MCP Server`:标准的后端 Agent 服务模式。
* `VeADK Web / Google ADK Web`:如果你需要一个 Web 交互界面,请选择此项。
* **Local directory name**:项目在本地创建的目录名称。
* **Volcengine FaaS application name**:你的应用在火山引擎函数服务平台的名称。**注意**:名称中不能包含下划线 `_`。
* **Volcengine API Gateway ...**:API 网关相关的实例、服务和上游名称。这些为**可选**参数。如果留空,Veadk 会在部署时自动创建和关联相应的网关资源。
* **Choose a deploy mode**:选择部署模式。
* `A2A/MCP Server`:标准的后端 Agent 服务模式。
* `VeADK Web / Google ADK Web`:如果你需要一个 Web 交互界面,请选择此项。

项目初始化完成后,你可以在生成的 `deploy.py` 文件中随时修改这些配置。

生成后的项目结构如下:

```shell
veadk-cloud-proj
├── __init__.py
Expand All @@ -112,9 +119,9 @@ veadk-cloud-proj

部署前,你需要配置必要的环境变量,特别是访问火山引擎所需的身份凭证。

1. 在项目根目录下,将 `config.yaml.example` 文件复制一份并重命名为 `config.yaml`。
2. 编辑 `config.yaml` 文件,填入你的火山引擎访问密钥 (Access Key 和 Secret Key)。
3. 如果是新建的火山账号,还需确认是否已经授权给`ServerlessApplicationRole`角色。进入[创建应用页面](https://console.volcengine.com/vefaas/region:vefaas+cn-beijing/application/create?templateId=67f7b4678af5a6000850556c)点击[一键授权]即可。
1. 在项目根目录下,将 `config.yaml.example` 文件复制一份并重命名为 `config.yaml`。
2. 编辑 `config.yaml` 文件,填入你的火山引擎访问密钥 (Access Key 和 Secret Key)。
3. 如果是新建的火山账号,还需确认是否已经授权给`ServerlessApplicationRole`角色。进入[创建应用页面](https://console.volcengine.com/vefaas/region:vefaas+cn-beijing/application/create)点击[一键授权]即可。
![一键授权](./assets/images/deploy/add_permission.png)

```yaml
Expand All @@ -141,13 +148,15 @@ Test message: How is the weather like in Beijing?
```

### 方式二:部署现有项目

如果你已经有一个本地开发的 Agent 项目,可以使用 `veadk deploy` 命令将其快速部署到火山引擎函数服务平台。

#### 1. 项目准备

在执行部署前,请确保你的项目满足以下结构要求:

* 项目根目录下必须包含一个 `agent.py` 文件,且该文件中定义了一个全局变量 `root_agent`。
* 项目根目录下必须包含一个 `__init__.py` 文件,且该文件中包含了 `from . import agent` 语句。
* 项目根目录下必须包含一个 `agent.py` 文件,且该文件中定义了一个全局变量 `root_agent`。
* 项目根目录下必须包含一个 `__init__.py` 文件,且该文件中包含了 `from . import agent` 语句。

#### 2. 执行部署

Expand All @@ -173,8 +182,8 @@ veadk deploy --vefaas-app-name 「YourAgentAppName}
| --use-adk-web | FLAG | 设置后将会在云端启动 web,否则为 A2A / MCP 模式 |
| ---path | 字符串 | 本地项目路径,默认为当前目录 |


## 通过 Python SDK 部署

对于希望将部署流程集成到自动化脚本或现有代码库中的开发者,Veadk 提供了强大的 Python SDK。你可以通过 `CloudAgentEngine` 类以编程方式完成应用的部署、更新和删除。

### 1. 部署 Agent 应用
Expand Down Expand Up @@ -265,8 +274,10 @@ print(f"Agent response: {response}")
```

#### 更新应用代码

当你本地的 Agent 代码有更新时,可以使用 `update_function_code` 方法来更新已部署的应用,而无需重新创建一个新应用。
> ⚠️ **注意**:此操作只会更新函数的代码和配置,应用原有的访问端点 (Endpoint) 会保持不变。

```python
from veadk.cloud.cloud_agent_engine import CloudAgentEngine

Expand All @@ -279,8 +290,8 @@ updated_cloud_app = engine.update_function_code(
)

# 可以使用updated_cloud_app.vefaas_endpoint访问您的项目

```

#### 删除应用

如果你需要下线并删除一个已部署的应用,可以使用 `remove` 方法。
Expand All @@ -304,17 +315,19 @@ engine.remove(app_name="my-python-agent")
Confirm delete cloud app my-python-agent? (y/N): y
```


## 验证与调用应用

应用部署成功后,你可以通过火山引擎控制台验证部署状态,并使用不同协议与你的 Agent 服务进行交互。

### 在控制台验证部署

1. 登录 [火山引擎函数服务 (veFaaS) 控制台](https://console.volcengine.com/vefaas)。
2. 在左侧导航栏中,选择 **我的应用**。
1. 在应用列表中,你应该能看到你刚刚部署的应用。你可以单击应用名称进入详情页,查看其配置、日志、监控和访问端点等信息。
3. 在应用列表中,你应该能看到你刚刚部署的应用。你可以单击应用名称进入详情页,查看其配置、日志、监控和访问端点等信息。
![部署完成](./assets/images/deploy/deploy_agent.png)

### 调用方法

部署完成后,Veadk Agent 服务支持通过两种标准协议进行调用:A2A (Agent-to-Agent) 和 MCP (Meta-protocol for Calling Plugins)。

> **关于 API 网关认证**:
Expand All @@ -324,9 +337,9 @@ Confirm delete cloud app my-python-agent? (y/N): y

#### 1. 获取认证凭证 (Key Auth Token)

1. 登录 [API 网关控制台](https://console.volcengine.com/veapig)。
2. 在左侧导航栏中,选择 **消费者管理**。
3. 找到与你的应用关联的消费者,并复制其 **Key Auth Token**。
1. 登录 [API 网关控制台](https://console.volcengine.com/veapig)。
2. 在左侧导航栏中,选择 **消费者管理**。
3. 找到与你的应用关联的消费者,并复制其 **Key Auth Token**。

#### 2. 通过 A2A 协议调用

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ veadk rl run --platform lightning --server
#### 原理说明

生成后的项目结构如下,其中核心文件包括:

- agent_client: `examples/*/*_agent.py` 中定义了agent的rollout逻辑和reward规则
- training_server: `examples/*/train.py` 定义了训练相关参数,用于启动训练服务器

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/observation/ve-tracing.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ python agent.py

### 准备工作

#### veADK代码中创建tracing project和实例
#### VeADK代码中创建tracing project和实例

```yaml title="config.yaml"
model:
Expand Down
32 changes: 28 additions & 4 deletions docs/docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,35 @@ title: 快速开始

## 安装

您可以从 PyPI 中安装最新版的 VeADK:
=== "✨ 使用 UV 安装"

```bash
pip install veadk-python
```
我们推荐您使用 `uv` 包管理工具来安装 VeADK,您可以遵循以下步骤:

```bash
# 使用 `uv` 来创建一个基于 Python 3.10 版本的虚拟环境
uv venv --python 3.10

# 激活 `uv` 环境
source .venv/bin/activate
```

环境激活后,您可以看到您的命令行开头会有括号标注的虚拟环境名称(通常为您的所在目录名称):

![img](./assets/images/uv_demo.jpeg)

您可以使用已经激活的虚拟环境来安装 VeADK:

```bash
uv pip install veadk-python
```

=== "使用 PIP 安装"

您可以直接使用 `pip` 命令从 PyPI 中安装最新版的 VeADK:

```bash
pip install veadk-python
```

您可以通过运行如下命令来检测您的 VeADK 是否安装成功:

Expand Down
6 changes: 3 additions & 3 deletions docs/docs/tools/builtin.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# 内置工具使用指南

本文档旨在说明如何有效利用 veADK 内置工具(BuiltinTools)。这些工具提供了即用型功能(如网页搜索或代码执行器),赋予 Agent 通用能力。例如,需要从网络检索信息的 Agent 可直接使用 **web_search** 工具,无需额外配置。
本文档旨在说明如何有效利用 VeADK 内置工具(BuiltinTools)。这些工具提供了即用型功能(如网页搜索或代码执行器),赋予 Agent 通用能力。例如,需要从网络检索信息的 Agent 可直接使用 **web_search** 工具,无需额外配置。

## 使用方法

Expand Down Expand Up @@ -56,7 +56,7 @@

## 工具列表

veADK 集成了以下火山引擎工具:
VeADK 集成了以下火山引擎工具:

| 工具名称 | 功能说明 | 导入路径 |
| :--- | :--- | :--- |
Expand Down Expand Up @@ -606,7 +606,7 @@ veADK 集成了以下火山引擎工具:

### AgentKit 沙箱工具(Tools)

AgentKit 沙箱工具提供了多种智能体在执行任务中需要的运行环境工具,支持快速集成与便捷调用,同时veADK提供了更多内置工具
AgentKit 沙箱工具提供了多种智能体在执行任务中需要的运行环境工具,支持快速集成与便捷调用,同时VeADK提供了更多内置工具
一体化工具集包含 Browser、Terminal、Code 运行环境,支持自动根据任务切换。

**创建沙箱** 按以下步骤操作:
Expand Down
11 changes: 8 additions & 3 deletions docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,10 @@ nav:
- 在火山引擎观测: observation/ve-tracing.md
- 埋点与字段规范: observation/span-attributes.md
- 部署与持续优化:
- 部署到火山引擎: deploy.md
- 评测: evaluation.md
- 持续优化: optimization.md
- 部署到 AgentKit: deploy/deploy-agentkit.md
- 部署到 VeFaaS: deploy/deploy-vefaas.md
- 评测: deploy/evaluation.md
- 持续优化: deploy/optimization.md
- 命令行工具: cli.md
- 参考:
- API References: references/api.md
Expand Down Expand Up @@ -121,6 +122,10 @@ plugins:
- memory/long-term-memory.md
- observation/tracing.md
- observation/ve-tracing.md
- deploy/deploy-vefaas.md
- deploy/deploy-agentkit.md
- deploy/evaluation.md
- deploy/optimization.md

extra:
social:
Expand Down