概述
OpenJiuwen 是一个强大的智能代理开发平台,本文将详细介绍如何在 Linux 系统上完整安装 OpenJiuwen。

环境要求
硬件要求
- CPU:最低 2 核,推荐 4 核及以上
- RAM:最低 4GB,推荐 8GB 及以上
操作系统
- Ubuntu:最低 Ubuntu 20.04,推荐 Ubuntu 22.04 (Jammy) 及以上
- EulerOS:Huawei Cloud EulerOS 2.0及以上
软件要求
- Git 2.40及以上
- Node.js 20.0及以上
- npm 10.0及以上
- Python 3.11及以上
- uv 0.5.0及以上
- MySQL 8.0及以上
- Milvus 2.6.2及以上(可选组件)
安装步骤
1. 检查系统环境
首先,检查您的 Linux 系统信息:
bash
uname -a
输出示例:
$ uname -a
gyl@L-R913J7WJ-0920:~/openjiuwen$ uname -a
Linux L-R913J7WJ-0920 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
检查系统资源(CPU和内存):
bash
nproc && free -h
输出示例:
$ nproc && free -h
gyl@L-R913J7WJ-0920:~/openjiuwen$ nproc && free -h
12
total used free shared buff/cache available
内存: 15Gi 1.0Gi 14Gi 3.6Mi 306Mi 14Gi
交换: 4.0Gi 0B 4.0Gi
检查已安装的软件版本:
bash
which git && git --version
输出示例:
$ which git && git --version
gyl@L-R913J7WJ-0920:~/openjiuwen$ which git && git --version
/usr/bin/git
git version 2.43.0
bash
which node && node --version
输出示例:
$ which node && node --version
gyl@L-R913J7WJ-0920:~/openjiuwen$ which node && node --version
/home/gyl/.nvm/versions/node/v22.21.1/bin/node
v22.21.1
bash
which npm && npm --version
输出示例:
$ which npm && npm --version
gyl@L-R913J7WJ-0920:~/openjiuwen$ which npm && npm --version
/home/gyl/.nvm/versions/node/v22.21.1/bin/npm
10.9.4
bash
which python3 && python3 --version
输出示例:
$ which python3 && python3 --version
gyl@L-R913J7WJ-0920:~/openjiuwen$ which python3 && python3 --version
/usr/bin/python3
Python 3.12.3
bash
which uv
输出示例:
$ which uv
gyl@L-R913J7WJ-0920:~/openjiuwen$ which uv
/home/gyl/.local/bin/uv
bash
uv --version
输出示例:
$ uv --version
gyl@L-R913J7WJ-0920:~/openjiuwen$ uv --version
uv 0.9.16
2. 安装 MySQL
如果您的系统上还没有安装 MySQL,请执行以下命令安装:
bash
sudo apt update && sudo apt install -y mysql-server libmysqlclient-dev pkg-config build-essential python3-dev
输出示例:
$ sudo apt install -y libmysqlclient-dev pkg-config build-essential
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
build-essential 已经是最新版 (12.10ubuntu1)。
下列软件包是自动安装的并且现在不需要了:
apport-symptoms cloud-guest-utils eatmydata fdisk gdisk libeatmydata1 libllvm19
python-babel-localedata python3-babel python3-certifi python3-chardet python3-debconf python3-jinja2
python3-json-pointer python3-jsonpatch python3-jsonschema python3-markupsafe python3-problem-report
python3-pyrsistent python3-systemd python3-tz
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
libmysqlclient-dev libmysqlclient21 libpkgconf3 libssl-dev libzstd-dev pkg-config pkgconf
pkgconf-bin
建议安装:
libssl-doc
下列【新】软件包将被安装:
libmysqlclient-dev libmysqlclient21 libpkgconf3 libssl-dev libzstd-dev pkg-config pkgconf
pkgconf-bin
升级了 0 个软件包,新安装了 8 个软件包,要卸载 0 个软件包,有 37 个软件包未被升级。
需要下载 5,692 kB 的归档。
解压缩后会消耗 30.8 MB 的额外空间。
获取:1 http://mirrors.aliyun.com/ubuntu noble-updates/main amd64 libmysqlclient21 amd64 8.0.44-0ubuntu0.
24.04.2 [1,254 kB]
获取:2 http://mirrors.aliyun.com/ubuntu noble-security/main amd64 libssl-dev amd64 3.0.13-0ubuntu3.6 [2,
408 kB]
获取:3 http://mirrors.aliyun.com/ubuntu noble-updates/main amd64 libzstd-dev amd64 1.5.5+dfsg2-2build1.1
[364 kB]
获取:4 http://mirrors.aliyun.com/ubuntu noble-updates/main amd64 libmysqlclient-dev amd64 8.0.44-0ubuntu
0.24.04.2 [1,591 kB]
获取:5 http://mirrors.aliyun.com/ubuntu noble/main amd64 libpkgconf3 amd64 1.8.1-2build1 [30.7 kB]
获取:6 http://mirrors.aliyun.com/ubuntu noble/main amd64 pkgconf-bin amd64 1.8.1-2build1 [20.7 kB]
获取:7 http://mirrors.aliyun.com/ubuntu noble/main amd64 pkgconf amd64 1.8.1-2build1 [16.8 kB]
获取:8 http://mirrors.aliyun.com/ubuntu noble/main amd64 pkg-config amd64 1.8.1-2build1 [7,264 B]
已下载 5,692 kB,耗时 2秒 (3,416 kB/s)
正在选中未选择的软件包 libmysqlclient21:amd64。
(正在读取数据库 ... 系统当前共安装有 54354 个文件和目录。)
准备解压 .../0-libmysqlclient21_8.0.44-0ubuntu0.24.04.2_amd64.deb ...
正在解压 libmysqlclient21:amd64 (8.0.44-0ubuntu0.24.04.2) ...
正在选中未选择的软件包 libssl-dev:amd64。
准备解压 .../1-libssl-dev_3.0.13-0ubuntu3.6_amd64.deb ...
正在解压 libssl-dev:amd64 (3.0.13-0ubuntu3.6) ...
正在选中未选择的软件包 libzstd-dev:amd64。
准备解压 .../2-libzstd-dev_1.5.5+dfsg2-2build1.1_amd64.deb ...
正在解压 libzstd-dev:amd64 (1.5.5+dfsg2-2build1.1) ...
正在选中未选择的软件包 libmysqlclient-dev。
准备解压 .../3-libmysqlclient-dev_8.0.44-0ubuntu0.24.04.2_amd64.deb ...
正在解压 libmysqlclient-dev (8.0.44-0ubuntu0.24.04.2) ...
正在选中未选择的软件包 libpkgconf3:amd64。
准备解压 .../4-libpkgconf3_1.8.1-2build1_amd64.deb ...
正在解压 libpkgconf3:amd64 (1.8.1-2build1) ...
正在选中未选择的软件包 pkgconf-bin。
准备解压 .../5-pkgconf-bin_1.8.1-2build1_amd64.deb ...
正在解压 pkgconf-bin (1.8.1-2build1) ...
正在选中未选择的软件包 pkgconf:amd64。
准备解压 .../6-pkgconf_1.8.1-2build1_amd64.deb ...
正在解压 pkgconf:amd64 (1.8.1-2build1) ...
正在选中未选择的软件包 pkg-config:amd64。
准备解压 .../7-pkg-config_1.8.1-2build1_amd64.deb ...
正在解压 pkg-config:amd64 (1.8.1-2build1) ...
正在设置 libmysqlclient21:amd64 (8.0.44-0ubuntu0.24.04.2) ...
正在设置 libzstd-dev:amd64 (1.5.5+dfsg2-2build1.1) ...
正在设置 libpkgconf3:amd64 (1.8.1-2build1) ...
正在设置 libssl-dev:amd64 (3.0.13-0ubuntu3.6) ...
正在设置 pkgconf-bin (1.8.1-2build1) ...
正在设置 libmysqlclient-dev (8.0.44-0ubuntu0.24.04.2) ...
正在设置 pkgconf:amd64 (1.8.1-2build1) ...
正在设置 pkg-config:amd64 (1.8.1-2build1) ...
正在处理用于 man-db (2.12.0-4build2) 的触发器 ...
正在处理用于 libc-bin (2.39-0ubuntu8.6) 的触发器 ...
验证 MySQL 安装:
bash
mysql --version
输出示例:
$ mysql --version
mysql Ver 8.0.44-0ubuntu0.24.04.2 for Linux on x86_64 ((Ubuntu))
3. 配置 MySQL 数据库
创建 OpenJiuwen 所需的数据库和用户:
bash
sudo mysql -u root -e "CREATE DATABASE openjiuwen_agent; CREATE DATABASE openjiuwen_ops; CREATE USER 'openjiuwen'@'localhost' IDENTIFIED BY 'openjiuwen123'; GRANT ALL PRIVILEGES ON openjiuwen_agent.* TO 'openjiuwen'@'localhost'; GRANT ALL PRIVILEGES ON openjiuwen_ops.* TO 'openjiuwen'@'localhost'; FLUSH PRIVILEGES;"
验证数据库和用户创建成功:
bash
sudo mysql -u root -e "SHOW DATABASES LIKE 'openjiuwen%'; SELECT User, Host FROM mysql.user WHERE User='openjiuwen';"
输出示例:
$ sudo mysql -u root -e "SHOW DATABASES LIKE 'openjiuwen%'; SELECT User, Host FROM mysql.user WHERE User='openjiuwen';"
+------------------------+
| Database (openjiuwen%) |
+------------------------+
| openjiuwen_agent |
| openjiuwen_ops |
+------------------------+
+------------+-----------+
| User | Host |
+------------+-----------+
| openjiuwen | localhost |
+------------+-----------+
4. 克隆 OpenJiuwen 源码
bash
git clone https://gitcode.com/openJiuwen/agent-studio.git
输出示例:
$ git clone https://gitcode.com/openJiuwen/agent-studio.git
正克隆到 'agent-studio'...
remote: Enumerating objects: 2419, done.
remote: Counting objects: 100% (899/899), done.
remote: Compressing objects: 100% (633/633), done.
remote: Total 2419 (delta 586), reused 432 (delta 262), pack-reused 1520 (from 1)
接收对象中: 100% (2419/2419), 20.41 MiB | 10.30 MiB/s, 完成.
处理 delta 中: 100% (856/856), 完成.
查看克隆的目录结构:
bash
ls -la agent-studio
输出示例:
$ ls -la agent-studio
总计 264
drwxr-xr-x 9 gyl gyl 4096 12月 29 23:50 .
drwxr-xr-x 3 gyl gyl 4096 12月 29 23:50 ..
drwxr-xr-x 5 gyl gyl 4096 12月 29 23:50 backend
drwxr-xr-x 2 gyl gyl 4096 12月 29 23:50 docker
-rw-r--r-- 1 gyl gyl 3715 12月 29 23:50 .env.example
drwxr-xr-x 5 gyl gyl 4096 12月 29 23:50 frontend
drwxr-xr-x 8 gyl gyl 4096 12月 29 23:51 .git
-rw-r--r-- 1 gyl gyl 936 12月 29 23:50 .gitignore
-rw-r--r-- 1 gyl gyl 10947 12月 29 23:50 LICENSE
drwxr-xr-x 3 gyl gyl 4096 12月 29 23:50 plugin_server
-rw-r--r-- 1 gyl gyl 3083 12月 29 23:50 README.md
drwxr-xr-x 5 gyl gyl 4096 12月 29 23:50 sandbox_server
drwxr-xr-x 3 gyl gyl 4096 12月 29 23:50 scripts
-rw-r--r-- 1 gyl gyl 206061 12月 29 23:50 Third_Party_Open_Source_Software_Notice.txt
5. 配置环境变量
复制示例环境配置文件:
bash
cd agent-studio && cp .env.example .env
编辑环境配置文件,设置数据库信息:
bash
# 编辑 .env 文件,将 DB_USER 和 DB_PASSWORD 设置为之前创建的用户和密码
6. 安装并启动后端服务
安装后端依赖
bash
cd /home/gyl/openjiuwen/agent-studio/backend
安装 Python 虚拟环境:
bash
python3 -m venv .venv
输出示例:
$ python3 -m venv .venv
The virtual environment was not created successfully because ensurepip is not
available. On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.
apt install python3.12-venv
You may need to use sudo with that command. After installing the python3-venv
package, recreate your virtual environment.
Failing command: /home/gyl/openjiuwen/agent-studio/backend/.venv/bin/python3
安装 Python 虚拟环境包:
bash
sudo apt install -y python3.12-venv
再次创建虚拟环境:
bash
python3 -m venv .venv
安装项目依赖:
bash
uv pip install uvicorn fastapi python-dotenv pyyaml pydantic-settings sqlalchemy mysqlclient openjiuwen "pydantic[email]" pyjwt pymysql networkx
输出示例:
$ uv pip install uvicorn fastapi python-dotenv pyyaml pydantic-settings sqlalchemy mysqlclient openjiuwen "pydantic[email]" pyjwt pymysql networkx
Resolved 70 packages in 738ms
Prepared 22 packages in 23.21s
Uninstalled 3 packages in 8ms
Installed 57 packages in 125ms
+ aiohappyeyeballs==2.6.1
+ aiohttp==3.11.12
+ aiosignal==1.4.0
+ attrs==25.4.0
+ cacheout==0.16.0
+ certifi==2025.11.12
+ charset-normalizer==3.4.4
+ distro==1.9.0
+ docx2txt==0.8
+ filelock==3.20.1
+ frozenlist==1.8.0
+ fsspec==2025.12.0
+ grpcio==1.76.0
+ hf-xet==1.2.0
+ httpcore==1.0.9
+ httpx==0.27.0
+ httpx-sse==0.4.3
+ huggingface-hub==0.36.0
+ jiter==0.12.0
+ jsonschema==4.25.1
+ jsonschema-specifications==2025.9.1
+ mcp==1.12.2
+ mermaid-py==0.8.0
+ milvus-lite==2.5.1
+ multidict==6.7.0
+ numpy==2.4.0
+ openai==1.108.0
+ openjiuwen==0.1.1
+ packaging==25.0
+ pandas==2.3.3
+ portalocker==3.2.0
+ propcache==0.4.1
+ protobuf==6.33.2
+ pycryptodome==3.23.0
- pydantic==2.12.5
+ pydantic==2.11.5
- pydantic-core==2.41.5
+ pydantic-core==2.33.2
+ pymilvus==2.6.2
+ python-dateutil==2.9.0.post0
+ python-multipart==0.0.21
+ pytz==2025.2
+ referencing==0.37.0
+ regex==2025.11.3
+ requests==2.32.3
+ rpds-py==0.30.0
+ safetensors==0.7.0
+ setuptools==80.9.0
+ six==1.17.0
+ sniffio==1.3.1
- sqlalchemy==2.0.45
+ sqlalchemy==2.0.41
+ sse-starlette==3.1.1
+ tokenizers==0.21.4
+ tqdm==4.67.1
+ transformers==4.52.4
+ tzdata==2025.3
+ ujson==5.11.0
+ urllib3==2.6.2
+ yarl==1.22.0
安装项目本身:
bash
uv pip install -e .
输出示例:
$ uv pip install -e .
Resolved 125 packages in 3.86s
Built openjiuwen-studio-server @ file:///home/gyl/openjiuwen/agent
Prepared 12 packages in 4.27s
Uninstalled 10 packages in 22ms
Installed 58 packages in 71ms
+ aiomysql==0.2.0
+ aiosqlite==0.21.0
+ alembic==1.15.2
+ amqp==5.3.1
+ bcrypt==5.0.0
+ billiard==4.2.4
+ celery==5.3.6
+ cffi==2.0.0
+ click-didyoumean==0.3.1
+ click-plugins==1.1.1.2
+ click-repl==0.3.0
+ clickhouse-connect==0.6.23
+ cryptography==46.0.3
+ dbutils==3.1.0
+ ecdsa==0.19.1
- fastapi==0.128.0
+ fastapi==0.115.11
+ googleapis-common-protos==1.72.0
+ httptools==0.7.1
+ importlib-metadata==8.7.1
+ jinja2==3.1.6
+ kombu==5.6.1
+ lz4==4.4.5
+ mako==1.3.10
+ markupsafe==3.0.3
+ mpmath==1.3.0
- networkx==3.6.1
+ networkx==3.4.2
+ openjiuwen-studio-server==0.1.1 (from file:///home/gyl/openjiuwen/age
nt-studio/backend)
+ opentelemetry-api==1.37.0
+ opentelemetry-exporter-otlp==1.37.0
+ opentelemetry-exporter-otlp-proto-common==1.37.0
+ opentelemetry-exporter-otlp-proto-grpc==1.37.0
+ opentelemetry-exporter-otlp-proto-http==1.37.0
+ opentelemetry-proto==1.37.0
+ opentelemetry-sdk==1.37.0
+ opentelemetry-semantic-conventions==0.58b0
+ passlib==1.7.4
+ prompt-toolkit==3.0.52
- protobuf==6.33.2
+ protobuf==6.32.0
+ pyasn1==0.6.1
+ pycparser==2.23
- pydantic-settings==2.12.0
+ pydantic-settings==2.5.2
- pymysql==1.1.2
+ pymysql==1.1.1
- python-dotenv==1.2.1
+ python-dotenv==1.1.1
+ python-jose==3.3.0
- python-multipart==0.0.21
+ python-multipart==0.0.9
+ redis==5.2.1
+ rsa==4.9.1
- sse-starlette==3.1.1
+ sse-starlette==3.0.3
- starlette==0.50.0
+ starlette==0.46.2
+ sympy==1.14.0
- uvicorn==0.40.0
+ uvicorn==0.34.0
+ uvloop==0.22.1
+ vine==5.1.0
+ watchfiles==1.1.1
+ wcwidth==0.2.14
+ websockets==15.0.1
+ zipp==3.23.0
+ zstandard==0.25.0
创建日志目录:
bash
mkdir -p logs/run
启动后端服务:
bash
uv run python main.py
输出示例:
$ uv run python main.py
/home/gyl/openjiuwen/agent-studio/backend/.venv/lib/python3.11/site-packages/pydantic/_internal/_fields.py:198: UserWarning: Field name "schema" in "WorkflowSave" shadows an attribute in parent "WorkflowId"
warnings.warn(
/home/gyl/openjiuwen/agent-studio/backend/.venv/lib/python3.11/site-packages/pydantic/_internal/_fields.py:198: UserWarning: Field name "schema" in "BaseValue" shadows an attribute in parent "BaseType"
warnings.warn(
/home/gyl/openjiuwen/agent-studio/backend/.venv/lib/python3.11/site-packages/pydantic/_internal/_fields.py:198: UserWarning: Field name "schema" in "WorkflowBaseDB" shadows an attribute in parent "BaseModel"
warnings.warn(
/home/gyl/openjiuwen/agent-studio/backend/.venv/lib/python3.11/site-packages/pydantic/_internal/_fields.py:198: UserWarning: Field name "schema" in "WorkflowPublishDB" shadows an attribute in parent "BaseModel"
warnings.warn(
2025-12-30 00:21:18 | common | main.py | 144 | main | | INFO | 🚀 Starting Jiuwen Agent Studio Backend in development mode...
INFO:common:🚀 Starting Jiuwen Agent Studio Backend in development mode...
2025-12-30 00:21:19 | common | main.py | 145 | main | | INFO | 📍 Server will be available at: http://0.0.0.0:8000
INFO:common:📍 Server will be available at: http://0.0.0.0:8000
2025-12-30 00:21:19 | common | main.py | 146 | main | | INFO | 📚 API Documentation: http://0.0.0.0:8000/api/docs
INFO:common:📚 API Documentation: http://0.0.0.0:8000/api/docs
2025-12-30 00:21:19 | common | main.py | 147 | main | | INFO | 🔍 Health Check: http://0.0.0.0:8000/api/health
INFO:common:🔍 Health Check: http://0.0.0.0:8000/api/health
2025-12-30 00:21:19 | common | main.py | 148 | main | | INFO | 🔄 Auto-reload enabled for development
INFO:common:🔄 Auto-reload enabled for development
2025-12-30 00:21:19 | common | main.py | 149 | main | | INFO | ⏹️ Press Ctrl+C to stop the server
INFO:common:⏹️ Press Ctrl+C to stop the server
2025-12-30 00:21:19 | common | main.py | 150 | main | | INFO | ------------------------------------------------------------
INFO:common:------------------------------------------------------------
INFO: Started server process [23105]
INFO: Waiting for application startup.
2025-12-30 00:21:19 | common | main.py | 40 | lifespan_func | | INFO | 🚀 Starting Jiuwen Agent Studio Backend...
INFO:common:🚀 Starting Jiuwen Agent Studio Backend...
2025-12-30 00:21:21 | common | memory_engine_start.py | 74 | init | | INFO | ✅ Memory engine created
INFO:common:✅ Memory engine created
后端服务成功启动,现在可以在 http://0.0.0.0:8000 访问。
7. 安装并启动前端服务
打开新终端,进入前端目录:
bash
cd /home/gyl/openjiuwen/agent-studio/frontend
安装前端依赖:
bash
npm install
输出示例:
$ npm install
npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check
out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is muc
h more comprehensive and powerful.
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/ve
rsion-support for other options.
npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
added 1313 packages, and audited 1317 packages in 1m
466 packages are looking for funding
run `npm fund` for details
3 vulnerabilities (2 moderate, 1 high)
To address all issues possible (including breaking changes), run:
npm audit fix --force
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.
启动前端服务:
bash
npm run dev
输出示例:
$ npm run dev
> jiuwen-agent-studio@0.1.1 dev
> vite
VITE v6.4.1 ready in 231 ms
➜ Local: http://localhost:3000/
➜ Network: http://172.23.142.129:3000/
➜ press h + enter to show help
前端服务成功启动,现在可以在 http://localhost:3000 访问。

总结
成功安装并启动了 OpenJiuwen。现在可以:
- 通过前端界面(http://localhost:3000)使用 OpenJiuwen
- 通过 API 文档(http://0.0.0.0:8000/api/docs)了解后端接口
- 开始创建和管理您的智能代理
如需进一步了解 OpenJiuwen 的功能和使用方法,请参考官方文档。
- OpenJiuwen项目地址:https://atomgit.com/openJiuwen?utm_source=csdn
- OpenJiuwen官网:https://www.openjiuwen.com?utm_source=csdn