# 问办通服务(askdo-ext)安装维护手册V1.0
北京致远互联软件股份有限公司
2026年6月
# 前言
问办通服务(askdo-ext,以下简称“askdo-ext”)主要为问办通平台提供智能问答、大模型意图识别、多智能体协作及多轮对话等支撑与代理服务,并在意图识别与路由、多轮对话承接、业务场景适配、智能体能力代理接入、第三方 API 统一接入与调用,以及前端交互协同等方面,对 CoMi 现有能力进行了补充和增强。
什么情况需要安装问办通服务: 协同集成方寸智脑服务(智文中枢、AI文枢智写版),需要askdo-ext问办通服务做桥接器!

本手册适用于Linux或信创系统,问办通通过Docker容器部署。
注意: Windows环境使用Docker需要安装Docker Desktop桌面套件,Docker Desktop 涉及商业授权要求。对于大型企业及政府机构,商业使用需要购买付费订阅。 因此,项目上采用该方案前需要自行确认授权并承担相应的合规风险。
| 维度 | 支持范围 |
|---|---|
| 手册适用OA版本 | A8+、A8-N、G6、G6-N V11.0 |
| 手册适用问办版本 | 1.0 |
| 手册依赖方寸版本 | 依赖方寸智脑服务 |
| 手册依赖CoMi版本 | 需要CoMi V2.1.1版本及以上,需要提前安装部署初始化CoMi |
| 服务器最小配置 | CPU 4核;内存8GB;数据盘100GB |
| 服务器推荐配置 | CPU 8核;内存16GB;数据盘200GB |
# 修订记录
| 修订内容 | 修订时间 |
|---|---|
| V1.1修订稿,发布开放平台 | 2026-9-1 |
| V1.0初稿 | 2026-06-22 |
| V1.1新增“问办通工作流配置注意事项” | 2026-07-14 |
# 环境准备
# 3.1 Docker环境准备
本方案需要Docker和Docker Compose容器组件,版本要求Docker 26.1.14及以上、Docker Compose 2.27.1及以上,支持x86_64和arm64架构,Linux或信创操作系统。如果当前环境未安装容器组件,请自行下载安装;如果当前环境已安装Docker和Docker Compose,但不满足版本要求,需要自行手动升级。
AMD64安装包: https://cdhx78.seeyon.com:5356/downloads/docker-28.3.3-installer-amd64.run
ARM64安装包: https://cdhx78.seeyon.com:5356/downloads/docker-28.3.3-installer-arm64.run
安装示例:
# 下载安装包
wget https://cdhx78.seeyon.com:5356/downloads/docker-28.3.3-installer-amd64.run
# 设置可执行权限
chmod 755 docker-28.3.3-installer-amd64.run
# 运行安装程序(选单机模式即可)
bash docker-28.3.3-installer-amd64.run
# 3.2 askdo-ext资源包准备
Docker安装后,需要下载问办通资源包askdo-ext:从商务公布的安装程序地址下载(文档中心-文档库-营销中心-营销体系销售管理知识库-产品下载地址-提交给区域产品下载地址xxx.xls),产品线对应CoMi:

askdo-ext资源包命名 askdo-ext-install-xxx.tar.gz ,如服务器是X86则下载amd64结尾的包,如服务器是ARM则下载arm64结尾的包:

