fd70af4d56062ff2c2d75db7ea31a8736a1ca664
ZK Data Agent
ZK Data Agent 是面向中控数据开发流程的 Agent 服务。当前仓库包含:
- Python 后端:负责 Agent loop、工具调用、会话持久化和数据开发工具。
- Next.js 前端:提供 Web UI、会话管理、工具调用展示和数据开发交互入口。
- Skill / Tools:承载产品定义到数据生成、线上数据挖掘等数据开发链路。
快速部署
从 Git 一键部署
适合首次部署,也适合后续更新:
APP_DIR="$HOME/zk-data-agent" BRANCH="main" REPO="git@git.n.xiaomi.com:wuyang6/zk-data-agent.git" bash -lc '
set -euo pipefail
if [ -d "$APP_DIR/.git" ]; then
cd "$APP_DIR"
git fetch origin
git checkout "$BRANCH"
git pull --ff-only origin "$BRANCH"
else
rm -rf "$APP_DIR"
git clone --branch "$BRANCH" "$REPO" "$APP_DIR"
cd "$APP_DIR"
fi
bash scripts/deploy-ubuntu.sh "$BRANCH" --skip-git
'
修改部署目录或分支时,只需要调整命令开头的变量:
APP_DIR="$HOME/zk-data-agent-test" BRANCH="main" REPO="git@git.n.xiaomi.com:wuyang6/zk-data-agent.git" bash -lc '...'
这个命令会自动完成:
- 目标目录不存在时执行
git clone - 目标目录已存在时执行
git fetch/git pull --ff-only - 进入仓库后执行
bash scripts/deploy-ubuntu.sh
说明:仓库是私有仓库,curl | bash 拉 raw 文件时容易拿到登录页 HTML;因此推荐直接走 SSH git 权限。
仓库内一键部署/更新
如果已经在仓库目录中:
bash scripts/deploy-ubuntu.sh
部署指定分支:
bash scripts/deploy-ubuntu.sh main
强制覆盖服务器工作区:
bash scripts/deploy-ubuntu.sh main --force
部署配置
首次执行 scripts/deploy-ubuntu.sh 时,如果仓库根目录不存在 .env.deploy,脚本会交互式提示输入:
OPENAI_API_KEYOPENAI_BASE_URLOPENAI_MODEL- 后端监听地址和端口
- 前端监听地址和端口
配置会写入:
.env.deploy
该文件包含敏感信息,只保存在部署机器本地,权限会设置为 600,并且已被 .gitignore 忽略,不会提交到 git。
如需修改模型或 key:
vim .env.deploy
可参考示例:
cp .env.deploy.example .env.deploy
运行方式
部署脚本会安装两个用户级 systemd 服务,不需要 sudo:
zk-data-agent-backend
zk-data-agent-frontend
查看状态:
systemctl --user status zk-data-agent-backend
systemctl --user status zk-data-agent-frontend
查看日志:
journalctl --user -u zk-data-agent-backend -f
journalctl --user -u zk-data-agent-frontend -f
重启服务:
systemctl --user restart zk-data-agent-backend zk-data-agent-frontend
停止服务:
systemctl --user stop zk-data-agent-backend zk-data-agent-frontend
本地开发启动
本地调试可以使用:
bash scripts/start-webui.sh
默认端口:
- 前端:
http://127.0.0.1:3000 - 后端:
http://127.0.0.1:8765
scripts/start-webui.sh 会优先读取本机 .env.deploy,也可以直接使用当前 shell 中的环境变量。
环境要求
Ubuntu 部署建议准备:
gitbashcurlsystemdpyenv- Python
3.10.14 - Node.js
20或22 npm
Python 后端依赖由部署脚本安装到项目根目录 .venv。
前端依赖由部署脚本在 frontend/app 下执行 npm ci 安装,并执行 npm run build。
默认部署使用用户级 systemd,不需要 sudo。若机器要求服务在用户退出 SSH 后仍保持运行,可由管理员额外执行:
loginctl enable-linger <username>
目录说明
backend/ FastAPI Web 后端
frontend/app/ Next.js 前端
src/ Agent runtime、tools、skills
scripts/ 本地启动、部署、systemd 启动脚本
deploy/systemd/ systemd service 模板
.port_sessions/ 本地运行数据,禁止提交
.env.deploy 本机私有部署配置,禁止提交
注意事项
- 不要把
OPENAI_API_KEY写入可提交文件。 .env.deploy、.venv、.port_sessions都是本机文件,不进入 git。- 服务器更新优先使用
bash scripts/deploy-ubuntu.sh,不要手工分散执行依赖安装和服务重启。 - 生产/长期运行使用 systemd 服务;
scripts/start-webui.sh只用于本地调试。
Description
Languages
Python
86.4%
Svelte
7.5%
Dockerfile
3.2%
Shell
2.9%