用 Docker Compose 搭一套本地 AI Agent 调试环境

举报
yd_248372697 发表于 2026/11/13 00:02:21 2026/11/13
【摘要】 从零搭起可复现的本地 Agent 调试栈。

用 Docker Compose 搭一套本地 AI Agent 调试环境

背景

在做一个基于大模型的 Agent 项目时,最麻烦的往往不是模型调用本身,而是本地环境:Python 版本、向量库、缓存、网关代理,每换一台机器就要重来一遍。这篇文章记录我用 Docker Compose 把整套调试栈固化下来的过程,启动一条命令,环境可复制。

整体结构

最小可用栈包含四个组件:

• `agent-app`:业务代码,FastAPI 暴露 8000 端口

• `redis`:会话上下文与限流计数

• `qdrant`:向量检索,做知识库召回

• `nginx`:统一入口,顺手做请求日志

compose 文件

services:
  redis:
    image: redis:7-alpine
    command: redis-server --appendonly yes
    volumes: [redis-data:/data]
  qdrant:
    image: qdrant/qdrant:latest
    volumes: [qdrant-data:/qdrant/storage]
  agent-app:
    build: .
    environment:
      REDIS_URL: redis://redis:6379/0
      QDRANT_URL: http://qdrant:6333
    depends_on: [redis, qdrant]
  nginx:
    image: nginx:alpine
    ports: ["8080:80"]
    volumes: [./nginx.conf:/etc/nginx/conf.d/default.conf:ro]
    depends_on: [agent-app]
volumes:
  redis-data:
  qdrant-data:

几个踩过的坑

**1. 容器内 DNS 解析慢**:Agent 里要访问外部模型 API,容器默认 DNS 偶尔会卡 5 秒。显式在 service 上加 `dns: 223.5.5.5` 后请求耗时从 5.2s 降到 0.3s。

**2. 向量库首次写入慢**:qdrant 冷启动后第一次 upsert 会建索引,建议在健康检查里等 `/readyz` 返回 200 再让应用启动,否则会拿到 503。

**3. 日志混在一起看不清**:给每个服务加 `logging: driver: json-file, options: max-size: 10m`,再用 `docker compose logs -f agent-app` 单独盯业务日志,排查效率高很多。

效果

原来新同事配环境平均 40 分钟,现在 `docker compose up -d` 之后 90 秒内就能跑通一次完整对话。镜像分层缓存之后,二次构建只要 8 秒左右。

小结

本地调试环境值得当成基础设施来做。Compose 不是生产部署方案,但作为「一键复现」的载体非常合适,尤其是团队里模型、应用、数据三条线并行开发的时候。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。