เอเจนต์ AI แทบไม่เคยเป็นโพรเซสเดียว มีลูปเอเจนต์เอง, ที่เก็บเวกเตอร์ สำหรับความจำ, แคช หนึ่งตัว, มักมี ฐานข้อมูล สำหรับสถานะ, และอาจมีแดชบอร์ดเล็ก ๆ การรันแต่ละอย่างด้วยมือ — เริ่มมัน รีสตาร์ทหลังรีบูต จำว่าพอร์ตไหนเป็นอะไร — น่าเบื่อเร็ว Docker Compose อธิบายทั้งหมดในไฟล์เดียวและรันด้วยคำสั่งเดียว นี่คือสแตกคัดลอก-วางสำหรับวางเอเจนต์บน VPS แบบเรียบร้อย
ถ้าคุณต้องการแค่เวอร์ชัน deploy-ไม่ใช้-Docker คู่มือรันเอเจนต์ AI ตลอด 24/7 ครอบคลุม systemd แทน หน้านี้คือเวอร์ชันแบบคอนเทนเนอร์-เนทีฟ
สแตก
เอเจนต์ self-hosted ทั่วไปต้องการสี่อย่างข้าง ๆ ตัวมัน: โพรเซสเอเจนต์, Qdrant (ความจำเวกเตอร์), Redis (แคช / คิว) และ Postgres (สถานะ) นี่คือ docker-compose.yml ที่รันทั้งหมดนั้น โดยกันบริการภายในให้พ้นจากอินเทอร์เน็ตสาธารณะ:
# /opt/agent/docker-compose.yml
services:
agent:
build: . # your agent image (or image: your/agent:latest)
restart: unless-stopped
env_file: [.env] # OPENAI/ANTHROPIC keys etc. — never in this file
environment:
QDRANT_URL: http://qdrant:6333
REDIS_URL: redis://redis:6379
DATABASE_URL: postgres://agent:${DB_PASSWORD}@postgres:5432/agent
depends_on: [qdrant, redis, postgres]
# no ports: — this agent only makes outbound calls. Publish one only if it serves webhooks.
qdrant:
image: qdrant/qdrant:latest
restart: unless-stopped
volumes: ["qdrant:/qdrant/storage"] # internal only — not published
redis:
image: redis:7-alpine
restart: unless-stopped
command: ["redis-server", "--save", "60", "1"]
volumes: ["redis:/data"]
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: agent
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: agent
volumes: ["pg:/var/lib/postgresql/data"]
volumes: { qdrant: {}, redis: {}, pg: {} }
secret อยู่ใน .env ไม่ใช่ในไฟล์ compose:
# /opt/agent/.env (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string
ยกมันขึ้น:
apt update && apt install -y docker.io docker-compose-v2
systemctl enable --now docker
cd /opt/agent && docker compose up -d
docker compose logs -f agent
บริการภายในทุกตัว (Qdrant, Redis, Postgres) เข้าถึงได้ เฉพาะ บนเครือข่าย compose ด้วยชื่อบริการ — ไม่มีตัวใดถูกเผยแพร่สู่อินเทอร์เน็ต เอเจนต์คุยกับพวกมันผ่านเครือข่ายส่วนตัวนั้น และไม่มีอะไรบนพอร์ตเหล่านั้นหันหน้าออกสู่โลก
รายละเอียดที่สำคัญ
restart: unless-stoppedในทุกบริการ — นี่คือสิ่งที่รอดจากรีบูตหรือแครช เปิด Docker ตอนบูตแล้วสแตกทั้งชุดกลับมาเอง- คีย์อยู่ใน
.envไม่ใช่ใน YAML อ้างอิงเป็นตัวแปร env; เก็บ.envไว้ที่chmod 600และนอก git ไฟล์ compose ที่รั่วพร้อมคีย์ที่ใช้งานได้คือความผิดพลาดคลาสสิก - อย่าเผยแพร่อะไรที่ไม่จำเป็น เอเจนต์ที่เรียกแค่ API โมเดลและบริการของตัวเองไม่ต้องการพอร์ตขาเข้าเลย — ดังนั้นแพ็กเกจ NAT ก็ใช้ได้ เพิ่ม IP เฉพาะก็ต่อเมื่อมันให้บริการ webhook หรือแดชบอร์ด
- กำหนดขนาดตามหน่วยความจำ ไม่ใช่คอร์ เอเจนต์ที่พึ่ง API เบา เมื่อดัชนีของ Qdrant โตหรือคุณเพิ่มโมเดลในเครื่อง นั่นคือตอนที่คุณขยับขึ้น — ดู VPS หน่วยความจำสูงสำหรับเอเจนต์
ส่วนที่เป็นของเราจริง ๆ: เอเจนต์สร้างเครื่องของตัวเองได้
เพราะ EQVPS เปิด เซิร์ฟเวอร์ MCP เอเจนต์ที่รันสแตกนี้สามารถจัดหา อีก VPS สะอาดได้ด้วยตัวเอง — สั่งซื้อ รับ root รื้อทิ้ง — โดยจ่ายจากยอดคริปโตแบบเติมล่วงหน้า สแตก compose ที่ต้องการแซนด์บ็อกซ์ใหม่สามารถยกขึ้นได้โดยไม่มีมนุษย์ในลูป
ทำไมต้อง EQVPS สำหรับเอเจนต์ที่ทำเป็น Docker
- อิมเมจสะอาด, root ในราว 60 วินาที Ubuntu/Debian;
docker compose upแล้วสแตกก็ทำงาน - ไม่ต้อง KYC จ่ายด้วยคริปโต อีเมลเพื่อสมัคร USDC/USDT เพื่อจ่าย — ไม่มีอะไรผูกเครื่องเข้ากับตัวตนของคุณ
- NVMe + 1 Gbit/s ไม่คิดปริมาณ สหภาพยุโรป (เยอรมนี/ฟินแลนด์) การดึงอิมเมจและส่ง log จะไม่ทำให้เกิดบิลเซอร์ไพรส์
VPS สำหรับเอเจนต์ AI (ภาพรวม) → · VPS สำหรับ Docker → · โฮสต์ฐานข้อมูลเวกเตอร์สำหรับความจำเอเจนต์ →
ความคิดเห็น
ยังไม่มีความคิดเห็น เป็นคนแรกสิ