已合并
docs: README and introduction #72
docs: README and introduction #72
已合并
张雅晴创建于 4月7日
共 2 个文件变更+244-3
MREADME.md+172-3
@@ -1,8 +1,177 @@
1-# Agent Runtime1+# 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 的方式。