# askdo-ext服务安装部署
# 4.1 操作系统参数初始化
麒麟V10系统需要先删除podman,否则后续安装Docker会失败:
yum remove podman -y
在进行安装部署前,先按照如下配置优化Linux相关系统参数:
预装部署所需的命令:
# Red Hat系列,使用yum命令安装,如当前系统提示yum不可用,则尝试使用apt
yum update
yum install tar curl net-tools unzip vim telnet -y
# 基于Debian的系统(如Ubuntu)使用apt预装组件
sudo apt update
sudo apt install tar net-tools unzip vim telnet -y
# 基于欧拉openEuler、龙蜥Anolis OS等系统使用dnf安装
sudo dnf update
sudo dnf install tar curl net-tools unzip vim telnet -y
修改Linux内核参数:
# 编辑配置文件,并在文件末尾添加参数配置
vim /etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
# 读取 /etc/sysctl.conf 文件中的设置,使其立即生效
sysctl -p
修改Linux最大进程数最大文件打开数:
通过 vim /etc/security/limits.conf 命令编辑此文件添加以下内容
# open files (-n)
* soft nofile 65535
* hard nofile 65535
# max user processes (-u)
* soft nproc 65535
* hard nproc 65535
以上配置完成,重启操作系统,执行 ulimit -a 命令检查open files是否都变成65535
以下为临时生效方法:
# 设置当前会话中立刻生效
ulimit -n 65535 # 设置最大打开文件数量
ulimit -u 65535 # 设置最大进程数
部署前先关闭selinux:
# 执行如下命令永久关闭
sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 重启操作系统生效
sudo reboot
# 临时禁用(免重启),临时验证关闭效果用,如果确认关闭有效,务必永久关闭
sudo setenforce 0
# 4.2 安装包解压及配置文件准备
以下为安装包上传准备操作:
# 创建安装目录
mkdir -p /data/Seeyon/
# 将askdo-ext包迁移到/data/Seeyon目录下(本例是x86环境的amd64包,arm环境请选择arm64)
mv askdo-ext-install-amd64.tar.gz /data/Seeyon
# 解压askdo包(本例是x86环境的amd64包,arm环境请选择arm64)
cd /data/Seeyon/
tar -zxvf askdo-ext-install-amd64.tar.gz
# 进入安装目录
cd askdo-ext-install
# 创建配置文件(.env.example是隐藏文件)
cp askdo-ext/.env.example askdo-ext/.env
# 编辑.env配置文件,详细配置见下一章节
vim askdo-ext/.env
# 4.3 编辑.env配置文件
| 参数 | 说明 |
SEEYON_API_BASE_URL | 必填;填写Nginx代理协同OA的地址,确保问办通服务器能访问到该Nginx地址,例如:http://10.1.111.24:80 |
COMI_API_SECRET_KEY | 必填;CoMi的API Key:通过管理员-CoMibuilder-API服务-Api Key获取或创建独立ApiKey给问办通 |
LLM_MODEL_NAME | 必填;意图识别模型:通过管理员-ComiBuilder模型管理-中取一条可用的LLM模型标识保存到此处(建议取模型的LLM模型标识),例如:deepseek-v3 |
IFUNC_API_BASE_URL | 必填;方寸智脑服务地址,通过方寸智脑本地化部署后获取配置信息,例如:http://10.1.111.12:10602 |
IFUNC_API_THIRD_USER_ID | 必填;方寸智脑第三方用户 ID(thirdUserId),用于标识调用方的用户身份,通过方寸智脑本地化部署后获取配置信息,例如:seeyon |
IFUNC_API_APP_ID | 必填;方寸智脑应用 ID(AK,Access Key),用于接口调用鉴权,通过方寸智脑本地化部署后获取配置信息,例如:api-access-key-0000001 |
IFUNC_API_APP_KEY | 必填;方寸智脑应用 Secret Key(SK,Secret Key),与 AK 配合用于鉴权加密,通过方寸智脑本地化部署后获取配置信息,例如:api-secret-key-0000001 |
# OA地址、必填,例如:http://xxx.xxx.xxx.xxx,注意:不要直接填OA内网地址,需要填写经过nginx反向代理后的OA地址
SEEYON_API_BASE_URL=""
# COMI相关API调用sk,包括工作流,智能体等、必填,例如:uxHXcrwUWoZOBQaGK7TRYqhGNDa05tOnKi7JPaorpQkNZ6S6A5
COMI_API_SECRET_KEY=""
# 意图识别模型,例如:deepseek-v3
LLM_MODEL_NAME=""
# 方寸智脑服务地址、必填,例如:http://10.1.111.12:10602
IFUNC_API_BASE_URL=""
# 方寸智脑第三方用户ID、必填,例如:seeyon
IFUNC_API_THIRD_USER_ID=""
# 方寸智脑应用 ID(AK)、必填,例如:api-access-key-0000001
IFUNC_API_APP_ID=""
# 方寸智脑应用 Secret Key(SK)、必填,例如:api-secret-key-0000001
IFUNC_API_APP_KEY=""
# 4.4 执行安装
在 /data/Seeyon/askdo-ext-install 目录下执行install.sh安装:
本步前提必须是完成 Docker环境准备 ,确保Docker服务可用再运行!
cd /data/Seeyon/askdo-ext-install
# 运行安装脚本
bash askdo-ext-servctl.sh install
查看服务是否启动成功:
# 执行命令
curl http://127.0.0.1:18000/askdo/api/v1/health
# 返回
{"status":"ok","redis":"ok","details":null}
# NGINX代理askdo-ext配置
1、请确保CoMi已经部署成功并且配置Nginx可用,再进行继续问办通Nginx的配置!
2、在Nginx主配置文件中,通过 vim nginx.conf 增加 askdo-ext 相关配置,仅需增加两块内容:
- 2-1)增加 upstream 统一管理 askdo-ext 地址(见
upstream askdo_backend{xxx}部分) - 2-2)在协同OA的server块中增加
askdo-ext.conf;配置(见server代码块include askdo-ext.conf;部分)
# askdo-ext start:增加askdo-ext相关的upstream配置
upstream askdo_backend {
# 填写askdo-ext正确的IP和端口(问办通默认开放端口18000)
server 192.168.0.171:18000 max_fails=300 fail_timeout=30s;
keepalive 32;
}
# askdo-ext end:增加askdo-ext相关的upstream配置
# 代理协同OA
server {
listen 80;
server_name localhost;
charset utf-8;
# askdo-ext start:关联askdo-ext配置文件
include askdo-ext.conf;
# askdo-ext end:关联askdo-ext配置文件
# 此处忽略若干其它配置......
}
3、在Nginx主配置文件 nginx.conf 同级目录下新建askdo-ext.conf( vim askdo-ext.conf 命令),将如下配置完整保存到askdo-ext.conf(不用个性化调整任何参数):
location ~ /\.(git|env|svn|htaccess|bak|old|swp)$ {
deny all;
}
# 无尾斜杠访问时 301 到带斜杠路径,避免 proxy_pass 不匹配
location = /seeyon/askdo {
return 301 /seeyon/askdo/;
}
location /seeyon/askdo/ {
proxy_pass http://askdo_backend/askdo/;
# 修正后端重定向 Location 头中的路径,避免暴露内部路径
proxy_redirect /askdo/ /seeyon/askdo/;
proxy_redirect /askdo /seeyon/askdo;
# 基础代理头
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;
# 支持 HTTP/1.1 长连接(配合 upstream keepalive)
proxy_http_version 1.1;
proxy_set_header Connection "";
# 支持 WebSocket 升级(MCP/未来扩展)
proxy_set_header Upgrade $http_upgrade;
# 禁用缓冲和缓存(兼容 SSE 实时推送)
proxy_buffering off;
proxy_cache off;
add_header X-Accel-Buffering "no";
# 禁止压缩,确保 SSE 流式数据不被缓冲
proxy_set_header Accept-Encoding "";
# 超时设置(支持 SSE 长连接)
proxy_connect_timeout 60s;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;
# 跨域配置(动态回显 Origin,兼容 Credentials)
set $cors_origin $http_origin;
if ($cors_origin = '') {
set $cors_origin '*';
}
add_header 'Access-Control-Allow-Origin' $cors_origin always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, X-Requested-With, Accept' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length, Content-Type' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
# 处理 OPTIONS 预检请求
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' $cors_origin always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, X-Requested-With, Accept' always;
add_header 'Access-Control-Max-Age' 86400 always;
add_header 'Content-Length' 0;
return 204;
}
}
验证askdo-ext的nginx配置是否正确:
# Nginx服务器 执行命令,当前示例默认NG监听80端口,如项目上监听端口不一样请自行调整
curl http://127.0.0.1/seeyon/askdo/api/v1/health
# 返回
{"status":"ok","redis":"ok","details":null}
# askdo-ext服务日常运维
# 5.1 查看服务状态
#方法1:
# 检查服务状态
cd /data/Seeyon/askdo-ext-install
bash askdo-ext-servctl.sh status
# 方法2:
# 查看所有容器状态,所有服务处于UP状态表示服务正常
docker ps -a
# 查看服务日志
docker logs -f [容器名称]
# 5.2 启停所有服务
# 方法1:
cd /data/Seeyon/askdo-ext-install
# 启动所有服务
bash askdo-ext-servctl.sh start
# 停止所有服务
bash askdo-ext-servctl.sh stop
# 重启所有服务
bash askdo-ext-servctl.sh restart
# 方法2:
cd /data/Seeyon/askdo-ext-install
# 启动所有服务
docker compose start 或 docker-compose start
# 停止所有服务
docker compose stop 或 docker-compose stop
# 重启所有服务
docker compose restart 或 docker-compose restart
# 5.3 启停单个服务
| 容器名称 | 服务说明 |
|---|---|
| askdo-redis | 问办通专用 Redis 缓存服务 |
| askdo-ext | 问办通服务 (Python 应用主服务) |
# 启动单个服务
docker start askdo-ext
# 停止单个服务
docker stop askdo-ext
# 重启单个服务
docker restart askdo-ext
# 5.4 修改.env配置后重载服务
如问办通服务已经部署运行,此时如业务需要,修改了 .env环境配置 ,修改后需要执行down、up才能使容器内的askdo-ext服务生效:
# 修改.env配置文件
cd /data/Seeyon/askdo-ext-install
vim askdo-ext/.env
# 修改.env配置需要执行down、up(其它场景无需此操作)
cd /data/Seeyon/askdo-ext-install
docker compose down
docker compose up -d
# 5.5 查看askdo-ext服务日志
方法1:
# 查看所有日志
bash askdo-ext-servctl.sh logs
# 查看指定服务的日志
bash askdo-ext-servctl.sh logs askdo-ext
方法2:askdo-ext服务日志存放于askdo-ext-install/ic/logs目录下,app.log是最新日志。

