Gemini API: lấy key miễn phí + tích hợp vào AI agent trên VPS

Mục lục

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:

  1. Vào aistudio.google.com bằng tài khoản Google.
  2. Bấm Get API key (góc trái) -> Create API key.
  3. Chọn project (hoặc tạo mới), copy key dạng AIza....
  4. Xong. Không cần thẻ tín dụng, key không hết hạn.
⚠️ Lưu ý: Google AI Studio free tier được phép dùng input/output của bạn để cải thiện model của họ. Đừng đẩy data nhạy cảm (PII khách hàng, code nội bộ) qua free tier. Cần riêng tư thì lên tier trả phí (data không bị dùng để train) hoặc tự host model.

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.

💡 Mẹo: Với agent xử lý nhiều request, dùng Flash-Lite (1.000 req/ngày) cho bước phân loại/định tuyến rẻ, chỉ gọi Flash hoặc Pro khi thật sự cần reasoning. Phối model như vậy giúp ở lại trong free tier lâu hơn.

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
💡 Mẹo: Đặt VPS ở Việt Nam giúp ping tới người dùng nội địa thấp, đồng thời gọi Gemini API (server Google toàn cầu) vẫn nhanh vì kết nối quốc tế của datacenter tốt. Với bot phục vụ user Việt, VPS nội địa cho trải nghiệm mượt hơn server nước ngoài.

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_tokens chặn câu trả lời lan man, kiểm soát chi phí output.
💡 Mẹo: Context window 1 triệu token rất hấp dẫn, nhưng nhồi đầy mỗi request là đốt tiền vô ích. Chỉ đưa vào context phần model thật sự cần để trả lời câu hiện tại. Một RAG tốt truy xuất 3-5 đoạn liên quan còn rẻ và chính xác hơn nhồi cả tài liệu.

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.

⚠️ Lưu ý: Free tier có giới hạn req/ngày. Khi agent lên production phục vụ nhiều user, theo dõi quota và nâng lên tier trả phí trước khi chạm trần - kẻo bot chết giữa giờ cao điểm. Quota tính theo project, đừng trông chờ tạo thêm key để lách.

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 »

Chia sẻ bài viết