最近后台私信里问得最多的一类问题是我的电脑是 Windows想把扣子 COZE 的智能体跑起来再挂上 DeepSeek 大模型到底怎么搞说实话这个问题拆开看根本不是“装一个软件”那么简单而是一条完整的组合链路COZE 控制台负责智能体编排和模型调度Docker Desktop 负责在本地跑文档转换、定时任务、接口服务这些容易脏乱差的环节最后 DeepSeek 作为大模型底座被 COZE 调用。三者配合好以后你能得到一条很舒服的自动化工作流——输入一句话DeepSeek 帮你把内容生成好本地容器马上把它转成 Word 文档全程不用手动复制粘贴。这篇文章适合所有想在 Windows 上把 AI 工作流真正落地的人不管你是开发者、运营还是效率工具爱好者只要愿意跟着折腾一遍都能把这套组合装到自己电脑上。我会把 Docker Desktop 的安装和盘符迁移、COZE 平台的分工逻辑、DeepSeek 的 API 配置以及一个具体可复用的“文档转换”实战全部讲清楚最后再把我踩过的那些坑按问题清单整理出来方便你直接查。1. Windows 上 Docker Desktop 的安装与前期准备1.1 为什么偏偏用 Docker 来跑 AI 周边服务很多人一开始不理解COZE 不是网页上就能用吗为什么还要扯上 Docker因为 COZE 这种低代码智能体平台擅长的是“思考”和“编排”但它不太适合做需要稳定运行、读写本地文件、调用系统资源的事情。比如你把一段 Markdown 转成 Word、把几百份文档批量处理、或者跑一个定时任务去调 AI 接口这些事如果全丢给云平台要么需要公网回传要么受限于平台自带的插件生态要么就得一遍遍手动操作。Docker 在这里的价值是提供一个干净、可迁移的“本地执行环境”。Windows 原生的 Python、Node 环境很容易因为版本冲突把人搞疯今天这个库装不上明天那个 DLL 缺失卸载还卸载不干净。容器把运行环境完整打包一个命令启动、一个命令删除不会污染系统。对 Windows 用户来说Docker Desktop 又是最主流的方案装完之后能用熟悉的docker compose管理服务非常适合作为整个工作流里的“执行层”。1.2 完整安装流程含安装到指定盘符先明确前置条件。Docker Desktop 在 Windows 上默认依赖 WSL2需要 Win10 2004build 19041及以上版本或者 Win11。安装前建议先在 BIOS 里确认虚拟化已经开启任务管理器“性能”标签页能看到“虚拟化已启用”。如果没启用后面 WSL2 会一直起不来白白浪费时间。安装包从 Docker 官网下载下载的是Docker Desktop Installer.exe。大多数人直接双击安装默认装到 C 盘等用了一段时间发现 C 盘空间告急这几乎是新手最常踩的坑。更稳的做法是用命令行指定安装路径先把安装包下载好然后打开管理员 PowerShell执行start /w Docker Desktop Installer.exe install --installation-dirD:\Docker\DockerDesktop装完之后不要急着建项目先更新和配置 WSL2。如果电脑上还没有 WSL可以先执行wsl --install安装装完重启如果已经有 WSL 但版本比较老执行wsl --update更新到最新。然后在管理员 PowerShell 里执行wsl --set-default-version 2确保用的是 WSL2 而不是 WSL1。这里还要说到另一个经典问题即使 Docker Desktop 装到了 D 盘WSL2 的虚拟磁盘文件默认还是会落在 C 盘路径类似C:\Users\你的用户名\AppData\Local\Docker\wsl\disk\docker_data.vhdx。如果不想让 C 盘继续膨胀需要把docker-desktop-data这个 WSL 发行版迁移出去。步骤是先关掉 Docker Desktop再执行wsl --shutdown wsl --export docker-desktop-data D:\Docker\backup\docker-desktop-data.tar wsl --unregister docker-desktop-data wsl --import docker-desktop-data D:\Docker\data D:\Docker\backup\docker-desktop-data.tar这里有一个细节要注意docker-desktop-data是 Docker Desktop 自己的内部发行版不是用户业务系统迁移前一定要先关闭 Docker Desktop否则导出会不完整另外新版 Docker 的发行版名称可能略有不同执行前先用wsl -l -v看一下实际名称再操作。迁移完成后重新打开 Docker Desktop跑一下docker run hello-world能正常输出提示就说明一切正常。1.3 安装完先做这几件事Docker Desktop 装好不代表就完事了建议立刻做三件基础配置。第一是验证环境。打开 PowerShell 分别执行docker --version、docker compose version、docker run hello-world确保 CLI、编排工具、镜像拉取链路都正常。hello-world能跑通说明容器引擎和 WSL2 后端没问题。第二是配置镜像源。国内网络环境下直接访问 Docker Hub 拉镜像经常很慢甚至超时解决办法是在 Docker Desktop 的 Settings 里找到 Docker Engine 配置项把 registry-mirrors 写进去{ registry-mirrors: [https://当前可用的镜像源地址] }保存后 Docker 会自动重启。注意镜像源地址不要照抄网上过时的配置以当前网络环境下实际可用的地址为准如果填写错误容器启动时反而会报连接失败。第三是限制 WSL2 资源占用。Docker 默认拿走的 WSL2 内存可能比较大容易把 Windows 本机拖卡。在用户目录下创建.wslconfig文件写入[wsl2] memory4GB processors4 swap2GB保存后执行wsl --shutdown再重启 Docker Desktop 即可生效。这几步做完Windows 上的 Docker 基础环境才算真正稳了。2. COZE 平台与本地 Docker 如何分工协作2.1 先搞清楚 COZE 的部署形态很多朋友一开始会问COZE 能不能像其他开源软件一样用 Docker 拉一个镜像直接跑在本地这里得先说清楚一个事实COZE扣子的主战场是云平台控制台在 coze.cn官方并没有提供一套“一键安装到本地”的完整镜像。网上偶尔看到的“Docker 安装 COZE”教程要么是把 COZE 的周边组件容器化比如插件执行器、API 网关、数据库和对象存储要么是做了个本地服务去调用 COZE 的开放 API要么是类似 COZE 思路的开源项目并不是 COZE 本尊。理解这个边界非常重要否则你会在网上找镜像找到怀疑人生。正确的姿势应该是COZE 云端负责“大脑”本地 Docker 负责“手脚”。COZE 负责配置智能体的人设、编排工作流、选择模型、管理知识库Docker 负责跑真正需要本地资源的事情比如读写文件、调用本机程序、处理文档、做定时任务。两者通过 API 对接既享受了 COZE 低代码编排的便利又保留了本地环境的灵活性。2.2 COZE 控制台初始化该怎么做在开始对接之前先把 COZE 控制台的基本项目准备好。注册登录 coze.cn创建工作空间然后创建一个智能体。进入编辑页面以后你会看到几个核心模块人设与回复逻辑、模型配置、工作流、插件、知识库、触发器。其中模型配置是后面接 DeepSeek 的关键入口工作流是搭建自动化流程的地方。如果还没用过 COZE我建议先在控制台里随意聊几句把智能体的人设写清楚。比如后面实战要做“文档写作助手”人设里就可以写“你是一名严谨的技术博主擅长用 Markdown 格式输出结构化文档”。这个人设会直接影响 DeepSeek 生成内容的方向所以别随便填。工作流节点里常见的大模型节点、代码节点、条件分支、HTTP 请求节点后面都会用到。2.3 整体架构推荐这套组合到底怎么组织我画个文字版架构方便你理解。整个系统分两层云端层COZE 控制台 → 智能体 / 工作流 → DeepSeek 开放平台 API。本地层Docker Desktop → 转换服务 / 调度服务 / 其他业务容器。流程就像这样你在 COZE 里配置好智能体模型选项选 DeepSeek用户给出一个主题COZE 的工作流把主题交给 DeepSeek 生成 Markdown 内容这时候 COZE 可以把它发布成 API本地 Docker 容器去调用这个 API 拿到生成结果本地再把 Markdown 交给文档转换容器转换成 Word 或 PDF保存到本地目录。整个过程COZE 不需要访问你本地文件本地容器也不需要暴露到公网只主动往外调用 COZE API 即可安全性高、网络配置简单。这个设计是我实际用下来最顺的。它避开了“COZE 工作流直接调用内网服务”这个麻烦事因为云平台执行环境默认访问不了你家的局域网 IP与其折腾网络打通不如让本地主动去拉取结果一步到位。3. DeepSeek 大模型接入与配置全解析3.1 申请 DeepSeek API Key先到 DeepSeek 开放平台platform.deepseek.com注册账号登录后在“API Keys”页面创建一个新的密钥。创建时会给一串以 sk- 开头的字符串一定要立刻复制保存好因为关闭页面以后就看不到了。接着要做的是充值。DeepSeek 的计费是按 token 走的输入和输出的价格分开计算官方价格页面上都有实时标识。这里我不写具体数字因为价格会调整但量级上可以给你一个感受日常生成一篇几千字的文章单次调用的费用通常就是几分钱到几毛钱拿来开发测试并不心疼。另外要留意API 调用是预付费模式账户余额不足会直接返回错误所以建议提前充一点钱别等要用的时候才想起来。最后是安全习惯这个 Key 本质上是你的钱包钥匙别提交到 Git 仓库别写进前端页面也别随手贴在 COZE 公开分享的项目里。本地脚本里用环境变量存服务器上就用密钥管理工具养成习惯能省很多麻烦。3.2 在 COZE 里配置 DeepSeek 模型COZE 控制台在智能体编辑页有模型配置入口默认可选的大模型是 COZE 预置的几家。接入 DeepSeek 的方法是走“自定义模型”或“第三方模型”选项入口名称在不同版本里可能有差异但逻辑是一致的填一个 Base URL填一个 API Key再填模型名。DeepSeek 的 Base URL 有两种写法都可以https://api.deepseek.com或https://api.deepseek.com/v1。这里有个常见误区有人会照着 OpenAI 的习惯填到https://api.deepseek.com/v1/chat/completions结果保存时报错。COZE 里只需要填到https://api.deepseek.com/v1这一层路径里不要带/chat/completions平台自己会拼接。模型名部分官方提供两个deepseek-chat和deepseek-reasoner。前者对应通用对话模型速度快、价格低适合绝大多数文档生成和对话场景后者对应深度推理模型适合数学、逻辑、代码这类需要深思熟虑的任务。在 COZE 里配置时先选择把 DeepSeek 设为智能体的默认模型这样智能体的对话入口就直接使用 DeepSeek后续在工作流里添加大模型节点时同样可以选择这个自定义模型两者不冲突。3.3 参数调优与成本控制心得模型配置好以后真正影响效果的是参数。COZE 的大模型节点里一般都有 temperature、max_tokens、top_p 这些参数可以调。我的经验是写文档、写文案这类任务temperature 设置在 0.3 到 0.7 之间比较合适太低显得机械太高容易跑题代码生成类任务建议更低0.1 到 0.3 能让输出更稳定如果要让模型做头脑风暴再考虑调到 0.8 以上。max_tokens 是输出上限新手经常忽略它导致内容被截断。比如你想让 DeepSeek 写一篇 5000 字的中文文章按中文平均每个字约等于 1 到 1.5 个 token 估算max_tokens 至少要留 8000 以上。但一次生成太长又容易不稳定我的建议是工作流里做一个“分段生成”的设计让 DeepSeek 先输出文章大纲再按大纲逐段展开每一段控制在一个合适的长度。这样既不容易截断内容质量也更可控。至于 deepseek-reasoner它在正式回复前会输出一段推理过程这些推理 token 也是计费的而且耗时明显比 chat 长。在 COZE 工作流里不是所有场景都需要这种“深度思考”别一上来就全链路用 reasoner先把 chat 用熟只在有明确推理需求的任务上切换过去成本自然就控制住了。4. 可落地的组合实践本地 Docker COZE DeepSeek 文档转换工作流4.1 场景这样设计才够直接理论讲再多不如一个能跑通的项目。我拿“智能写作转 Word”这个需求来演示整套链路场景很日常但把关键组件都覆盖了用户输入一个主题COZE 智能体调用 DeepSeek 生成一篇 Markdown 格式的技术文章本地 Docker 的转换服务拿到 Markdown 后转成 Word 文档。整个过程用户只需要等十几秒拿到一个可以直接打开编辑的 docx。选这个场景是因为它足够典型生成文案是 AI 的强项但格式转换不是 AI 的强项而是本地工具的强项。Docker 在这里负责的“文档转换”服务必须要稳定、可重复、不依赖图形界面容器化以后还特别方便迁移到别的机器。整套流程拆开看每一环都是可控的出了问题也好排查。4.2 用 Docker Compose 把转换服务跑起来本地转换服务我选 FastAPI pandoc 的组合不用太复杂能接受 POST 请求、把 Markdown 文本变成 docx 文件就够了。先建一个项目目录比如D:\docker-projects\md-converter在里面创建四个文件。第一个是docker-compose.ymlversion: 3.8 services: converter: build: . container_name: md-converter ports: - 8000:8000 volumes: - ./output:/app/output restart: unless-stopped第二个是DockerfileFROM python:3.11-slim RUN apt-get update apt-get install -y pandoc apt-get clean WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY app.py . CMD [uvicorn, app.py:app, --host, 0.0.0.0, --port, 8000]这里要解释一下为什么单独装 pandocpandoc 是业界最成熟的文档格式转换工具可以把 Markdown 转成 docx、HTML、PDF 等格式而且对中文支持不错。容器里直接装系统包依赖干净不需要额外再下什么插件。第三个是requirements.txtfastapi uvicorn pypandoc第四个是app.py实现转换接口import os import tempfile import pypandoc from fastapi import FastAPI from fastapi.responses import FileResponse from pydantic import BaseModel app FastAPI() class Item(BaseModel): markdown: str app.post(/convert) def convert_markdown_to_docx(item: Item): with tempfile.TemporaryDirectory() as tmp: md_file os.path.join(tmp, input.md) out_file os.path.join(tmp, output.docx) with open(md_file, w, encodingutf-8) as f: f.write(item.markdown) pypandoc.convert_file(md_file, docx, outputfileout_file) return FileResponse( out_file, filenameoutput.docx, media_typeapplication/vnd.openxmlformats-officedocument.wordprocessingml.document, )然后在项目目录打开 PowerShell执行docker compose up -d --build服务启动后可以先手动验证一次转换接口curl -X POST http://localhost:8000/convert -H Content-Type: application/json -d {\markdown\:\# 测试标题\n\n这是第一段正文。\} --output test.docx能下载到 test.docx 就说明服务已经可用了。这一步验证很重要一定要在接 COZE 之前做否则后面排错混在一起会非常头疼。4.3 把 COZE 智能体发布成 API 并对接本地转换服务跑通以后回到 COZE 控制台。在你创建的智能体页面里找到“发布”功能选择发布为 API 渠道。发布成功后控制台会提供这个智能体的访问凭证一般是个人访问令牌 PAT和智能体 ID同时会展示一个调用示例。接下来本地脚本去调这个 API拿到生成的 Markdown再转给刚才的转换服务。我本地写了一个很简短的调度脚本放在宿主机上用计划任务触发。核心逻辑大概是这样的import os import requests COZE_API_URL https://api.coze.cn/v3/chat # 以控制台实际显示的示例为准 COZE_API_KEY os.environ[COZE_API_KEY] BOT_ID os.environ[COZE_BOT_ID] resp requests.post( COZE_API_URL, headers{ Authorization: fBearer {COZE_API_KEY}, Content-Type: application/json, }, json{ bot_id: BOT_ID, user_id: local-converter, stream: False, messages: [ { role: user, content: 请写一篇介绍 Docker 容器化部署的技术文章使用 Markdown 格式输出包含标题、列表和代码块。, } ], }, ) data resp.json()拿到 COZE 返回内容以后把模型输出的 Markdown 文本提取出来POST 到本地转换服务converter_resp requests.post( http://localhost:8000/convert, json{markdown: markdown_content}, ) with open(D:/docker-projects/md-converter/output/result.docx, wb) as f: f.write(converter_resp.content)这里要提醒一句COZE API 的 URL 和消息结构不同版本可能不一样一定要以控制台发布后展示的调用示例为准。把示例程序里的认证头和请求体复制到本地尽量少做改动成功以后再调整提示词和机器人 ID。整个过程不需要公网 IP也不需要把本地容器暴露到外网。是本地主动去请求 COZE API属于单向出站访问在公司网络、家庭网络里通常都能直接跑通。4.4 跑通后的效果与扩展方向这个链路跑通以后你可以非常直观地看到用户在某个界面输入“给我写一篇关于 Docker 数据持久化的文章”COZE 的智能体会按照人设调用 DeepSeek生成一篇结构完整的 Markdown自动传给本地转换服务最终在 output 目录里出现一个排版不错的 Word 文档。再往后扩展可以加的地方非常多。比如把智能体发布到飞书、企业微信让同事在群里直接触达在 COZE 里接一个知识库让生成内容基于你本地的技术文档甚至写一个定时任务每天早上八点让工作流自动生成一份日报并存到指定目录。核心思想没变AI 负责生成和理解Docker 负责处理和产出COZE 负责把两者编排在一起。5. 常见问题与排查技巧实录5.1 Docker Desktop 启动失败的排查思路Docker Desktop 装完以后最常见的问题是启动半天一直转圈或者干脆报 WSL 相关的错误。优先级最高的检查项是虚拟化任务管理器里看“性能”标签页的“虚拟化”是不是“已启用”如果显示“已禁用”需要进 BIOS 开 VT-x 或 AMD-V。其次是 WSL 内核版本执行wsl --update更新一下再wsl --shutdown重启 WSL很多莫名其妙的起不来问题都能解决。还有一种情况是 Docker Desktop 设置里的资源分配过大导致 WSL2 虚拟机分配不到内存。打开 Docker Desktop 的 Settings把内存调小一点至少给 Windows 本身留出 4GB 以上保存后重启。如果之前的.wslconfig配过也检查一下 memory 参数是不是写得太激进。5.2 COZE 与 DeepSeek 连接失败的关键检查点COZE 里配置 DeepSeek 后如果对话报错大概率是三个原因。第一个是 API Key 填错特别容易复制多一个空格或者少一位第二个是 Base URL 填错最常见的是多抄了/chat/completions第三个是账户余额不足DeepSeek 会返回包含余额提示的错误信息。顺序排查一般五分钟内能定位。还有一个容易被忽略的点如果你在 COZE 里同时配了deepseek-reasoner部分平台版本对推理模型的参数校验更严格比如不允许自定 temperature或者对 streams 参数有限制。遇到这类问题我的建议是先从deepseek-chat开始调试把链路跑通以后再考虑是否切换到推理模型。5.3 新手常见问题速查表现象可能原因解决办法Docker Desktop 安装后无法启动BIOS 虚拟化未开启、WSL2 未更新检查任务管理器虚拟化状态执行 wsl --update重启后重试C 盘空间被 Docker 占满docker-desktop-data 虚拟磁盘默认在 C 盘用 wsl --export / --import 迁移数据盘到其他分区拉取镜像速度很慢或超时默认 Docker Hub 镜像源网络不稳定在 Docker Engine 配置中填写当前可用的镜像源地址COZE 配置 DeepSeek 后对话报错API Key 填错、Base URL 多填路径、余额不足按 3.2 节检查配置并确认账户余额工作流生成内容被截断max_tokens 设置过小调大输出上限或改为分段生成本地转换服务返回 500pandoc 转换异常或文本格式问题先看容器日志 docker logs md-converter确认是代码问题还是输入问题这张表是我自己在搭建过程中反复遇到的每一项都有具体的排查路径你可以把它当成一个“急救手册”收藏起来。5.4 我的经验清单最后分享几个实际项目里总结出来的习惯。本地和云端一定要分开验证别上来就把整个链路串起来跑先单独用 curl 验证 Docker 转换服务再单独在 COZE 控制台里验证 DeepSeek 生成效果两个都正常了再把它俩接到一起踩坑成本会大大降低。另一个经验是提示词里明确格式要求。DeepSeek 生成 Markdown 的时候如果不加说明它偶尔会在开头写“好的以下是……”这种语气词对文档正文来说很突兀。我在 COZE 的人设里直接写“直接输出 Markdown 内容不要多余解释”效果立刻干净很多。还有一个小技巧本地转换服务输出的文件命名用时间戳加任务标识避免多任务并发时互相覆盖。这个看起来不起眼但一旦开始批量跑任务文件管理会省下大量时间。整套流程跑顺之后你会发现 Windows 上做 AI 工作流其实并不复杂关键是搞清楚谁负责思考、谁负责执行然后把它们用 API 串起来剩下的事就是不断优化细节了。