左帮右臂 —— 部署与使用手册
版本:v1.1 | 更新日期:2026-06-22
Agent Hackathon 参赛作品 | 赛道:行业应用·智能制造
行业验证: 高端/机械(10GB真实工艺数据) · 磷化工 · 电力 · 白酒
📋 目录
一、环境要求
基础环境
| 组件 | 最低要求 | 推荐 |
|---|---|---|
| Node.js | >= 18.0.0 | v22.16+ |
| 包管理器 | npm 9+ | pnpm 10.22+ |
| 内存 | 512MB | 2GB+ |
| 磁盘 | 500MB | 2GB+ |
| 操作系统 | Windows / Linux / macOS | Linux (Ubuntu 22.04+) |
可选组件
| 组件 | 用途 | 获取方式 |
|---|---|---|
| MySQL 8.0+ | 生产数据库(可用 SQLite 替代) | 官网下载 |
| SCSAI PLM 服务器 | 企业 PLM 数据源 | 客户环境 |
| 昇腾 NPU 310P/910 | AI 模型加速 | 华为昇腾 |
| AtomCode | 开发工具 | atomcode.atomgit.com |
检查环境
# 检查 Node.js
node --version
# 输出示例:v22.16.0
# 检查 pnpm(如未安装,用 npm 也行)
pnpm --version || npm --version
# 输出示例:10.22.0
# 检查 Git
git --version
# 输出示例:git version 2.47.0
# 检查网络连通性(如果需要连接 SCSAI)
curl -I http://your-SCSAI-server/scplm
二、快速安装
2.1 克隆代码
# 从 AtomGit 克隆(推荐 - 参赛主仓库)
git clone https://atomgit.com/tuan_zhang/bossagents.git
cd bossagents
# 或者从 GitHub 镜像克隆
git clone https://github.com/andyy1976/bossagents.git
cd bossagents
2.2 安装依赖
# 使用 pnpm(推荐)
pnpm install
# 或使用 npm
npm install --legacy-peer-deps
2.3 初始化配置
# 复制环境变量模板
cp .env.example .env
# (可选)编辑 .env 填入你的 LLM API Key
2.4 启动服务
# 开发模式
node server.js
# 或使用 PM2(生产推荐)
npm install -g pm2
pm2 start server.js --name "zuobangyoubi"
2.5 访问应用
打开浏览器访问:https://ylxt.chat
登录页面 → 输入 SCSAI 用户名密码 → 进入主界面
三、配置说明
3.1 配置文件体系
系统支持三层配置叠加(优先级从高到低):
1. 环境变量 (.env) ← 最高优先级(敏感信息)
2. config.yaml ← 中间优先级(业务配置)
3. config-loader.js 默认值 ← 最低优先级(缺省值)
3.2 环境变量配置 (.env)
# ==========================================
# SCSAI PLM 连接配置
# ==========================================
SCSAI_SERVER=https://ylxt.chat/scplm
SCSAI_DATABASE=SCPLM
SCSAI_USERNAME=
SCSAI_PASSWORD=
# ==========================================
# LLM 配置(用于数字员工 AI 功能)
# ==========================================
LLM_ENDPOINT=https://api.deepseek.com/v1/chat/completions
LLM_API_KEY=your-api-key-here
LLM_MODEL=deepseek-chat
LLM_PROVIDER=deepseek
# ==========================================
# 昇腾 NPU 加速(可选)
# ==========================================
MTCLAW_ENABLED=false
MTCLAW_BASE_URL=http://127.0.0.1:18790/v1
# ==========================================
# 服务器配置
# ==========================================
PORT=3006
LOG_LEVEL=info
3.3 业务配置 (config.yaml)
# ==================== 部署模式 ====================
deployment:
mode: local # local | saas
tenant_id: default
# ==================== SCSAI 配置 ====================
SCSAI:
server: https://ylxt.chat/scplm
database: SCPLM
auth_type: basic # basic | token
username: ''
password: ''
timeout: 30000
retry: 3
enabled: true
# ==================== 服务器配置 ====================
server:
port: 3006
log_level: info
cors: true
# ==================== 功能开关 ====================
features:
version_management: true
import_export: true
search: true
cost_optimize: true
digital_staff: true # 数字员工总开关
natural_language: true # 自然语言功能
# ==================== 数字员工配置 ====================
cron:
enabled: false # 定时任务总开关
tasks: [] # 任务列表
# ==================== 通知配置 ====================
notify:
enabled: false
feishu:
enabled: false
webhook_url: ''
app_id: ''
app_secret: ''
email:
enabled: false
smtp_host: ''
smtp_port: 465
smtp_user: ''
smtp_pass: ''
# ==================== MTCLAW 昇腾 NPU 集成 ====================
mtclaw:
enabled: false
base_url: "http://127.0.0.1:18790/v1"
completion_mode: "permissive" # permissive | strict
upstream:
endpoint: ""
model: "deepseek-chat"
# ==================== 语音识别 ====================
asr:
provider: echo
timeout: 15000
四、启动服务
4.1 开发模式启动
# 标准启动
node server.js
# 指定端口启动
PORT=3007 node server.js
# 指定日志级别
LOG_LEVEL=debug node server.js
4.2 启动成功标志
看到以下输出表示启动成功:
[INFO] 日志系统初始化成功
[INFO] 配置加载完成
[INFO] SCSAI连接配置已初始化
[INFO] 开发模式: 静态文件预览
[INFO] 服务器启动成功 → https://ylxt.chat
4.3 启动前端开发服务器(可选)
# 启动 Vite 开发服务器(热更新)
npm run dev:vite
# 访问 http://localhost:5173
4.4 PM2 进程管理
# 安装 PM2
npm install -g pm2
# 启动
pm2 start server.js --name "zuobangyoubi"
# 查看状态
pm2 status
# 查看日志
pm2 logs zuobangyoubi
# 重启
pm2 restart zuobangyoubi
# 停止
pm2 stop zuobangyoubi
# 设置开机自启
pm2 startup
pm2 save
五、功能验证
启动后,按以下顺序验证核心功能:
5.1 基础功能
| 验证项 | 预期结果 | 操作 |
|---|---|---|
| 页面加载 | 显示登录界面 | 访问 https://ylxt.chat |
| 登录 | 成功进入主界面 | 输入 SCSAI 用户名密码 |
| 会话保持 | 刷新页面保持登录 | F5 刷新后仍在登录状态 |
5.2 BOM 管理
| 验证项 | 预期结果 | 操作 |
|---|---|---|
| 产品列表 | 显示分页产品数据 | 点击"产品列表" |
| BOM 展开 | 多层 BOM 树可逐级展开 | 点击行首 ▶ 图标 |
| Where Used | 显示使用此零件的父项 | 右键零件 → "哪里使用" |
| 版本对比 | 差异高亮显示 | 选择两个版本 → 对比 |
5.3 变更管理
| 验证项 | 预期结果 | 操作 |
|---|---|---|
| ECR 列表 | 显示待审批/已审批 ECR | 点击"变更管理" |
| 创建 ECR | 表单提交成功 | 填写 → 提交 |
| ECR → ECO | 审批后自动创建 ECO | 审批 ECR |
5.4 供应商管理
| 验证项 | 预期结果 | 操作 |
|---|---|---|
| 供应商列表 | 分页显示 | 点击"供应商" |
| 创建供应商 | 表单验证 + 提交 | 填写 → 提交 |
| 评分评级 | 评分自动计算级别 | 编辑评分 |
5.5 数字员工
| 验证项 | 预期结果 | 操作 |
|---|---|---|
| 调度正常 | 看到定时任务执行日志 | 观察终端输出 |
| LLM 调用 | 自然语言查询返回结果 | 输入自然语言指令 |
| 任务看板 | 任务状态正常流转 | 查看数字员工控制台 |
六、生产部署
6.1 Nginx 反向代理
server {
listen 80;
server_name zuobangyoubi.yourdomain.com;
# 网页端
location / {
proxy_pass https://ylxt.chat;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400s;
}
# WebSocket 支持(数字员工实时通信)
location /ws {
proxy_pass https://ylxt.chat;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_read_timeout 86400s;
}
# 大文件上传
client_max_body_size 100M;
}
6.2 HTTPS 配置(Let's Encrypt)
# 安装 certbot
apt install certbot python3-certbot-nginx
# 申请证书
certbot --nginx -d zuobangyoubi.yourdomain.com
# 自动续期
certbot renew --dry-run
6.3 Docker 部署
# Dockerfile
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --legacy-peer-deps --production
COPY . .
EXPOSE 3006
CMD ["node", "server.js"]
# 构建镜像
docker build -t zuobangyoubi .
# 运行容器
docker run -d \
--name zuobangyoubi \
-p 3006:3006 \
-v $(pwd)/config.yaml:/app/config.yaml \
-v $(pwd)/.env:/app/.env \
-v $(pwd)/server/data:/app/server/data \
-v $(pwd)/generated:/app/generated \
--restart always \
zuobangyoubi
# 查看日志
docker logs -f zuobangyoubi
6.4 数据库选择
| 模式 | 适用场景 | 配置方式 |
|------|----------|----------|
| SQLite(默认) | 单机部署、测试环境 | 无需配置,自动创建 |
| MySQL | 生产环境、多节点 | 配置 .env 中 DATABASE_URL |
| SCSAI AML | 企业集成 | 配置 config.yaml 中 SCSAI.* |
| JSON 文件 | 轻量数据(供应商/变更等) | 自动创建,无需配置 |
七、昇腾 NPU 适配
7.1 安装昇腾 Model-Agent 插件
# 在 AtomCode 中执行
/plugin marketplace add https://gitcode.com/gmq123/ascend-model-agent-plugin
/plugin install ascend-model-agent-plugin@ascend-model-agent-plugin
7.2 配置昇腾推理端点
在 config.yaml 中启用 MTCLAW 模式:
mtclaw:
enabled: true
base_url: "http://127.0.0.1:18790/v1"
completion_mode: "permissive" # permissive(宽松)| strict(严格)
upstream:
endpoint: "" # 留空使用昇腾本地模型
model: "ascend-glm-5.1" # 或 ascend-deepseek-v4-flash
7.3 验证 NPU 适配
# 检查昇腾驱动
npu-smi info
# 检查 MTCLAW 服务
curl http://127.0.0.1:18790/v1/models
# 测试 LLM 调用
curl -X POST http://127.0.0.1:18790/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"ascend-glm-5.1","messages":[{"role":"user","content":"你好"}]}'
7.4 适配验证数据(参考)
昇腾NPU适配不需要从零开始。左帮右臂已有高通骁龙和摩尔线程的端侧模型适配经验(已验证的7倍加速),昇腾NPU适配是同样路径的工程复制。CANN社区已提供完整的Agent Skill工具链。
参考数据(Qwen3.5-0.8B on 昇腾NPU,来源:CANN官方):
| 指标 | 优化前 | 优化后 | 提升 |
|------|--------|--------|------|
| Decode加速 | 1.1x | 5.1x | +360% |
| 端到端吞吐 | 11.16 tok/s | 31.59 tok/s | +183% |
完整验证方案见 docs/ascend-npu-verification-plan.md
| 调优项 | 推荐值 | 说明 |
|--------|--------|------|
| 批处理大小 | 4~8 | 根据 NPU 显存调整 |
| 最大 Token | 2048~4096 | 工业场景不需要极大 Token |
| 超时时间 | 30000ms | 覆盖复杂推理场景 |
| 缓存策略 | LRU 128条 | 减少重复查询 |
八、数字员工配置
8.1 启用数字员工
# 1. 配置 LLM API Key
# 编辑 .env 文件
LLM_ENDPOINT=https://api.deepseek.com/v1/chat/completions
LLM_API_KEY=your-api-key
LLM_MODEL=deepseek-chat
# 2. 启用定时任务
# 编辑 config.yaml
cron:
enabled: true
digital_staff:
enabled: true
8.2 各数字员工配置
server/digital-staff/profiles/local.yaml:
workers:
ecr-reviewer:
enabled: true
schedule: "*/15 * * * *" # 每15分钟
prompt: "你是一个专业的ECR审核员..."
vendor-manager:
enabled: true
schedule: "*/30 * * * *" # 每30分钟
cost-optimizer:
enabled: true
schedule: "0 2 * * *" # 每天凌晨2点
data-clerk:
enabled: true
schedule: "0 * * * *" # 每小时
procurement:
enabled: false # 按需启用
schedule: "0 9 * * 1-5" # 工作日9点
8.3 调度启用/禁用
# 临时禁用所有数字员工
cron:
enabled: false
# 禁用单个数字员工
# 编辑 profiles/local.yaml 对应 worker 的 enabled: false
# 手动触发一次
curl -X POST https://ylxt.chat/api/digital-staff/run/ecr-reviewer
九、常见问题
Q1: 启动时报错 "port 3006 is already in use"
# 查找占用进程
netstat -ano | findstr :3006
# 或 Linux
lsof -i :3006
# 修改配置文件中的端口
# config.yaml → server.port = 3007
# 或设置环境变量 PORT=3007 node server.js
Q2: 能打开页面但登录失败
检查项:
- SCSAI 服务器地址是否正确(config.yaml → SCSAI.server)
- 网络是否能连通(
curl -I http://your-SCSAI-server/scplm) - 用户名密码是否正确
- 数据库名称是否正确(config.yaml → SCSAI.database)
Q3: 数字员工不执行
检查项:
- LLM API Key 是否正确配置
- 环境变量是否生效(
echo $LLM_API_KEY) - 网络能否访问 LLM 端点
- config.yaml 中
cron.enabled: true - 查看终端日志是否有报错
Q4: 页面加载空白
# 检查浏览器控制台是否有报错
# 确认 index-vue.html 存在
# 尝试直接打开 https://ylxt.chat/index-vue.html
Q5: 数据不显示
- 检查 SCSAI 连接状态
- 检查数据库是否有数据
- 查看服务端日志是否有错误
Q6: 如何更新代码
git pull
pnpm install
pm2 restart zuobangyoubi
十、API 参考
10.1 BOM API
| 方法 | 路径 | 参数 | 说明 |
|------|------|------|------|
| GET | /api/bom/list | page, size, search | 产品列表 |
| GET | /api/bom/detail | id, level | BOM 详情 |
| GET | /api/bom/where-used | partId | Where Used 反查 |
| POST | /api/bom/compare | bomA, bomB | 版本对比 |
| POST | /api/bom/export | id, format | BOM 导出 |
| POST | /api/bom/import | file | 批量导入 |
10.2 业务 API
| 方法 | 路径 | 说明 |
|---|---|---|
| GET/POST | /api/vendors | 供应商 CRUD |
| GET/POST | /api/customers | 客户 CRUD |
| GET/POST | /api/orders | 订单 CRUD |
| GET/POST | /api/ecr | ECR 变更管理 |
| GET/POST | /api/eco | ECO 变更管理 |
10.3 数字员工 API
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/digital-staff/run/:worker | 手动触发数字员工 |
| GET | /api/digital-staff/status | 数字员工状态 |
| GET | /api/digital-staff/tasks | 任务看板 |
10.4 对象模型 API
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/aml/auto-all | 获取所有自动生成数据统计 |
| GET | /api/aml/auto-index | 获取 ItemType 索引 |
| GET | /api/aml/auto-full/:name | 获取指定对象类的完整数据 |
| GET | /api/aml/business-systems | 业务系统列表 |
| POST | /api/aml/rebuild-auto | 重新从 AML 生成规则模板 |
附录:部署检查清单
- [ ] Node.js >= 18.0.0 已安装
- [ ] 依赖已安装(
pnpm install无报错) - [ ] config.yaml 已配置
- [ ] .env 已创建(如需 LLM / 数据库)
- [ ] 服务器启动成功(
node server.js无报错) - [ ] 浏览器可正常访问 https://ylxt.chat
- [ ] 登录功能正常
- [ ] BOM 管理功能正常
- [ ] (可选)LLM API Key 配置正确,数字员工可调用
- [ ] (可选)昇腾 NPU 适配完成
- [ ] (可选)PM2 进程管理已配置
左帮右臂 —— 基于昇腾NPU的工业智能体平台
Agent Hackathon 2026 · 行业应用·智能制造赛道
联系方式:付博 18986066876 · fu@bossmind.com
BossAgents