Skip to content

Đổi base URL Claude Code: điều gì thực sự thay đổi

Điểm chính

  • Base URL là phần dễ: nó chỉ là một giá trị cấu hình, và Claude Code nói rõ nó đã nạp những nguồn cấu hình nào. Chạy /status và đọc dòng Setting sources.
  • Phần khó là endpoint mới xử lý prompt cache thế nào. Claude Code là một agent: mỗi lượt nó gửi lại toàn bộ hội thoại đang lớn dần, và cache là thứ khiến việc đó không bị tính phí như input mới. Một endpoint không giữ đúng hành vi cache có thể tốn gấp nhiều lần so với mức giá niêm yết — mà trong terminal trông vẫn hoàn toàn bình thường.
  • Mỗi model có prompt cache riêng. Đổi model giữa phiên nghĩa là yêu cầu đầu tiên sau khi đổi sẽ đọc lại toàn bộ hội thoại ở dạng chưa cache. Hãy chọn model theo hình dạng công việc ngay từ đầu, đừng đổi giữa đường.
  • Trước khi trỏ Claude Code vào bất kỳ endpoint nào, hỏi ba câu: có báo cache read và cache write tách riêng không, có chuyển tiếp cache hint không, và yêu cầu lỗi hoặc bị thử lại có bị tính phí không. Số liệu trong phiên của bạn sẽ không tự trả lời ba câu này.

Phần dễ: cấu hình nằm ở đâu

Claude Code đọc cấu hình từ các tệp JSON, và cấu hình đến từ file nào quyết định nó áp dụng cho ai:

Phạm viFileÁp dụng choDùng khi
Người dùng~/.claude/settings.jsonBạn, ở mọi project trên máy nàyMặc định cá nhân, quy tắc cấp quyền của riêng bạn
Project.claude/settings.jsonMọi người làm trong thư mục đóCấu hình chung của nhóm — commit để đồng đội nhận được
Localghi đè cục bộ trong projectBạn, trong project đóThử nghiệm riêng, không muốn commit
Managedchính sách của tổ chứcMọi người, không gì cục bộ ghi đè đượcChỉ khi tổ chức quản lý Claude Code tập trung

Cùng những khoá đó cũng đặt được theo từng phiên từ dòng lệnh hoặc từ biến môi trường, và các ghi đè này có độ ưu tiên cao hơn file. Rất tiện để thử nhanh, và cũng là nguyên nhân phổ biến của "tôi sửa rồi mà không thấy gì đổi".

Cách tự kiểm tra: chạy /status trong Claude Code. Dòng Setting sources liệt kê từng tệp cấu hình đã được nạp cho phiên hiện tại, theo thứ tự ưu tiên. Nếu bản sửa của bạn không có trong danh sách đó, nó chưa có hiệu lực — thử lại yêu cầu bao nhiêu lần cũng vô ích.

Phần quyết định chi phí: prompt cache

Đây là phần đáng hiểu trước khi chuyển bất cứ thứ gì.

Một client chat gửi một câu hỏi và nhận một câu trả lời. Claude Code là một agent: nó đọc file, gọi công cụ, nhận kết quả, rồi làm tiếp — một task có thể là hàng chục yêu cầu, và mỗi yêu cầu mang theo toàn bộ hội thoại tính đến lúc đó. Nếu phần đầu đó bị tính phí như input mới ở mọi lượt, lập trình kiểu agent sẽ đắt đến mức không dùng được.

Prompt cache ngăn điều đó. Phần prefix ổn định được lưu lại, các lượt sau trả giá cache read thay vì trả toàn bộ input mới. Claude Code hiển thị đúng thứ này: sau response đầu tiên của phiên, nó in một dòng prompt cache gồm số yêu cầu, tỷ lệ input token được phục vụ từ cache, số lần cache miss, và cache hiện có "nóng" hay không. Màn hình /usage bóc cùng phiên đó theo từng model thành input, output, cache read và cache write.

