已合并
docs: README and introduction #72
张雅晴创建于 4月7日
docs: README and introduction #72
已合并
共 2 个文件变更+244-3
| @@ -1,8 +1,177 @@ | |||
| 1 | -# Agent Runtime | 1 | +# openJiuwen Agent Runtime |
| 2 | 2 | ||
| 3 | -## 项目简介 | 3 | +openJiuwen Agent Runtime(简称 Runtime)是面向 AI Agent 的运行时与部署管理系统,核心目标是将智能体从“开发态”稳定地带到“生产态”。 |
| 4 | + | ||
| 5 | +## 项目定位 | ||
| 6 | + | ||
| 7 | +Runtime 主要解决以下问题: | ||
| 8 | + | ||
| 9 | +- 如何把不同类型的 Agent 统一部署并对外服务; | ||
| 10 | +- 如何在多租户场景下隔离不同用户和空间的运行实例; | ||
| 11 | +- 如何支持多种部署方式(进程、Docker、Kubernetes); | ||
| 12 | +- 如何对运行态 Agent 做生命周期管理(部署、查看、删除、健康检查)。 | ||
| 13 | + | ||
| 14 | +## 核心能力 | ||
| 15 | + | ||
| 16 | +### 1)统一的部署管理 | ||
| 17 | + | ||
| 18 | +Runtime 暴露标准 REST API,可通过配置文件和元数据完成 Agent 部署,支持部署、查询、删除与状态管理。 | ||
| 19 | + | ||
| 20 | +### 2)多部署策略支持 | ||
| 21 | + | ||
| 22 | +Runtime 内置策略化部署能力,支持三种模式: | ||
| 23 | + | ||
| 24 | +- `subprocess`:以独立子进程方式运行 Agent(默认); | ||
| 25 | +- `docker`:以容器方式运行 Agent; | ||
| 26 | +- `k8s`:在 Kubernetes 集群中运行 Agent。 | ||
| 27 | + | ||
| 28 | +### 3)多租户隔离 | ||
| 29 | + | ||
| 30 | +Runtime 支持租户上下文注入(如 `user_id`、`space_id`),用于隔离不同租户的 Agent 资源和操作范围。 | ||
| 31 | + | ||
| 32 | +### 4)可扩展架构 | ||
| 33 | + | ||
| 34 | +Runtime 采用模块化设计,部署策略、Agent 类型、基础能力均可独立扩展,便于在不同业务场景中快速接入新能力。 | ||
| 4 | 35 | ||
| 5 | ## 系统架构 | 36 | ## 系统架构 |
| 6 | 37 | ||
| 7 | -## 快速上手 | 38 | +Runtime 由以下核心模块组成: |
| 39 | + | ||
| 40 | +- **Agent Runtime(总体)**:覆盖从发布、部署到对外调用的全生命周期。 | ||
| 41 | +- **Service(引擎模块,`service/`)**:`AgentApp` / `BaseApp` 封装 FastAPI 与对话面 API(`/query`、`/health`、`/reset_conversation`),承载业务请求。 | ||
| 42 | +- **Management(管理模块,`management/`)**:`DeploymentManager` 与 Deployer(进程、Docker、K8s 等)负责部署策略、实例启停与状态持久化。 | ||
| 43 | +- **Server(运行时服务模块,`server/`)**:暴露管理面 REST(部署与实例查询、删除等)、租户中间件与健康检查;对话在已拉起的 Agent 进程(Service + Applications)内完成。 | ||
| 44 | +- **Foundation(基础服务模块,`foundation/`)**:SQLite / MySQL、可选 Redis、端口与部署目录、虚拟环境、Docker 工具、日志等共用基础能力。 | ||
| 45 | +- **Applications(应用适配模块,`applications/`)**:具体智能体实现与运行支撑(如低码 Agent、工作流 IR 执行),基于 Service,由 Management 拉起为独立进程。 | ||
| 46 | + | ||
| 47 | +## 典型部署流程 | ||
| 48 | + | ||
| 49 | +1. 客户端调用 Runtime 部署接口,提交 Agent 配置; | ||
| 50 | +2. Runtime 根据配置选择部署策略并创建部署记录; | ||
| 51 | +3. 策略执行器完成实例拉起(进程 / 容器 / K8s); | ||
| 52 | +4. Agent 服务启动并暴露标准接口(如 `/query`、`/health`); | ||
| 53 | +5. 业务侧通过 Runtime 或 Agent 地址进行调用与运维管理。 | ||
| 54 | + | ||
| 55 | +## 目录结构 | ||
| 56 | + | ||
| 57 | +```text | ||
| 58 | +agent-runtime/ | ||
| 59 | +├── applications/ # Agent 应用与运行支持 | ||
| 60 | +├── cli/ # CLI 命令行工具 | ||
| 61 | +├── docker/ # Docker 构建文件 | ||
| 62 | +├── foundation/ # 基础库:DB、端口、部署工具等 | ||
| 63 | +├── management/ # 部署管理核心与部署器 | ||
| 64 | +├── server/ # FastAPI 管理服务 | ||
| 65 | +├── service/ # 应用抽象与服务层 | ||
| 66 | +├── scripts/ # 启动与构建脚本 | ||
| 67 | +└── docs/ # 项目文档 | ||
| 68 | +``` | ||
| 69 | + | ||
| 70 | +## 环境要求 | ||
| 71 | + | ||
| 72 | +- Python >= 3.11.4 | ||
| 73 | +- `uv` >= 0.25.x | ||
| 74 | + | ||
| 75 | +## 快速开始 | ||
| 76 | + | ||
| 77 | +### 1) 获取代码 | ||
| 78 | + | ||
| 79 | +```bash | ||
| 80 | +git clone https://gitcode.com/openJiuwen/agent-runtime.git | ||
| 81 | +cd agent-runtime | ||
| 82 | +``` | ||
| 83 | + | ||
| 84 | +### 2) 安装依赖(源码方式) | ||
| 85 | + | ||
| 86 | +```bash | ||
| 87 | +cd server | ||
| 88 | +uv sync | ||
| 89 | +uv pip install -e ../management --force-reinstall | ||
| 90 | +uv pip install -e ../foundation --force-reinstall | ||
| 91 | +``` | ||
| 92 | + | ||
| 93 | +### 3) 配置环境变量 | ||
| 94 | + | ||
| 95 | +在 `server/` 目录下创建 `.env` 文件,填入以下必选配置: | ||
| 96 | + | ||
| 97 | +```bash | ||
| 98 | +# 必选配置 | ||
| 99 | +IP=<你的服务器IP> | ||
| 100 | +LOWCODE_IMAGE=<低码Agent的Docker镜像地址> | ||
| 101 | + | ||
| 102 | +# 可选配置(以下为默认值) | ||
| 103 | +# PORT=8186 | ||
| 104 | +# DB_TYPE=sqlite | ||
| 105 | +# DEPLOY_TYPE=subprocess | ||
| 106 | +# DEPLOY_DIR=/tmp/deploys | ||
| 107 | +# DIST_DIR=/tmp/dist | ||
| 108 | +``` | ||
| 109 | + | ||
| 110 | +完整配置项说明请参考 `docs/zh/2. 配置说明.md`。 | ||
| 111 | + | ||
| 112 | +### 4) 启动服务 | ||
| 113 | + | ||
| 114 | +方式 A:直接启动 FastAPI 服务 | ||
| 115 | + | ||
| 116 | +```bash | ||
| 117 | +uvicorn openjiuwen_runtime.server.main:app --host 0.0.0.0 --port 8186 | ||
| 118 | +``` | ||
| 119 | + | ||
| 120 | +方式 B:运行入口模块 | ||
| 121 | + | ||
| 122 | +```bash | ||
| 123 | +python -m openjiuwen_runtime.server.main | ||
| 124 | +``` | ||
| 125 | + | ||
| 126 | +> 默认监听端口为 `8186`,可通过环境变量 `PORT` 覆盖。 | ||
| 127 | + | ||
| 128 | +## API 概览 | ||
| 129 | + | ||
| 130 | +运行时管理服务默认提供以下管理接口: | ||
| 131 | + | ||
| 132 | +- `GET /health`:服务健康检查 | ||
| 133 | +- `POST /api/v1/agents/deploy`:部署 Agent | ||
| 134 | +- `GET /api/v1/agents`:查询部署列表 | ||
| 135 | +- `GET /api/v1/agents/{deployment_id}`:查询部署详情 | ||
| 136 | +- `DELETE /api/v1/agents/{deployment_id}`:删除部署 | ||
| 137 | + | ||
| 138 | +部署完成后,Agent 应用本身可通过其运行端口提供: | ||
| 139 | + | ||
| 140 | +- `GET /health`:应用健康检查 | ||
| 141 | +- `POST /query`:对话查询(支持流式响应) | ||
| 142 | +- `POST /reset_conversation`:重置会话上下文 | ||
| 143 | + | ||
| 144 | +## 与 openJiuwen Studio 协作 | ||
| 145 | + | ||
| 146 | +在 `agent-studio` 中配置 Runtime 地址后,可直接完成: | ||
| 147 | + | ||
| 148 | +- 智能体一键发布到 Runtime | ||
| 149 | +- 发布后在线对话验证 | ||
| 150 | +- 自动生成 API 调用示例(curl / Python / JavaScript) | ||
| 151 | +- 一键下架并回收运行态实例 | ||
| 152 | + | ||
| 153 | +## 配置说明 | ||
| 154 | + | ||
| 155 | +当前支持的关键配置能力: | ||
| 156 | + | ||
| 157 | +- 运行端口与服务地址配置 | ||
| 158 | +- 数据库类型配置(SQLite / MySQL) | ||
| 159 | +- 部署模式选择(进程;容器与 K8s 持续完善) | ||
| 160 | +- 租户上下文透传与隔离策略 | ||
| 161 | + | ||
| 162 | +详细配置请参考 `docs/zh/2. 配置说明.md`。 | ||
| 163 | + | ||
| 164 | +## 文档导航 | ||
| 165 | + | ||
| 166 | +- 项目介绍:`docs/zh/0. 项目介绍.md` | ||
| 167 | +- 快速开始:`docs/zh/1. 快速开始.md` | ||
| 168 | +- 配置说明:`docs/zh/2. 配置说明.md` | ||
| 169 | +- Agent 部署:`docs/zh/3. Agent部署.md` | ||
| 170 | +- Agent 接入:`docs/zh/4. Agent接入.md` | ||
| 171 | + | ||
| 172 | +## Roadmap | ||
| 173 | + | ||
| 174 | +- 完善 Docker / Kubernetes 部署能力 | ||
| 175 | +- 补齐 CLI 接入能力 | ||
| 176 | +- 补齐 WebUI 接入能力 | ||
| 8 | 177 | ||
| @@ -0,0 +1,72 @@ | |||
| 1 | +# openJiuwen Agent Runtime 项目介绍 | ||
| 2 | + | ||
| 3 | +openJiuwen Agent Runtime(简称 Runtime)是 openJiuwen 体系中的智能体运行管理平台,负责将在开发阶段完成的 Agent 发布为可在线调用的运行服务。 | ||
| 4 | +它提供统一的部署、查询、下线与状态管理能力,帮助团队从“开发智能体”平滑过渡到“稳定运行智能体”。 | ||
| 5 | + | ||
| 6 | +## 项目定位 | ||
| 7 | + | ||
| 8 | +Runtime 主要解决以下问题: | ||
| 9 | + | ||
| 10 | +- 如何把不同类型的 Agent 统一部署并对外服务; | ||
| 11 | +- 如何在多租户场景下隔离不同用户和空间的运行实例; | ||
| 12 | +- 如何支持多种部署方式(进程、Docker、Kubernetes); | ||
| 13 | +- 如何对运行态 Agent 做生命周期管理(部署、查看、删除、健康检查)。 | ||
| 14 | + | ||
| 15 | +## 核心能力 | ||
| 16 | + | ||
| 17 | +### 1)统一的部署管理 | ||
| 18 | + | ||
| 19 | +Runtime 暴露标准 REST API,可通过配置文件和元数据完成 Agent 部署,支持: | ||
| 20 | + | ||
| 21 | +- 部署新 Agent; | ||
| 22 | +- 查询部署列表与详情; | ||
| 23 | +- 删除已部署实例; | ||
| 24 | +- 通过健康检查确认实例状态。 | ||
| 25 | + | ||
| 26 | +### 2)多部署策略支持 | ||
| 27 | + | ||
| 28 | +Runtime 内置策略化部署能力,支持三种模式: | ||
| 29 | + | ||
| 30 | +- `subprocess`:以独立子进程方式运行 Agent(默认); | ||
| 31 | +- `docker`:以容器方式运行 Agent; | ||
| 32 | +- `k8s`:在 Kubernetes 集群中运行 Agent。 | ||
| 33 | + | ||
| 34 | +### 3)多租户隔离 | ||
| 35 | + | ||
| 36 | +Runtime 在请求处理链路中支持租户信息注入(如 `user_id`、`space_id`),用于隔离不同租户的 Agent 资源和操作范围。 | ||
| 37 | + | ||
| 38 | +### 4)可扩展架构 | ||
| 39 | + | ||
| 40 | +Runtime 采用模块化设计,部署策略、Agent 类型、基础能力均可独立扩展,便于在不同业务场景中快速接入新能力。 | ||
| 41 | + | ||
| 42 | +## 项目架构 | ||
| 43 | + | ||
| 44 | +Runtime 仓库由多个模块组成: | ||
| 45 | + | ||
| 46 | +- `server/`:FastAPI 管理服务,对外提供部署与管理 API; | ||
| 47 | +- `management/`:部署管理核心,负责策略调度与生命周期编排; | ||
| 48 | +- `foundation/`:基础能力组件(配置、数据库、端口、虚拟环境等); | ||
| 49 | +- `service/`:Agent 服务基类,定义查询、健康检查等通用接口; | ||
| 50 | +- `applications/`:具体 Agent 应用实现(如低码 Agent、工作流 Agent 等)。 | ||
| 51 | + | ||
| 52 | +## 典型部署流程 | ||
| 53 | + | ||
| 54 | +1. 客户端调用 Runtime 部署接口,提交 Agent 配置; | ||
| 55 | +2. Runtime 根据配置选择部署策略并创建部署记录; | ||
| 56 | +3. 策略执行器完成实例拉起(进程 / 容器 / K8s); | ||
| 57 | +4. Agent 服务启动并暴露标准接口(如 `/query`、`/health`); | ||
| 58 | +5. 业务侧通过 Runtime 或 Agent 地址进行调用与运维管理。 | ||
| 59 | + | ||
| 60 | +## 适用场景 | ||
| 61 | + | ||
| 62 | +- 在 openJiuwen Studio 中一键发布智能体到运行环境; | ||
| 63 | +- 企业内部多团队、多租户共享统一 Agent 运行平台; | ||
| 64 | +- 从测试环境到生产环境的 Agent 标准化交付; | ||
| 65 | +- 需要按策略切换部署模式的混合基础设施场景。 | ||
| 66 | + | ||
| 67 | +## 你接下来可以阅读 | ||
| 68 | + | ||
| 69 | +- `1. 快速开始.md`:安装、启动与首次部署; | ||
| 70 | +- `2. 配置说明.md`:`server/.env` 核心配置项详解; | ||
| 71 | +- `3. Agent部署.md`:部署接口与参数说明; | ||
| 72 | +- `4. Agent接入.md`:业务系统接入 Runtime/Agent 的方式。 | ||