本服务面向非中国大陆地区 · ZetaAPI.AI 的网站与控制台主要面向非中国大陆市场,注册与开通功能在你当前地区不可用。

Cấu hình ZetaAPI trong Claude Code

Chuyển Claude Code (CLI chính thức của Anthropic) sang ZetaAPI trong 30 giây, hưởng 0,3×–0,4× giá chính thức, hỗ trợ prompt cache.

Cập nhật 2026-10-05

Khi nào dùng

Claude Code là CLI dòng lệnh chính thức của Anthropic; sau khi cài bằng npm i -g @anthropic-ai/claude-code bạn có thể gọi Claude tương tác trong bất kỳ thư mục cục bộ nào. ZetaAPI cung cấp endpoint /v1/messages tương thích hoàn toàn với API chính thức của Anthropic, nên việc chuyển thượng nguồn chỉ cần đặt hai biến môi trường bắt buộc.

Chuẩn bị

Các bước cấu hình

1. Đặt biến môi trường

Thêm vào file cấu hình shell (~/.zshrc / ~/.bashrc):

export ANTHROPIC_BASE_URL="https://api.staging.cosmos-router.com"
export ANTHROPIC_API_KEY="sk-key-zetaapi-cua-ban"
export CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1

Nên giữ dòng thứ ba, CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1. Claude Code chỉ truyền tham số công cụ theo luồng khi kết nối trực tiếp tới Anthropic; khi ANTHROPIC_BASE_URL trỏ tới địa chỉ khác, tính năng này mặc định tắt, nên lúc ghi file lớn có thể mấy phút liền không có đầu ra rồi báo The response stopped arriving. Bật biến này thì tham số công cụ được trả về ngay trong lúc sinh ra.

Nạp lại cấu hình:

source ~/.zshrc

2. Cài một dòng lệnh (tùy chọn)

Nếu không muốn sửa cấu hình shell thủ công, một dòng lệnh là đủ:

npx --prefer-online zetaapi@latest setup --api-url=https://api.staging.cosmos-router.com claude-code

Lệnh này ghi ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN và CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1 vào khối env của ~/.claude/settings.json (file hiện có sẽ được sao lưu thành settings.json.bak.<dấu thời gian>) và kiểm tra kết nối. Nếu khối env đã có sẵn CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING, giá trị cũ sẽ được giữ nguyên. Khi được hỏi, dán Install Token (lấy trong hộp thoại «Cấu hình kết nối» / «Kết nối công cụ mới» của console, bắt đầu bằng ze_inst_, hiệu lực 5 phút) hoặc dán thẳng API Key (sk-); với CI / chạy không tương tác, thêm --token=ze_inst_xxx hoặc đặt biến ZETAAPI_TOKEN.

3. Xác minh

Trong bất kỳ thư mục dự án nào, chạy:

claude

Sau câu hỏi đầu tiên, bảng điều khiển sẽ hiện ngay lượng token và chi phí của lần gọi này.

Câu hỏi thường gặp

H: Vì sao tôi nhận 401 Unauthorized?

Kiểm tra ANTHROPIC_API_KEY là key ZetaAPI (bắt đầu bằng sk-), không phải key chính thức của Anthropic dạng sk-ant-.

Nếu bạn cấu hình bằng npx zetaapi setup --api-url=https://api.staging.cosmos-router.com, thông tin xác thực nằm ở env.ANTHROPIC_AUTH_TOKEN trong ~/.claude/settings.json — hãy kiểm tra khoá đó thay vì biến môi trường.

H: Khi ghi file lớn thì không có đầu ra một lúc lâu, cuối cùng báo The response stopped arriving. Phải làm sao?

Claude Code chỉ truyền tham số công cụ theo luồng khi kết nối trực tiếp tới Anthropic. Khi ANTHROPIC_BASE_URL trỏ tới địa chỉ khác, tham số của các công cụ như ghi file (ví dụ nội dung file cần ghi) được dồn lại gửi một lượt sau khi sinh xong toàn bộ, nên với file lớn, có thể mấy phút liền không có đầu ra và Claude Code cho rằng kết nối đã đứt.

Thêm CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1 vào file cấu hình shell hoặc vào khối env của ~/.claude/settings.json. Nếu sửa file cấu hình shell, hãy nạp lại (hoặc mở terminal mới) rồi khởi động lại Claude Code. npx zetaapi setup --api-url=https://api.staging.cosmos-router.com claude-code sẽ tự ghi mục này.

H: Có hỗ trợ prompt cache không?

Có. Claude Code mặc định bật ephemeral cache control; ZetaAPI chuyển tiếp nguyên hành vi cache, và đọc cache tính bằng 10% giá đầu vào — giống chính thức.

H: Vì sao context của Sonnet chỉ có 200K? Làm sao dùng hết 1M?

Khi Claude Code trỏ tới một địa chỉ API bên thứ ba, nó không thể tự xác minh đầu bên kia có hỗ trợ context 1 triệu token hay không, nên mặc định cấp phát 200K cho an toàn. Đây là hành vi của client, không phải giới hạn của ZetaAPI.

Chỉ cần chỉ định thủ công một lần trong phiên:

/model sonnet[1m]

Bạn cũng có thể gõ /model để mở bộ chọn mô hình và chọn mục có nhãn 1M context. Ký hiệu [1m] chỉ là chỉ thị nội bộ của Claude Code — nó bị loại bỏ trước khi gửi request, nên tên mô hình mà ZetaAPI nhận được vẫn là claude-sonnet-5, không cần cấu hình gì thêm.

ZetaAPI đã chạy thực tế context hơn 600 nghìn token với Sonnet và khoảng 900 nghìn token với Opus. Lưu ý context siêu dài khiến mỗi lượt đều gửi lại toàn bộ lịch sử, làm lượng token tăng đáng kể — nên điều chỉnh cùng với ngưỡng compact ở mục dưới.

H: Có thể tắt tự động compact không?

Có. Thêm vào ~/.claude/settings.json:

"autoCompactEnabled": false

Tuy nhiên nên tăng ngưỡng kích hoạt thay vì tắt hẳn:

/autocompact 500k

Giá trị nhận từ 100K đến 1M và bị giới hạn bởi cửa sổ context của mô hình hiện tại. Với script hoặc CI, dùng biến môi trường CLAUDE_CODE_AUTO_COMPACT_WINDOW (chỉ nhận số thuần, ví dụ 500000); còn claude --autocompact 500k chỉ áp dụng cho một lần khởi chạy.

Sau khi tắt hẳn, khi context đầy Claude Code sẽ báo Prompt is too long và dừng hội thoại thay vì tóm tắt lịch sử rồi chạy tiếp. Nếu chỉ thấy compact chạy quá thường xuyên thì tăng ngưỡng vẫn thực dụng hơn là tắt.

H: Muốn quay lại chính thức cần gì?

Xóa hoặc chú thích ANTHROPIC_BASE_URL và đặt lại ANTHROPIC_API_KEY về key chính thức của Anthropic. Nếu bạn cấu hình bằng npx zetaapi setup --api-url=https://api.staging.cosmos-router.com, hãy xoá ANTHROPIC_BASE_URL và ANTHROPIC_AUTH_TOKEN khỏi khối env trong ~/.claude/settings.json (có bản sao lưu .bak.<dấu thời gian>).