Hai hệ quả, và chúng quan trọng hơn đơn giá token:

  1. Chỉ số cần nhìn là tỷ lệ cache khớp, không phải giá niêm yết. Một phiên có chín phần mười input phục vụ từ cache hành xử hoàn toàn khác một phiên cache lạnh — cùng model, cùng công việc, chi phí rất khác.
  2. Đổi model giữa phiên là mất cache. Mỗi model giữ prompt cache riêng, nên yêu cầu đầu tiên sau khi đổi sẽ đọc lại toàn bộ hội thoại ở dạng chưa cache. Trong một phiên dài, riêng yêu cầu đó có thể là yêu cầu đắt nhất trong ngày.

Cách tự kiểm tra: chạy một task thật, rồi mở /usage và đọc dòng prompt cache. Nếu hoàn toàn không có dòng cache, endpoint đó không báo token cache — và bạn vừa có câu trả lời về nền tảng đó.

Phân việc, không chỉ phân yêu cầu

Vì cache thưởng cho sự liên tục, câu hỏi hữu ích không phải "model nào tốt nhất" mà là công việc tôi sắp giao có hình dạng gì:

Hình dạng công việcCần gìNguyên tắc thực dụng
Refactor toàn repo, sửa nhiều file, task dài hơiContext lớn và nhiều lượt gọi công cụGiữ nguyên một model cho cả task
Sửa hàng loạt, máy móc: đổi tên, boilerplate, scaffold testLượt rẻ, ít cần phán đoánDùng tier rẻ hơn — và dùng phiên riêng
Suy luận sâu trong một file, kiến trúc, debug khóModel mạnh nhất có thểDùng tiết chế, và mở phiên mới để context sạch
Khảo sát, tìm kiếm: "chỗ này xử lý ở đâu?"Phản hồi nhanh, output nhỏĐừng đốt model đắt nhất cho việc này

Bản thực dụng của điều này: quyết định model ở đầu task, không phải ở giữa. Nếu buộc phải đổi giữa task, hãy đổi ở ranh giới tự nhiên — sau một commit, hoặc sau /clear — chứ đừng đổi giữa một hội thoại dài đang được cache.

Những thói quen trả lại tiền trong phiên thật

Đây là những điều nhìn thấy được trong số liệu phiên, không phải ý kiến:

  • Đặt chỉ dẫn thường trực trong CLAUDE.md. Quy ước, lệnh, chuẩn code của project thuộc về đó, không phải gõ lại vào chat mỗi lần. Prefix ổn định cũng chính là prefix cache được.
  • Xin bản kế hoạch trước khi xin bản sửa. Sửa một kế hoạch tốn vài trăm token; sửa một đợt refactor đã làm dở trên hai mươi file tốn cả một phiên.
  • Mỗi phiên một task, và /clear giữa các task không liên quan. Số liệu phiên được reset khi bắt đầu phiên mới, nên việc xoá cũng cho bạn một phép đo chi phí sạch cho từng task.
  • Giữ một model rẻ cho việc khảo sát. Đọc, tìm, tóm tắt không cần tier đắt, mà lại đúng là loại việc làm đầy context window.
  • Kiểm chứng bằng repo, không bằng sự tự tin của agent. Diff, test, type check. Claude Code báo nó đã làm gì; chỉ có mã nguồn xác nhận điều đó.

Trước khi trỏ Claude Code vào bất kỳ endpoint nào

Mọi thứ ở trên phụ thuộc vào việc endpoint có hành xử giống API mà Claude Code được viết cho hay không. Ba câu hỏi quyết định điều đó:

  1. Có báo cache read và cache write tách riêng không? Nếu response gộp tất cả thành một con số input, số liệu phiên của bạn trở nên vô nghĩa và bạn không phân biệt được cache nóng với cache lạnh.
  2. Có chuyển tiếp cache hint, hay tính lại prefix ở mọi lượt? Đây là khác biệt giữa một phiên agent bình thường và một phiên agent tốn gấp nhiều lần cho cùng output. Nó hiện ra ở dòng cache, không hiện ra ở chất lượng câu trả lời.
  3. Yêu cầu lỗi hoặc bị thử lại có bị tính phí không? Vòng lặp agent vốn thử lại. Nếu yêu cầu lỗi vẫn bị tính phí, một kênh chập chờn âm thầm biến thành vấn đề chi phí thay vì vấn đề khả dụng.

Một nền tảng trả lời cả ba câu bằng văn bản, và cho thấy con số trong bản ghi usage theo từng yêu cầu, là endpoint bạn kiểm chứng được. Một nền tảng không trả lời câu nào là đang để bạn tự tìm hiểu sau.