# 5.6 创建备份
# 创建备份(由于问办通主要通过容器外挂载保存配置文件,直接备份挂载目录下的配置即可)
cd /data/Seeyon/askdo-ext-install
tar -zcvf askdo-ext-config-bak.tar.gz askdo-ext/.env askdo-redis/conf/redis.conf
# 5.7 目录结构说明
askdo-ext-install/
├── askdo-ext/ # 问办通服务配置及日志
│ ├── .env # 环境变量配置文件
│ └── logs/ # 应用运行日志目录
├── askdo-redis/ # Redis 缓存服务配置及数据
│ ├── conf/ # Redis 配置文件目录
│ │ └── redis.conf # Redis 配置文件
│ └── data/ # Redis 数据持久化目录
├── images/ # 离线部署镜像存放目录
└── docker-compose.yml # Docker Compose 容器编排文件
# 5.8 卸载askdo-ext服务
cd /data/Seeyon/askdo-ext-install/
docker compose down -v
# 查看与问办通相关的镜像
docker images|grep askdo-ext
# 删除docker中的问办通相关的images
docker rmi [askdo-ext所属的镜像ID]
# 备份并删除目录
cd /data/Seeyon/
mv askdo-ext-install askdo-ext-install.bak_$(date +%Y%m%d_%H%M%S)
rm -rf askdo-ext-install
# 常见问题
# 1. 安装完成后启动报错
报错内容:
✘ Network askdo-ext-install_askdo-network Error
failed to create network askdo-ext-install_askdo-network: Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-1b50a9c2855f -j RETURN: iptables: No chain/target/match by that name.

解决方法:重启docker
systemctl restart docker
# 2. 问办通大模型连接超时或失败
报错内容:问办通在运行时提示连接方寸智脑超时或鉴权失败。
解决方法:请检查安装目录下 askdo-ext/.env 配置文件中的方寸智脑 API 地址(IFUNC_API_BASE_URL)以及 AK/SK(IFUNC_API_APP_ID 和 IFUNC_API_APP_KEY)是否填写正确,并确保服务器可以正常访问该 API 地址。
# 3.问办通工作流配置注意事项
https://docs.qq.com/sheet/DS3FkV3hwRFZ1R1dB?aidPos=detail&no_promotion=1&is_blank_or_template=blank&tab=BB08J2