Tóm tắt: Theo mặc định, Claude Code bị khóa chặt với các mô hình của Anthropic. Tuy nhiên, bằng cách định tuyến các yêu cầu thông qua Bifrost – một gateway LLM mã nguồn mở mạnh mẽ – bạn có thể dễ dàng sử dụng GPT-4o, Gemini, Llama, Mistral, hoặc bất kỳ nhà cung cấp nào trong số hơn 20 lựa chọn khác. Điều tuyệt vời là bạn không cần phải thay đổi bất kỳ dòng mã nào trong Claude Code. Chỉ cần thay đổi một biến môi trường, bạn sẽ có toàn quyền kiểm soát ngân sách và khả năng linh hoạt tối đa. Hướng dẫn chi tiết này sẽ giúp bạn hoàn tất toàn bộ thiết lập chỉ trong chưa đầy 10 phút.
Nếu bạn đã sẵn sàng và muốn bắt đầu ngay, hãy truy cập các tài nguyên dưới đây:
Mục lục
Tại Sao Bạn Cần Giải Pháp Này Cho Claude Code?
Nếu bạn đang sử dụng Claude Code hàng ngày (và thực sự, ai mà không dùng ở thời điểm hiện tại), chắc hẳn bạn đã gặp phải một trong những tình huống sau:
So Sánh Hiệu Suất Giữa Các Mô Hình Khác Nhau
Claude Sonnet là một lựa chọn tuyệt vời cho hầu hết các tác vụ lập trình, nhưng có thể GPT-4o lại xử lý codebase cụ thể của bạn hiệu quả hơn. Hoặc, đôi khi cửa sổ ngữ cảnh (context window) khổng lồ của Gemini mới là thứ bạn thực sự cần cho một monorepo đồ sộ. Nếu không có một gateway như Bifrost, bạn sẽ không thể kiểm thử và so sánh các mô hình này, vì Claude Code chỉ giao tiếp trực tiếp với Anthropic.
Kiểm Soát Chi Phí API Hiệu Quả
Claude Code tiêu tốn token rất nhanh, đặc biệt trong các phiên làm việc code chuyên sâu. Một buổi lập trình “nặng đô” có thể dễ dàng ngốn của bạn hàng triệu đồng chi phí API. Sẽ thế nào nếu bạn có thể định tuyến các tác vụ đơn giản hơn đến GPT-4o-mini hoặc một mô hình mã nguồn mở và tiết kiệm tới 60-80% chi phí cho các cuộc gọi đó? Bifrost mang đến cho bạn khả năng kiểm soát ngân sách chưa từng có.
Đảm Bảo Tuân Thủ Các Quy Định Nghiêm Ngặt
Trong một số ngành nghề như tài chính hoặc y tế, việc tuân thủ các quy định về quyền riêng tư dữ liệu (ví dụ: DPDPA) có thể yêu cầu tất cả lưu lượng truy cập API phải chảy qua hạ tầng riêng của bạn, thay vì trực tiếp đến các API đặt tại nước ngoài. Một gateway tự host như Bifrost cung cấp cho bạn quyền kiểm soát cần thiết để đáp bảo tuân thủ.
Nâng Cao Khả Năng Quan Sát & Giám Sát (Observability)
Claude Code thực sự đang gọi đến mô hình nào? Mỗi phiên làm việc tiêu tốn bao nhiêu token? Chi phí cho mỗi tính năng là bao nhiêu? Không có gateway, bạn đang “bay mù”. Bifrost cung cấp nhật ký đầy đủ về mọi yêu cầu, phản hồi và chi phí, giúp bạn có cái nhìn rõ ràng về việc sử dụng.
Kiến Trúc Hoạt Động Của Bifrost Với Claude Code
Thiết lập kiến trúc cực kỳ đơn giản. Claude Code sử dụng biến môi trường ANTHROPIC_BASE_URL để xác định nơi gửi các yêu cầu API. Thông thường, biến này sẽ trỏ đến https://api.anthropic.com.
Với Bifrost, bạn sẽ thay đổi biến này để nó trỏ đến Bifrost thay thế:
Claude Code --> Bifrost (localhost:8080) --> Mọi Nhà Cung Cấp LLM
Bifrost hoạt động bằng cách cung cấp một endpoint tương thích với Anthropic tại đường dẫn /anthropic. Nó tiếp nhận các yêu cầu theo định dạng Messages API của Anthropic, sau đó chuyển đổi chúng sang định dạng của nhà cung cấp LLM mà bạn đã cấu hình (ví dụ: OpenAI, Gemini). Sau khi gửi yêu cầu và nhận phản hồi, Bifrost sẽ chuyển đổi phản hồi trở lại định dạng Anthropic trước khi gửi về Claude Code.
Claude Code hoàn toàn không nhận ra sự khác biệt. Nó vẫn “nghĩ” rằng mình đang nói chuyện trực tiếp với Anthropic. Nhưng trên thực tế, Bifrost có thể định tuyến yêu cầu đó tới OpenAI, Gemini, Bedrock, Groq, Mistral, Ollama, hoặc bất kỳ LLM nào bạn đã thiết lập.
Điều này mang lại những lợi ích đáng kể:
- Không thay đổi mã nguồn nào trong Claude Code.
- Chỉ cần thiết lập một biến môi trường duy nhất.
- Linh hoạt hoàn toàn về nhà cung cấp – dễ dàng hoán đổi mô hình mà không cần khởi động lại Claude Code.
- Thực thi ngân sách – thiết lập giới hạn chi tiêu cho từng khóa ảo (virtual key).
- Ghi nhật ký yêu cầu đầy đủ – mọi prompt, mọi phản hồi và mọi chi phí đều được lưu lại.
Hướng Dẫn Từng Bước Thiết Lập Bifrost Với Claude Code
Bước 1: Cài Đặt Bifrost
Bạn có hai lựa chọn để cài đặt Bifrost, cả hai đều chỉ mất khoảng 30 giây.
Tùy chọn A: NPX (Khuyến nghị cho khởi đầu nhanh chóng)
Đây là cách nhanh nhất để chạy Bifrost:
npx -y @maximhq/bifrost
Chỉ với một lệnh duy nhất, Bifrost sẽ được cài đặt và chạy trên http://localhost:8080.
Tùy chọn B: Docker (Khuyến nghị để quản lý bền vững)
Đối với môi trường sản xuất hoặc khi bạn muốn đảm bảo dữ liệu cấu hình được duy trì qua các lần khởi động lại, Docker là lựa chọn tốt hơn:
docker pull maximhq/bifrost
docker run -p 8080:8080 -v $(pwd)/data:/app/data maximhq/bifrost
Việc mount volume (-v) đảm bảo rằng cấu hình, nhật ký và bộ đệm của bạn sẽ không bị mất khi container được xây dựng lại hoặc khởi động lại.
Sau khi cài đặt, hãy mở trình duyệt và truy cập http://localhost:8080. Bạn sẽ thấy giao diện web UI của Bifrost, nơi bạn có thể cấu hình các nhà cung cấp một cách trực quan.
Bước 2: Cấu Hình Các Nhà Cung Cấp LLM Của Bạn
Bifrost cung cấp hai cách để thêm các nhà cung cấp LLM: thông qua giao diện Web UI thân thiện hoặc sử dụng tệp config.json.
Sử dụng Web UI (Dễ dàng hơn)
- Mở
http://localhost:8080trong trình duyệt của bạn. - Chuyển đến mục Providers (Nhà cung cấp).
- Nhấp vào nút “Add Provider” (Thêm nhà cung cấp).
- Chọn nhà cung cấp bạn muốn sử dụng (ví dụ: OpenAI, Anthropic, Gemini).
- Dán khóa API (API key) của bạn vào trường tương ứng.
- Chọn những mô hình nào bạn muốn kích hoạt từ nhà cung cấp đó.
Bạn có thể thêm nhiều nhà cung cấp khác nhau. Bifrost sẽ sử dụng chúng để định tuyến và dự phòng khi cần.
Sử dụng config.json (Cho Tự Động Hóa / GitOps)
Nếu bạn muốn tự động hóa cấu hình hoặc tích hợp vào quy trình GitOps, hãy tạo một tệp config.json trong thư mục ứng dụng Bifrost của bạn:
{
"providers": {
"openai": {
"keys": [
{
"name": "openai-primary",
"value": "env.OPENAI_API_KEY",
"models": ["gpt-4o", "gpt-4o-mini"],
"weight": 1.0
}
]
},
"anthropic": {
"keys": [
{
"name": "anthropic-primary",
"value": "env.ANTHROPIC_API_KEY",
"models": ["claude-sonnet-4-20250514"],
"weight": 1.0
}
]
},
"gemini": {
"keys": [
{
"name": "gemini-primary",
"value": "env.GEMINI_API_KEY",
"models": ["gemini-2.5-pro"],
"weight": 1.0
}
]
}
}
}
Trong ví dụ này, bạn đã thông báo cho Bifrost về ba nhà cung cấp. Cú pháp "value": "env.OPENAI_API_KEY" có nghĩa là Bifrost sẽ đọc khóa API từ biến môi trường của bạn, đảm bảo rằng khóa API thực tế không bao giờ được lưu trực tiếp trong tệp cấu hình.
Bước 3: Hướng Claude Code Đến Bifrost
Đây là bước quan trọng nhất. Bạn cần thiết lập hai biến môi trường:
export ANTHROPIC_BASE_URL=http://localhost:8080/anthropic
export ANTHROPIC_API_KEY=dummy-key
Tại sao lại là dummy-key? Bởi vì Bifrost sẽ tự xử lý việc xác thực thực tế với các nhà cung cấp LLM. Claude Code cần một giá trị nào đó trong biến ANTHROPIC_API_KEY để không báo lỗi, nhưng Bifrost sẽ không kiểm tra giá trị này – nó sẽ sử dụng các khóa API của nhà cung cấp mà bạn đã cấu hình ở Bước 2.
Lưu ý quan trọng: Nếu bạn đang sử dụng Claude Code với gói đăng ký MAX (không phải xác thực bằng khóa API), Bifrost tích hợp liền mạch với tài khoản MAX. Cơ chế xác thực dựa trên phiên của Claude Code hoạt động trơn tru thông qua gateway.
Bây giờ, bạn có thể khởi chạy Claude Code như bình thường:
claude
Vậy là xong! Mọi yêu cầu mà Claude Code thực hiện giờ đây sẽ chảy qua Bifrost.
Bước 4: Định Tuyến Yêu Cầu Đến Các Mô Hình Khác Nhau
Đây là lúc sức mạnh của Bifrost được thể hiện. Theo mặc định, Claude Code gửi yêu cầu cho các mô hình của Anthropic. Nhưng thông qua Bifrost, bạn có thể định tuyến các yêu cầu này đến bất kỳ nhà cung cấp nào.
Phương pháp 1: Sử dụng tiền tố mô hình của Bifrost
Nếu bạn sử dụng Claude Code trong một ngữ cảnh mà bạn có thể chỉ định mô hình (ví dụ: qua cài đặt hoặc các cuộc gọi API), hãy thêm tiền tố nhà cung cấp vào tên mô hình:
openai/gpt-4o
gemini/gemini-2.5-pro
groq/llama-3.1-70b-versatile
mistral/mistral-large-latest
ollama/llama3
Phương pháp 2: Cấu hình quy tắc định tuyến trên Virtual Keys (Khóa ảo)
Đây là cách tiếp cận tinh tế và mạnh mẽ hơn. Tạo một Virtual Key trong cài đặt quản trị của Bifrost để tự động định tuyến các yêu cầu:
- Truy cập Bifrost UI > Governance > Virtual Keys.
- Tạo một Virtual Key mới.
- Thêm các quy tắc định tuyến – ví dụ: định tuyến tất cả các yêu cầu đến
openai/gpt-4otheo mặc định. - Bạn có thể đặt header
x-model-providerhoặc cấu hình định tuyến mặc định.
Ví dụ qua API:
curl -X POST http://localhost:8080/api/governance/virtual-keys \
-H "Content-Type: application/json" \
-d '{
"name": "claude-code-routing",
"budget": {
"max_budget": 100,
"budget_duration": "monthly"
},
"providers": [
{
"provider": "openai",
"model": "gpt-4o",
"weight": 0.7
},
{
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"weight": 0.3
}
]
}'
Trong ví dụ này, 70% yêu cầu sẽ được gửi đến GPT-4o, và 30% sẽ đến Claude Sonnet. Đồng thời, có một giới hạn ngân sách $100/tháng. Bifrost sẽ tự động thực thi các quy tắc này.
Bước 5: Thiết Lập Kiểm Soát Ngân Sách
Nếu bạn đang quản lý một đội nhóm, tính năng này là cực kỳ quan trọng. Virtual Keys của Bifrost cho phép bạn thiết lập các giới hạn chi tiêu cứng rắn.
- Ngân sách theo khóa (Per-key budgets): Cấp cho mỗi nhà phát triển một khóa ảo với giới hạn chi tiêu hàng tháng. Ví dụ: 10.000.000 VNĐ/tháng cho các junior dev, 50.000.000 VNĐ/tháng cho các senior dev. Bifrost sẽ ngừng định tuyến yêu cầu khi ngân sách đã cạn.
- Giới hạn tốc độ (Rate limits): Ngăn chặn các script “chạy loạn” tiêu tốn hết hạn mức của bạn. Đặt giới hạn số yêu cầu mỗi phút cho từng khóa ảo.
- Hạn chế mô hình (Model restrictions): Khóa một virtual key chỉ được sử dụng các mô hình nhất định. Môi trường staging của bạn có thể không cần
claude-opus-4-20250514– hãy hạn chế nó chỉ dùnggpt-4o-miniđể tiết kiệm chi phí.
Bước 6: Kích Hoạt Cơ Chế Dự Phòng (Fallbacks)
Các nhà cung cấp có thể gặp sự cố. Giới hạn tốc độ có thể bị đạt tới. Bifrost xử lý những tình huống này một cách tự động.
Khi bạn cấu hình các cơ chế dự phòng, Bifrost sẽ tuân theo quy trình sau:
- Thử nhà cung cấp chính: Gửi yêu cầu đến nhà cung cấp chính đã cấu hình.
- Phát hiện lỗi: Lỗi mạng, vượt quá giới hạn tốc độ (429), mô hình không khả dụng.
- Thử các nhà cung cấp dự phòng theo thứ tự: Mỗi nhà cung cấp dự phòng sẽ nhận một nỗ lực mới với tất cả các plugin đang chạy.
- Trả về kết quả thành công: Từ nhà cung cấp nào thành công trước tiên.
Cấu hình cơ chế dự phòng trong yêu cầu của bạn hoặc ở cấp Virtual Key:
{
"model": "openai/gpt-4o",
"messages": [{"role": "user", "content": "Hello"}],
"fallbacks": [
{"provider": "anthropic", "model": "claude-sonnet-4-20250514"},
{"provider": "gemini", "model": "gemini-2.5-pro"}
]
}
Điều này có nghĩa là đối với quy trình làm việc của Claude Code: nếu OpenAI gặp sự cố, phiên lập trình của bạn sẽ không bị gián đoạn. Bifrost sẽ tự động chuyển đổi sang Anthropic, sau đó là Gemini. Không cần sự can thiệp thủ công nào.
Các Tính Năng Bổ Sung Mạnh Mẽ Của Bifrost
Bonus: Tích Hợp Công Cụ MCP Trong Claude Code
Đây là một trong những tính năng thực sự thú vị. Bifrost hỗ trợ tích hợp đầy đủ Giao thức Ngữ cảnh Mô hình (Model Context Protocol – MCP). Khi bạn cấu hình các máy chủ MCP trong Bifrost, các công cụ đó sẽ tự động trở nên khả dụng cho bất kỳ mô hình nào được định tuyến qua nó – bao gồm cả Claude Code.
Nếu bạn đã thiết lập các công cụ MCP để truy cập hệ thống tệp, tìm kiếm web, truy vấn cơ sở dữ liệu hoặc các cuộc gọi API tùy chỉnh, Claude Code có thể tự động khám phá và sử dụng chúng mà không cần cấu hình thêm. Bifrost sẽ chèn các công cụ này vào mảng công cụ của yêu cầu trước khi chuyển tiếp đến nhà cung cấp mô hình.
Bonus: Kích Hoạt Bộ Nhớ Đệm Ngữ Nghĩa (Semantic Caching)
Nếu bạn lặp lại các câu hỏi tương tự nhiều lần (và trong các phiên lập trình, điều này chắc chắn xảy ra), bộ nhớ đệm ngữ nghĩa sẽ giúp bạn tiết kiệm chi phí đáng kể.
Bộ nhớ đệm ngữ nghĩa của Bifrost sử dụng tìm kiếm tương tự vector. Nó không yêu cầu prompt phải hoàn toàn giống nhau – nó khớp bằng ý nghĩa. Các câu hỏi như “Làm thế nào để sắp xếp một mảng trong Python?” và “Sắp xếp mảng Python” sẽ khớp vào cùng một mục trong bộ nhớ đệm.
Việc truy xuất từ bộ nhớ đệm chỉ mất dưới mili giây, so với các cuộc gọi API có thể mất vài giây. Và chi phí? Bằng không cho các truy xuất trúng bộ nhớ đệm.
Khắc Phục Sự Cố Nhanh Chóng
- Claude Code hiển thị lỗi xác thực: Đảm bảo biến môi trường
ANTHROPIC_API_KEYđã được đặt (ngay cả khi làdummy-key). Claude Code xác thực biến này tồn tại trước khi thực hiện các yêu cầu. - Yêu cầu không được định tuyến đến đúng nhà cung cấp: Kiểm tra cấu hình nhà cung cấp trong Bifrost của bạn. Tiền tố mô hình (
openai/,gemini/, v.v.) phải khớp với một nhà cung cấp đã cấu hình. - Độ trễ cao: Nếu bạn đang chạy Bifrost và Claude Code trên cùng một máy, độ trễ bổ sung là không đáng kể – khoảng 11us trên một máy tính khá. Nếu Bifrost đang chạy trên một máy chủ từ xa, hãy tính đến thời gian round-trip mạng.
- Lỗi nhà cung cấp: Kiểm tra nhật ký yêu cầu của Bifrost tại
http://localhost:8080. Mọi yêu cầu đều được ghi lại với đầy đủ chi tiết – đầu vào, đầu ra, trạng thái, độ trễ, chi phí.
Tóm Lược Những Gì Bạn Đã Xây Dựng
Hãy cùng điểm lại những gì bạn đã đạt được:
- Claude Code định tuyến thông qua một gateway tự host (thân thiện với các quy định bảo mật dữ liệu).
- Truy cập vào hơn 20 nhà cung cấp LLM khác nhau thông qua một endpoint duy nhất.
- Kiểm soát ngân sách để ngăn chặn các hóa đơn bất ngờ.
- Chuyển đổi dự phòng tự động giữa các nhà cung cấp.
- Ghi nhật ký đầy đủ yêu cầu/phản hồi và theo dõi chi phí.
- Bộ nhớ đệm ngữ nghĩa cho các truy vấn lặp lại.
- Tích hợp công cụ MCP để mở rộng khả năng.
Tất cả những điều này chỉ từ một thay đổi biến môi trường và cài đặt trong 30 giây.
Bắt đầu ngay bây giờ:
- GitHub: git.new/bifrost
- Docs: getmax.im/bifrostdocs
- Website: getmax.im/bifrost-home
Bifrost là dự án mã nguồn mở (Apache 2.0), một phần của nền tảng Maxim AI. Hãy đánh dấu sao trên GitHub nếu bạn thấy bài viết này hữu ích!
Có câu hỏi về thiết lập? Hãy để lại bình luận bên dưới hoặc mở một issue trên GitHub. Chúng tôi sẵn lòng hỗ trợ gỡ lỗi.