Kiểm tra lại, đừng đoán

  1. Gửi một yêu cầu ngắn qua Claude Code.
  2. Ghi lại số token mà response tự báo.
  3. Mở bản ghi usage của yêu cầu đó trên nền tảng, đối chiếu input, output, cache read và cache write — và số tiền bị trừ — với những gì response nói.

Khớp số nghĩa là endpoint trung thực về token. Nếu nền tảng hoàn toàn không có bản ghi usage theo từng yêu cầu, đó là phát hiện hữu ích hơn cả con số token, và đáng để biết trước khi đưa một quy trình thật lên đó.

Lỗi thường gặp và ý nghĩa

Hiện tượngNguyên nhân nhiều khả năng nhất
Báo lỗi xác thực ngay lập tứcSai khóa cho endpoint đó, hoặc key thuộc nhóm khác trên nền tảng
404 ở mọi yêu cầuEndpoint chỉ có dạng chat của OpenAI, không có Anthropic Messages API mà Claude Code yêu cầu
Chi phí cao hơn số token gợi ýCache miss — xem dòng prompt cache trước khi đổ lỗi cho đơn giá
Một yêu cầu đắt bất thường sau khi đổi modelĐúng như dự kiến: model mới đọc lại hội thoại một lần ở dạng chưa cache
Chạy được nhưng thấy "sai model"Tên model được ánh xạ sang model khác ở kênh. So câu trả lời và bản ghi usage, đừng so nhãn
Thỉnh thoảng timeoutĐịnh tuyến kênh. Xem yêu cầu lỗi có bị tính phí không trước khi quyết định mức độ nghiêm trọng

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

Nên chọn model nào trong Claude Code? Chọn theo hình dạng công việc rồi giữ nguyên suốt phiên: task nhiều file, dài hơi cần context lớn và nhiều lượt gọi công cụ; sửa máy móc cần tier rẻ; suy luận sâu trong một file cần model mạnh nhất mà bạn chấp nhận trả. Vì mỗi model có cache riêng, việc đổi model cũng có chi phí — nên quyết một lần, ngay từ đầu.

Một API key dùng cho nhiều project được không? Được. Hãy dùng nhiều key riêng cùng thuộc một tài khoản để có thể thu hồi hoặc xoay vòng theo từng project, và để usage vẫn quy được về đúng nơi. Đó thường chính là lý do người ta chuyển sang dùng cổng tổng hợp: một số dư, nhiều project, không phải xoay nhiều gói subscription.

Đổi nhà cung cấp có phải sửa code không? Không. Claude Code không bị sửa — chỉ endpoint và khóa nó đọc bị đổi. Quay lại cũng chính là sửa ngược dòng đó, và /status cho biết nguồn cấu hình nào đang thắng.

Vì sao usage cao hơn so với cảm nhận về đoạn hội thoại? Vì một phiên agent gửi lại hội thoại ở mọi lượt, và các công cụ nó gọi sinh ra output bạn không nhìn thấy trong transcript. Dòng cache là góc nhìn trung thực về việc đó: nó tách phần được gửi lại với giá rẻ khỏi phần bị tính phí như input mới.

Việc cần làm tiếp

Hai trang công khai làm sẵn phần lớn việc chuẩn bị trước khi bạn chuyển một quy trình: model plaza công khai đơn giá từng model và hệ số từng nhóm mà không cần đăng nhập, còn trang trạng thái cho thấy từng nhóm đang chạy thế nào, kể cả lúc chạy không tốt.

Phần endpoint và khóa được ghi trong tài liệu tiếng Việt, và trang hoàn tiền ghi rõ quy trình. Nếu bạn còn đang chọn giữa các nền tảng, API Claude giá rẻ có an toàn không? đi qua các bước kiểm tra ở mức nhà vận hành.

Sẵn sàng bắt đầu gọi API?

Tạo tài khoản, sinh khoá và thực hiện lần gọi đa mô hình đầu tiên trong năm phút. Một khoá dùng cho GPT, Claude, Gemini, Grok, DeepSeek và các mô hình Trung Quốc.

Đăng ký miễn phíXem mô hình & bảng giá