Gemini API của Google có lẽ là cách rẻ nhất - chính xác là miễn phí - để anh em vibe coder bắt đầu làm AI agent. Không cần thẻ tín dụng, không hết hạn, free tier dùng được luôn cho prototype thật. Bài này gõ thẳng: lấy key trong 2 phút, hiểu giới hạn free tier tháng 5/2026, và dựng một con agent Node/Python gọi Gemini chạy trên VPS.
Lấy API key miễn phí trong 2 phút
Khác với nhiều bên bắt nhập thẻ, Gemini cho key free không điều kiện:
- Vào aistudio.google.com bằng tài khoản Google.
- Bấm Get API key (góc trái) -> Create API key.
- Chọn project (hoặc tạo mới), copy key dạng
AIza.... - Xong. Không cần thẻ tín dụng, key không hết hạn.
Free tier cho bạn những gì (tháng 5/2026)
Free tier không phải đồ chơi - đủ chạy bot thật cho cá nhân và demo. Giới hạn theo từng model:
| Model | RPM (req/phút) | Req/ngày | Hợp với |
|---|---|---|---|
| Gemini 2.5 Pro | 5 | 100 | Reasoning khó, ít gọi |
| Gemini 2.5 Flash | 10 | 250 | Chatbot, agent cân bằng |
| Gemini 2.5 Flash-Lite | 15 | 1.000 | Lưu lượng cao, tác vụ nhẹ |
Các model chia sẻ giới hạn ~250.000 token/phút (TPM) và đều truy cập được context window 1 triệu token. Quota ngày reset lúc nửa đêm giờ Thái Bình Dương. Lưu ý: giới hạn tính theo project, không phải theo key - tạo nhiều key trong cùng project không tăng quota.
Gọi Gemini bằng Python: agent đầu tiên
SDK chính thức hiện tại là google-genai (thư viện cũ google-generativeai đã ngừng). Cài và gọi:
pip install -U google-genai
import os
from google import genai
# Key đọc từ biến môi trường, KHÔNG hardcode
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Viết hàm Python tính giai thừa, kèm 1 dòng giải thích."
)
print(response.text)
Đặt key vào biến môi trường trên VPS:
export GEMINI_API_KEY="AIza...your_key..."
# hoặc thêm vào ~/.bashrc / file .env (nhớ .gitignore)
Gọi Gemini bằng Node.js
Bên Node dùng package @google/genai:
npm install @google/genai
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const response = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: "Tóm tắt ưu điểm của Node.js trong 3 gạch đầu dòng.",
});
console.log(response.text);
Cấu hình thêm: nhiệt độ, JSON output, system prompt
Gọi thô như trên là đủ để thử, nhưng agent thật cần kiểm soát chặt hơn. Hai thứ hay dùng nhất: ép output JSON để parse máy không lỗi, và đặt system instruction để định tính cách/nhiệm vụ agent.
from google import genai
from google.genai import types
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Phân loại review: 'Sản phẩm ổn nhưng giao hàng chậm'",
config=types.GenerateContentConfig(
system_instruction="Bạn là bộ phân loại sentiment. Chỉ trả JSON.",
temperature=0.2,
response_mime_type="application/json",
),
)
print(response.text) # {"sentiment": "mixed", ...}
Đặt temperature thấp (0-0.3) cho tác vụ cần ổn định (phân loại, trích xuất); cao hơn (0.7-1.0) cho việc sáng tạo (viết nội dung). response_mime_type="application/json" ép model trả JSON hợp lệ - cứu bạn khỏi việc parse text lộn xộn trong pipeline.
Biến nó thành agent thật: gọi tool + automation
Một AI agent đúng nghĩa không chỉ trả lời text - nó gọi hàm (function calling) để làm việc thật. Ví dụ agent kiểm tra thời tiết rồi tự quyết:
import os
from google import genai
from google.genai import types
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
# Định nghĩa tool cho model gọi
def get_disk_usage(path: str) -> str:
"""Trả về dung lượng ổ đĩa còn trống tại path."""
import shutil
total, used, free = shutil.disk_usage(path)
return f"Free: {free // (2**30)} GB / Total: {total // (2**30)} GB"
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="VPS còn bao nhiêu dung lượng ở thư mục gốc?",
config=types.GenerateContentConfig(tools=[get_disk_usage]),
)
print(response.text)
SDK tự lo vòng lặp: Gemini thấy câu hỏi -> quyết định gọi get_disk_usage("/") -> nhận kết quả -> trả lời tự nhiên. Đây là nền tảng để dựng agent giám sát server, trợ lý DevOps, hay bot trả lời dựa trên dữ liệu nội bộ.
Xử lý lỗi và retry: agent không được tự chết
Free tier có rate limit, và mạng đôi khi rớt. Agent production phải biết tự lùi lại khi dính lỗi 429 (quá quota) hay 503 (server bận) chứ không crash. Mẫu retry với exponential backoff:
import time
from google import genai
from google.genai import errors
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
def ask_with_retry(prompt, max_retries=4):
for attempt in range(max_retries):
try:
return client.models.generate_content(
model="gemini-2.5-flash", contents=prompt
).text
except errors.APIError as e:
if e.code in (429, 503) and attempt < max_retries - 1:
wait = 2 ** attempt # 1s, 2s, 4s, 8s
time.sleep(wait)
continue
raise
print(ask_with_retry("Tóm tắt 1 câu: lợi ích của systemd."))
Chỉ retry với lỗi tạm thời (429/503). Lỗi 400 (sai request) hay 401 (key sai) thì retry vô nghĩa - fail nhanh và log lại để bạn sửa. Backoff lũy thừa tránh việc spam API càng làm rate limit nặng thêm.
Chạy agent 24/7 trên VPS
Laptop tắt là agent chết. Để agent chạy liên tục - nhận webhook, cron job, hay bot Telegram/Discord - bạn cần một VPS luôn bật. Quy trình chuẩn:
# 1. Tạo systemd service để agent tự chạy lại khi reboot
sudo tee /etc/systemd/system/gemini-agent.service > /dev/null <<'EOF'
[Unit]
Description=Gemini AI Agent
After=network.target
[Service]
WorkingDirectory=/home/deploy/agent
Environment=GEMINI_API_KEY=AIza...
ExecStart=/usr/bin/python3 main.py
Restart=always
User=deploy
[Install]
WantedBy=multi-user.target
EOF
# 2. Bật service
sudo systemctl enable --now gemini-agent
sudo systemctl status gemini-agent
Quản lý chi phí khi vượt free tier
Free tier tuyệt cho học và demo, nhưng agent phục vụ thật sẽ chạm trần. Trước khi nâng tier trả phí, áp vài chiến thuật giữ chi phí thấp:
- Phân tầng model: dùng Flash-Lite cho bước rẻ (phân loại, định tuyến), chỉ gọi Flash/Pro khi câu thật sự khó. Đa số request không cần model mạnh nhất.
- Cache câu trả lời: nhiều người dùng hỏi câu giống nhau. Lưu kết quả vào Redis/SQLite, gặp lại thì trả từ cache, không tốn gọi API.
- Cắt context thừa: đừng nhồi cả lịch sử chat dài vào mỗi request. Tóm tắt hội thoại cũ, chỉ giữ phần liên quan - vừa rẻ vừa nhanh.
- Đặt giới hạn output:
max_output_tokenschặn câu trả lời lan man, kiểm soát chi phí output.
Use case thực tế anh em hay dựng
- Bot Telegram/Discord trả lời câu hỏi, tóm tắt link - free tier Flash thừa cho nhóm nhỏ.
- Cron tóm tắt: mỗi sáng quét RSS/email, gọi Gemini tóm tắt, đẩy vào Slack.
- Agent giám sát: đọc log server, phát hiện bất thường, cảnh báo bằng ngôn ngữ tự nhiên.
- RAG nội bộ: nhúng tài liệu vào vector DB, Gemini trả lời dựa trên context 1M token.
- Pipeline nội dung: sinh draft, phân loại, kiểm tra chất lượng tự động.
Hầu hết các use case trên chỉ là một process Python/Node nhẹ - không cần GPU, chỉ cần VPS ổn định. Gói TND Cloud VPS SSD chạy thừa sức:
| Gói TND Cloud VPS SSD | Cấu hình | Giá/tháng | Hợp với |
|---|---|---|---|
| VPS 50 | 4 vCPU / 4GB | 639.000đ | 1-2 bot, cron job, agent đơn |
| VPS 160 | 8 vCPU / 8GB / 160GB | 1.790.000đ | Nhiều agent, RAG vector DB, queue |
| VPS 320 | 12 vCPU / 12GB / 320GB | 2.790.000đ | Pipeline AI nặng, nhiều service song song |
Tất cả dùng ổ Ceph SSD NVMe nên I/O nhanh, hợp cho vector DB và log. Anh em mới bắt đầu hành trình làm AI agent trên VPS nên xem thêm VPS cho vibe coder để chọn đúng cấu hình ngay từ đầu.
Dựng AI agent Gemini chạy 24/7 trên VPS Việt Nam
Gemini API free + một con VPS luôn bật là đủ để có agent thật. TND Cloud VPS SSD (Ceph NVMe, ping nội địa thấp) từ 639k/tháng.
Xem bảng giá VPS SSD Vietnam »
Cần tư vấn cấu hình cho dự án AI? Nhắn Messenger để được tư vấn »

