尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

AutoGPT 本地部署踩坑记:从装不上到真正跑起来

AutoGPT 本地部署踩坑记:从装不上到真正跑起来 折腾了一天 AutoGPT Platform把安装、启动和一堆莫名其妙的坑都趟了一遍。这篇不是官方教程的复读是我自己踩出来的经验按「搭建环境 → 运行起来 → 遇到的坑」三部分写希望能帮你少走点弯路。文章目录一、搭建环境1. 前置条件2. 拉代码3. 进平台目录、配环境变量4. 硬件心里有个数二、运行起来1. 启动2. 访问3. 端口都是干嘛的4. 改了 .env 之后三、遇到的坑坑 1登不进去后端服务全退坑 2端口被占尤其是开着 Dify坑 3注册/初始化报 401跨域 cookie 问题坑 4局域网访问连不上SSE / WebSocket 用不了 localhost坑 5发消息没反应一直Connection lost最坑的一个坑 6对话能通但要好几分钟才回复坑 7思考模型开头空白几秒最后说两句官方项目地址https://github.com/Significant-Gravitas/AutoGPT官方项目文档https://agpt.co/docs/platform/一、搭建环境1. 前置条件动手之前先确认这几样齐了Git用来拉代码Node.js npm前端要跑node -v、npm -v能出版本号就行Docker Docker Compose整个平台靠它编排一堆容器Windows 用户特别注意装 Docker 时一定选WSL 2后端别用 Hyper-V。官方文档里明确说了Hyper-V 会导致数据库容器健康检查失败你会白折腾一小时才发现问题出在这。2. 拉代码gitclone https://github.com/Significant-Gravitas/AutoGPT.git仓库比较大等一会儿正常。进去之后你会发现里面有两条产品线一个是 2023 年那个命令行版 AutoGPT Classic另一个才是我们要装的AutoGPT Platform可视化拖拽搭 Agent 的那个。别跑错目录。3. 进平台目录、配环境变量cdAutoGPT/autogpt_platformcp.env.default .env.env里存了数据库密码、API Key、服务端口这些。本地开发用默认值就能跑但有两件事建议你顺手做掉换掉加密密钥默认密钥是公开的自己玩无所谓要长期用建议换一下用 Python 的cryptography或poetry run cli gen-encrypt-key生成新的千万别把.env提交到 git里面是敏感信息4. 硬件心里有个数官方没写硬件要求但实测下来8GB 内存起步16GB 才舒服。整套平台会拉起十几个容器镜像好几个 G磁盘留个 20G 以上比较稳。二、运行起来1. 启动dockercompose up-d--build第一次跑要编译前端和后端镜像5-10 分钟很正常耐心等。2. 访问浏览器打开http://localhost:3000应该能看到登录/注册页。3. 端口都是干嘛的用途端口前端页面3000WebSocket8001REST / SSE 接口80064. 改了 .env 之后改完.env不是重启所有容器只重启相关的就行dockercompose up-drest_server copilot_executor但如果你改的是前端相关的NEXT_PUBLIC_*变量必须重新 build 前端镜像才生效光重启没用。这个坑后面会细说。三、遇到的坑下面按我踩的顺序写每个都是「现象 → 原因 → 怎么解决」。坑 1登不进去后端服务全退现象页面打不开报错一堆后端服务起不来。原因Redis 集群状态异常cluster_state:fail连带着后端服务全挂了。前端那边还会报EAI_AGAIN rest_server看着像网络问题其实根子在这。解决强制重建 Redis 集群再把后端拉起来dockercompose up-d--force-recreate redis-0 redis-1 redis-2 redis-init坑 2端口被占尤其是开着 Dify现象启动报port is already allocated。原因这套平台占用的端口特别多——3000、8000、8006、5432、5672、17000-17002、6380、3310……只要你机器上跑着别的开发服务很容易撞车。我这边就是被 Dify 占了端口。解决两个办法关掉占端口的服务再启动或者用docker-compose.override.yml改端口映射。别直接改官方那个 compose 文件下次git pull就被覆盖了override 文件会自动合并改这里才持久。坑 3注册/初始化报 401跨域 cookie 问题现象Failed to initialize onboarding一部分接口报 401一部分正常。原因前端请求 API 时写死了绝对地址http://localhost:3000/api/proxy。你要是用局域网 IP比如http://192.168.1.100:3000打开页面这个 localhost 地址就变成跨域了cookie 带不过去于是 401。解决把前端请求代理改成同源相对路径/api/proxy并让请求带上 cookiecredentials: include。改的是这个文件frontend/src/app/api/mutators/custom-mutator.ts坑 4局域网访问连不上SSE / WebSocket 用不了 localhost现象Could not start a new chat session、Connection lost。原因SSE 和 WebSocket 直连的是localhost:8006、localhost:8001用局域网 IP 打开页面时这些 localhost 地址全都连不上CORS 也没放行局域网来源。解决新建frontend/.env把直连地址都换成局域网 IPBETTER_AUTH_URLhttp://192.168.1.100:3000NEXT_PUBLIC_FRONTEND_BASE_URLhttp://192.168.1.100:3000NEXT_PUBLIC_AGPT_SERVER_URLhttp://192.168.1.100:8006/apiNEXT_PUBLIC_AGPT_WS_SERVER_URLws://192.168.1.100:8001/ws注意NEXT_PUBLIC_*这些变量会打进前端镜像改完必须rebuild 前端光重启没用。坑 5发消息没反应一直Connection lost最坑的一个现象新建会话后发第一条消息页面立刻弹Connection lost / Reconnecting…输入框被锁死模型永远不回复。后端日志里只看到建会话的请求真正发消息的接口一次都没到。原因两个问题叠在一起crypto.randomUUID在 HTTP 局域网下不可用。这个 API 只在 HTTPS 或 localhost安全上下文下存在。你用http://192.168.1.100:3000打开页面时发消息请求体里生成 id 的那行代码直接抛错请求在浏览器里就失败了根本没发出去。前端把它当成断网于是弹 Connection lost。空会话被误判断线。新会话的流程是「建会话 → 页面重挂载 → 补发暂存的第一条消息」一旦出错进入重连状态重连提示会把这条暂存消息永远拦住。解决写一个generateUuid()安全上下文用crypto.randomUUID()否则用crypto.getRandomValues()手工拼一个 UUIDv4然后把发消息的地方都改用它。同时调整重连逻辑会话里还没有任何用户消息时重连状态不再拦截发送。涉及这几个文件frontend/src/lib/utils.ts frontend/src/app/(platform)/copilot/copilotStreamTransport.ts frontend/src/app/(platform)/copilot/useCopilotPendingChips.ts frontend/src/app/(platform)/copilot/helpers.ts frontend/src/app/(platform)/copilot/useCopilotReconnect.ts frontend/src/app/(platform)/copilot/useCopilotStream.ts frontend/src/app/(platform)/copilot/useSendMessage.ts改完重新 build 前端dockercompose build frontenddockercompose up-dfrontend坑 6对话能通但要好几分钟才回复现象消息发出去了但等了 3 分钟才回还弹Connection timed out。原因本地模型vLLM一轮推理就要 200 多秒而前端重连超时只设了 30 秒。这是误报不是真断线是模型太慢超过了前端等待时间。解决模型侧慢是硬伤可以换更快的模型或者接受这个延迟。前端超时时间要不要改看你取舍。坑 7思考模型开头空白几秒现象用 Qwen 这类思考模型时发完消息后开头几秒没反应。原因思考模型会先输出reasoning_content思考过程再输出正式回答。开头那几秒空白是它在想不是卡了。解决不用处理等它想完自然就回了。知道是正常现象别跟坑 5 一样误判成断线去折腾。最后说两句AutoGPT Platform 本身不难装难的是局域网访问 本地模型这两块几乎所有的坑都出在这。如果你只是本机 localhost 自己玩坑 3、4、5 基本碰不到但你要用局域网 IP 给别人访问、或者接本地 vLLM那这篇里写的基本都会遇到。几个通用提醒再强调一遍Windows 用WSL 2别用 Hyper-V端口冲突用override 文件别改官方 compose.env别提交 git加密密钥记得换改前端变量要rebuild 前端不是重启本地模型慢导致的超时先确认是不是真断线再动手祝一次跑通。
返回列表