Bir yapay zekâ ajanı nadiren tek bir süreçtir. Ajan döngüsünün kendisi var, hafıza için bir vektör deposu, bir önbellek, genellikle durum için bir veritabanı ve belki küçük bir pano. Her birini elle çalıştırmak — başlatmak, yeniden başlatmadan sonra tekrar açmak, hangi portun hangisi olduğunu hatırlamak — çabucak yorucu olur. Docker Compose her şeyi tek dosyada tanımlar ve tek komutla çalıştırır. Bu, bir ajanı düzenli biçimde bir VPS'e koymak için kopyala-yapıştır yığındır.
Sadece Docker'sız dağıtım sürümünü istiyorsan, bir yapay zekâ ajanını 7/24 çalıştırma rehberi bunun yerine systemd'yi kapsar. Bu sayfa konteyner-yerel sürümdür.
Yığın
Tipik bir kendi-barındırılan ajan yanında dört şey ister: ajan süreci, Qdrant (vektör hafızası), Redis (önbellek / kuyruklar) ve Postgres (durum). İşte tüm bunları çalıştıran, iç hizmetleri kamusal internetten uzak tutan bir 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: {} }
Sırlar .env'de yaşar, compose dosyasında değil:
# /opt/agent/.env (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string
Ayağa kaldır:
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
Her iç hizmet (Qdrant, Redis, Postgres) yalnızca compose ağında hizmet adıyla erişilebilirdir — hiçbiri internete yayınlanmaz. Ajan onlarla bu özel ağ üzerinden konuşur ve o portlardaki hiçbir şey dünyaya bakmaz.
Önemli olan ayrıntılar
- Her hizmette
restart: unless-stopped— yeniden başlatma ya da çökmeyi atlatan budur. Docker'ı açılışta etkinleştir ve tüm yığın kendiliğinden geri gelir. - Anahtarlar
.env'de, YAML'de değil. Onlara env değişkenleri olarak referans ver;.env'ichmod 600'de ve git dışında tut. Canlı anahtar içeren sızmış bir compose dosyası klasik hatadır. - Zorunda olmadığın hiçbir şeyi yayınlama. Yalnızca model API'lerini ve kendi hizmetlerini çağıran bir ajanın hiç gelen porta ihtiyacı yoktur — o yüzden bir NAT planı işe yarar. Ayrılmış IP'yi yalnızca webhook ya da pano sunuyorsa ekle.
- Çekirdeğe değil belleğe göre boyutlandır. API destekli ajanlar hafiftir. Qdrant'ın dizini büyürse ya da yerel bir model eklersen, işte o zaman yükselirsin — ajanlar için yüksek bellekli VPS yazısına bak.
Gerçekten bize ait olan kısım: ajan kendi makinesini kurabilir
EQVPS bir MCP sunucusu sunduğundan, bu yığını çalıştıran bir ajan kendi başına başka temiz bir VPS sağlayabilir — onu sipariş edip, root alıp, yıkabilir — önceden ödenmiş bir kripto bakiyesinden ödeyerek. Yeni bir kum havuzuna ihtiyaç duyan bir compose yığını, döngüde insan olmadan bir tane ayağa kaldırabilir.
Docker'lı bir ajan için neden EQVPS
- Temiz imajlar, ~60 saniyede root. Ubuntu/Debian;
docker compose upve yığın canlı. - KYC yok, kripto ile ödeme. Kaydolmak için e-posta, ödemek için USDC/USDT — makineyi kimliğine bağlayan hiçbir şey yok.
- NVMe + ölçümsüz 1 Gbit/s, AB (Almanya/Finlandiya). İmaj çekmek ve log göndermek sürpriz bir fatura üretmez.
Yapay zekâ ajanları için VPS (genel bakış) → · Docker için VPS → · Ajan hafızası için bir vektör DB barındır →
Yorumlar
Henüz yorum yok. İlk olun.