SSD Nodes Learn Hosting plans →
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-08-25

Claude memory có tính phí thêm không?

Anthropic không có giá riêng cho memory token. Text đã nhớ được gửi lại dưới dạng input token, nên chi phí phụ thuộc số token replay và prompt cache.

Tính năng memory của Claude có tính phí thêm không?

Tính năng memory của Claude không có phí riêng. Mức giá Anthropic công bố được tính theo mỗi triệu token input và mỗi triệu token output, cùng mức phí bổ sung cho prompt caching. Không có khoản nào trong số đó được gọi là memory token. Việc lưu memory không tốn phí trên Claude API (application programming interface), vì memory tool chạy ở phía client và file được lưu trên storage do bạn sở hữu.

Memory vẫn ảnh hưởng đến hóa đơn, vì một thông tin đã nhớ chỉ thay đổi câu trả lời khi nằm trong request mà Claude đọc. Việc ghi nhớ đồng nghĩa với gửi lại nội dung đó. Phần văn bản này được tính là input token và áp dụng mức giá input thông thường của model. Có 2 yếu tố quyết định chi phí: số token trong phần text đã nhớ được gửi lại ở mỗi lượt, và phần text được gửi lại đó có thể được phục vụ từ prompt cache hay không.

Với gói Pro hoặc Max, bạn không bị tính phí theo token, nên memory sử dụng hạn mức của bạn thay vì tiền. Cơ chế bên dưới không thay đổi. Chỉ đơn vị tính là khác. Hạn mức đó có giới hạn, vì vậy bạn nên biết Claude Pro có giá bao nhiêu và giới hạn bắt đầu ngăn bạn ở đâu trước khi quyết định mỗi lượt nên kèm bao nhiêu memory. Claude Enterprise lại khác, vì gói này tính từng token theo mức giá API ngoài phí seat, nên một memory block quá lớn sẽ lại trở thành chi phí thay vì chỉ tiêu thụ hạn mức. Nếu việc rút gọn memory giúp usage của bạn nằm ổn định dưới mức trần của một gói nhỏ hơn, chuyển từ Max xuống Pro là bước tiếp theo đáng cân nhắc; thay đổi sẽ có hiệu lực vào cuối kỳ bạn đã thanh toán. Nếu bạn thực sự đang so sánh giữa các provider thay vì giữa các gói của Anthropic, hãy bắt đầu với so sánh các gói Claude với ChatGPT theo mức giá hiện tại.

"Memory" nghĩa là gì trên từng bề mặt Claude

Ba sản phẩm riêng biệt cùng dùng từ này. Việc nhầm lẫn giữa chúng là nguyên nhân chính khiến câu hỏi này khó hiểu.

Memory tool trên Claude API. Bạn thêm một entry vào mảng tools và tự triển khai các thao tác với file trong code của mình.

{"type": "memory_20250818", "name": "memory"}

Tính đến tháng 8 năm 2026, tool này được cung cấp chính thức trên Messages API mà không cần beta header, với các model Claude 4 trở lên. Đây là cơ chế phía client: Claude yêu cầu một thao tác như view /memories, handler của bạn thực hiện thao tác đó trên storage do bạn quản lý, rồi trả kết quả trong block tool_result. Anthropic không lưu file, nên không phát sinh storage charge cần chuyển cho bạn. Bạn trả phí cho round trip. Định nghĩa tool được gửi trong mọi request, còn nội dung file trả về sẽ nằm trong conversation từ thời điểm đó trở đi.

Anthropic công bố phần overhead cố định này. Trên Claude Opus 5 với tool choice là auto, system prompt cho tool-use có 286 token, theo tài liệu vào tháng 8 năm 2026. Khoản này được tính một lần cho mỗi request khi có bất kỳ tool nào, bất kể là memory hay tool khác.

Claude Code. Hai cơ chế được load khi bắt đầu mỗi session. File CLAUDE.md chứa các instruction do bạn viết. Auto memory chứa các ghi chú Claude tự viết cho chính nó, trong ~/.claude/projects/<project>/memory/. Chỉ 200 dòng đầu tiên hoặc 25KB đầu tiên của MEMORY.md được load, tùy giới hạn nào đến trước. Các topic file nằm cùng thư mục được đọc on demand thay vì lúc startup. Mọi nội dung được load lúc startup đều trở thành một phần của prefix mà mọi request sau đó trong session mang theo. Claude Code ghi nhớ memory giữa các session như thế nào mô tả thứ tự load theo từng file.

Claude trên web. Trên claude.ai, memory là tập hợp các entry mà Claude ghi và cập nhật trong quá trình chat, với một memory space riêng cho từng project. Settings > Memory liệt kê những gì đang được lưu. Toggle tại đó có các tùy chọn Pause memory hoặc Reset memory. Bề mặt này được tính phí theo subscription, nên memory sử dụng usage limit.

Vì sao văn bản được ghi nhớ vẫn được tính phí dưới dạng input token

Messages API là stateless. API không giữ lại gì giữa các lần gọi, nên client gửi toàn bộ cuộc trò chuyện trong mỗi lượt và model đọc lại toàn bộ nội dung đó. Memory không phải ngoại lệ. Nó chỉ là một block văn bản nữa trong cùng request.

Phần phân tách này hiển thị trong object usage của mọi response.

"usage": {
  "input_tokens": 412,
  "cache_creation_input_tokens": 0,
  "cache_read_input_tokens": 18240,
  "output_tokens": 236
}

input_tokens chỉ tính các token không được đọc từ cache và cũng không được dùng để tạo cache. Trên thực tế, đó là các token nằm sau cache breakpoint cuối cùng. Tổng input của request là cache_read_input_tokens cộng với cache_creation_input_tokens cộng với input_tokens. Một memory file mà Claude đã mở cách đây 3 lượt vẫn nằm trong tổng này ở mọi lượt sau đó. Nó được tính vào cache_read_input_tokens khi prefix được cache vẫn còn hiệu lực, và vào input_tokens khi prefix đó không còn hiệu lực. Cùng một văn bản nhưng có thể có hai mức phí rất khác nhau. Input và output token có mức phí khác nhau, còn memory luôn chỉ được tính ở phía input.

Xem các con số này trong chính mức sử dụng của bạn

Đừng lấy một con số từ bài blog, kể cả bài này. Hãy đo chính memory block của bạn. Việc đếm token là miễn phí và có rate limit riêng, nên phép đo không tốn chi phí.

curl https://api.anthropic.com/v1/messages/count_tokens \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "content-type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-opus-5",
    "system": "You are a scientist",
    "messages": [{"role": "user", "content": "Hello, Claude"}]
  }'

Kết quả là một con số, chẳng hạn như { "input_tokens": 14 }. Chạy lệnh một lần với phần memory được dán vào trường system, rồi chạy lại một lần không có phần đó. Chênh lệch giữa hai kết quả là chi phí của memory đó trong mỗi lượt. Có hai điểm cần lưu ý. Con số này chỉ là ước tính, và các token bổ sung mà Anthropic thêm vào để tối ưu system không bị tính phí cho bạn. Ngoài ra, hãy đếm theo model bạn thực sự sẽ chạy, vì Claude 4.7 trở lên dùng tokenizer mới tạo ra nhiều hơn khoảng 30 percent token với cùng một đoạn văn bản.

Trong Claude Code, bạn có thể nhận được câu trả lời tương tự mà không cần dùng curl.

  • /context hiển thị những gì đang được load, bao gồm cả các memory file, để bạn thấy phần dung lượng chúng chiếm trong context window trước khi nhập bất kỳ nội dung nào.
  • /memory liệt kê các file CLAUDE.md và mở thư mục auto memory.
  • /usage in tổng số của session, trong đó có số lần đọc cache và ghi cache.
  • Status line có thể liên tục hiển thị mức sử dụng context window, nên bạn thấy mức tăng ngay khi nó xảy ra.

/usage session block có dạng như sau:

Total cost:            $0.55
Total duration (API):  6m 20s
Total duration (wall): 6h 33m 10s
Total code changes:    0 lines added, 0 lines removed
Usage by model:
   claude-sonnet-4-6:  1.2k input, 5.3k output, 940.0k cache read, 50.0k cache write ($0.55)

Hãy đọc kỹ dòng cuối. Con số 940.0k cache read là toàn bộ conversation, bao gồm cả memory, được gửi lại trong mỗi lượt với cache rate. Con số 1.2k input chỉ là phần nội dung mới. Claude Code tự tính số tiền đó từ list price trên máy cục bộ, nên không tính các discount bạn được hưởng và có thể khác với invoice. Usage page trong Claude Console mới là con số chính thức.

Tiếp theo, hãy chạy phép so sánh trực tiếp. Đặt cùng một câu hỏi mở đầu trong 2 session mới, một session bình thường và một session đã tắt auto memory.

CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 claude

Chạy /context trong từng session rồi so sánh mục memory files. Khoảng chênh lệch là chi phí của memory đã tích lũy trong mỗi session, trước khi có bất kỳ công việc nào được thực hiện. Đọc tiếp phần phân tích đầy đủ về nơi Claude Code sử dụng token để đặt hai con số đó vào đúng ngữ cảnh.

Chi phí replay memory trên mỗi triệu token là bao nhiêu?

Prompt caching là lý do cùng một memory block có thể tốn gấp 10 lần ở một lượt nhưng lại rẻ hơn ở lượt khác. Anthropic công bố mức giá cache dưới dạng bội số so với giá input cơ bản của từng model, nên mối quan hệ này vẫn giữ nguyên ngay cả khi giá theo USD thay đổi.

ChartAnthropic's published prompt caching rates, as a multiple of base input price
The data behind this chart
[
  {
    "label": "Base input",
    "price_multiple": 1
  },
  {
    "label": "5 minute cache write",
    "price_multiple": 1.25
  },
  {
    "label": "1 hour cache write",
    "price_multiple": 2
  },
  {
    "label": "Cache read",
    "price_multiple": 0.1
  }
]

Một lần đọc cache có giá bằng 0.1 lần giá input cơ bản. Ghi một entry có thời gian tồn tại 5 phút có giá bằng 1.25 lần giá cơ bản, còn thời gian tồn tại 1 giờ có giá bằng 2 lần giá cơ bản. Anthropic nêu rõ điểm hòa vốn: caching có lợi sau một lần đọc cache với thời lượng 5 phút, hoặc sau hai lần đọc cache với thời lượng 1 giờ. Điểm hòa vốn của prompt caching là phép tính cần thực hiện trước khi quyết định memory nên đặt ở đâu.

Các bội số này biến số lần replay thành phép tính số học. Block tiếp theo chỉ là phép tính dựa trên các bội số đã công bố ở trên, không phải kết quả đo từ một workload đang chạy. Nó tính chi phí của một memory block theo 3 cách trong một phiên 100 lượt, biểu diễn dưới dạng số token tương đương được tính theo mức giá input cơ bản.

ChartA memory block over 100 turns, expressed as base-rate input tokens
The data behind this chart
[
  {
    "label": "4,000 tokens, never cached",
    "base_rate_equivalent_tokens": "400,000"
  },
  {
    "label": "4,000 tokens, 1 write and 99 reads",
    "base_rate_equivalent_tokens": "44,600"
  },
  {
    "label": "1,000 tokens, 1 write and 99 reads",
    "base_rate_equivalent_tokens": "11,150"
  }
]

Một memory block 4,000 token bị cache miss ở cả 100 lượt sẽ được tính phí tương đương 400,000 token theo mức giá cơ bản. Cùng block đó, nếu có một lần ghi cache 5 phút và 99 lần đọc cache, sẽ được tính phí tương đương 44,600 token. Nếu giảm block xuống còn một phần tư kích thước và vẫn giữ caching, chi phí tương đương sẽ là 11,150 token theo mức giá cơ bản. Tính năng không thay đổi trong 3 hàng đó. Chỉ hành vi replay thay đổi. Đây vẫn là số token, chưa phải số tiền; quy đổi số token thành số tiền trên hóa đơn hằng tháng chỉ cần nhân với mức giá trên mỗi triệu token của model. Mức giá đó phụ thuộc vào model bạn chạy. Vì vậy, nếu agent sẽ chạy trên Claude Fable 5, hãy bắt đầu từ mức giá trên mỗi triệu token được công bố của model đó và loại workload phù hợp. Nếu vẫn chưa quyết định dùng provider nào, thay vì chỉ đang cân nhắc model, so sánh chi phí của cùng các job trên API của Claude và trên ChatGPT sẽ cho thấy phép nhân đó cho ra kết quả khác nhau như thế nào; agent sử dụng nhiều memory sẽ phụ thuộc lớn vào phần input.

Hàng thứ hai giả định mỗi request trong số 99 request sau đến khi cache entry vẫn còn hiệu lực. Đây là giả định khiến phần lớn hóa đơn thực tế bị tính sai.

Vì sao cùng một câu hỏi lại tốn nhiều hơn sau khi tạm dừng?

Mỗi cache entry có một thời hạn, và đồng hồ bắt đầu tính từ request ghi hoặc đọc entry đó. Mặc định là 5 phút. Tùy chọn 1 giờ có chi phí ghi gấp 2 lần như đã nêu ở trên. Trong Claude Code, thời hạn là 1 giờ khi dùng gói subscription và giảm xuống 5 phút khi bạn sử dụng usage credits; với API key hoặc cloud provider, mặc định là 5 phút. Thiết lập ENABLE_PROMPT_CACHING_1H=1 giữ thời hạn 1 giờ khi bạn dùng usage credits.

Vì vậy, một câu hỏi chỉ có một dòng được nhập vào session mà bạn để mở trong giờ nghỉ trưa lại tốn nhiều hơn vì cache entry đã hết hạn trong lúc bạn vắng mặt. Toàn bộ prefix, bao gồm cả memory, được xử lý lại theo base input rate và được ghi lại vào cache. Thời gian tạm dừng quyết định chi phí đó.

Bạn có thể xác nhận điều này thay vì chỉ tin vào mô tả. Trên gói Pro, Max, Team hoặc Enterprise, phần phân tích /usage đánh dấu mọi hành vi chịu trách nhiệm cho từ 10 phần trăm usage gần đây trở lên; cả long context và cache miss đều xuất hiện tại đó theo đúng tên. Trên API, hãy theo dõi cache_creation_input_tokens tăng trở lại bằng toàn bộ kích thước prefix trong request đầu tiên sau một khoảng không có hoạt động.

Điều gì âm thầm làm cache mất hiệu lực

Prefix được cache có thứ tự: tools, sau đó là system, rồi đến messages. Thay đổi ở một mức sẽ làm mất hiệu lực của mức đó và mọi mức phía sau. Chỉnh sửa định nghĩa tool sẽ xóa toàn bộ cache. Chỉnh sửa system prompt sẽ xóa cache của system và messages.

Đây là cái bẫy đối với những ai lưu memory trong system prompt rồi viết lại nó khi agent học thêm. Mỗi lần viết lại sẽ loại bỏ bản cache của toàn bộ nội dung phía sau, nên request tiếp theo phải trả lại toàn bộ chi phí ghi. Hãy đặt nội dung ổn định ở đầu và giữ nguyên nội dung đó. Đặt nội dung hay thay đổi ở cuối danh sách messages, nơi việc làm mất hiệu lực cache ít tốn kém hơn.

Có một lỗi thứ hai, khó nhận thấy hơn. Mỗi model có một prefix tối thiểu đủ điều kiện để cache: 512 tokens trên Claude Opus 5, 1,024 trên Claude Sonnet 5, 4,096 trên Claude Haiku 4.5, theo tài liệu công bố vào August 2026. Tài liệu của Anthropic nêu rõ điều xảy ra khi prefix ngắn hơn mức này: "Mọi request yêu cầu cache ít hơn số token này sẽ được xử lý mà không cache và không trả về lỗi." Vì vậy, một file memory nhỏ được đánh dấu bằng cache_control hoàn toàn không có tác dụng và không báo lỗi. Dấu hiệu có thể quan sát là cache_creation_input_tokens vẫn ở mức 0 dù prompt của bạn rõ ràng có chứa breakpoint.

Loại bỏ memory không còn giá trị

Mỗi dòng trong memory đều tiêu tốn token ở mọi lượt có mang theo dòng đó. Vì vậy, với mỗi dòng, hãy xem gần đây nó có thay đổi câu trả lời nào không. Claude Code đặt ra các giới hạn cụ thể. Hãy giữ tệp CLAUDE.md dưới 200 dòng, vì tệp dài hơn sẽ tiêu tốn nhiều context hơn và làm giảm độ tin cậy khi Claude làm theo nội dung trong đó. MEMORY.md bị giới hạn ở 200 dòng đầu tiên hoặc 25KB khi được nạp. Mọi nội dung vượt quá giới hạn sẽ bị loại bỏ khi bắt đầu session tiếp theo. Vì vậy, một index quá lớn vừa tiêu tốn token vừa không cung cấp thêm thông tin.

Có hai thói quen giúp giữ tệp nhỏ. Chuyển phần chi tiết khỏi index vào các tệp theo chủ đề. Claude sẽ đọc các tệp này khi cần thay vì đọc lúc khởi động. Chuyển hướng dẫn workflow khỏi CLAUDE.md vào skills. Các skill này chỉ được nạp khi được gọi. Với các tệp memory đã có frontmatter ở đầu, Claude Code ghi thời điểm ghi vào trường modified dưới dạng timestamp ISO 8601 trong version 2.1.214 trở lên. Timestamp này là cách nhanh nhất để phát hiện một thông tin đã lỗi thời. Loại bỏ memory của agent đã lỗi thời trình bày chi tiết hơn về quy trình review.

Khi retrieval hiệu quả hơn việc nạp toàn bộ vào context

memory tool dùng để retrieval đúng lúc. Thay vì nạp mọi thứ ngay từ đầu, agent ghi lại những gì đã tìm hiểu và chỉ đọc lại file khi task cần. Điều này thay đổi cách tính, vì một lần đọc file chỉ tốn số token của file đó rồi nằm trong cached prefix, còn một block được nạp cố định sẽ tốn chi phí trong từng turn.

Từ hai biểu đồ trên có thể rút ra một quy tắc đơn giản. Nội dung được dùng trong gần như mọi turn nên nằm trong stable cached prefix. Nội dung chỉ được dùng 1 trong 20 turn nên đặt sau một lệnh gọi view. Điểm hòa vốn thay đổi theo số lần replay của bạn, không phụ thuộc vào bất kỳ khoản phí nào Anthropic tính.

Trên API, bạn cũng có thể để platform tự cắt bớt conversation. Context editing sẽ xóa kết quả tool cũ khi conversation vượt ngưỡng bạn đặt.

{
  "edits": [
    {
      "type": "clear_tool_uses_20250919",
      "trigger": {"type": "input_tokens", "value": 30000},
      "keep": {"type": "tool_uses", "value": 3},
      "clear_at_least": {"type": "input_tokens", "value": 5000}
    }
  ]
}

Giá trị mặc định là trigger 100,000 input token và giữ lại 3 lần dùng tool. Hãy đọc cách interaction hoạt động với caching trước khi bật tính năng này: việc xóa content sẽ invalidate cached prefix tại điểm xóa, nên request tiếp theo sẽ phát sinh chi phí ghi cache. Đó là mục đích của clear_at_least. Nó trì hoãn việc xóa cho đến khi khoản tiết kiệm đủ lớn để bù chi phí ghi cache. Response báo chính xác những gì đã xảy ra trong context_management, cùng với cleared_tool_usescleared_input_tokens, nên trade-off có thể đo được thay vì chỉ mang tính lý thuyết. Quản lý context window trong Claude Code áp dụng cùng ý tưởng cho một coding session.

Tính năng nào có chi phí riêng

Memory không có khoản phí riêng, nhưng một số tính năng thực sự có, và bạn nên biết đó là những tính năng nào. Đây là bảng giá Claude API được công bố tính đến tháng 8 năm 2026. Một số thao tác hoàn toàn không tính phí, nhưng Claude API không có free tier, chỉ có một khoản credit nhỏ khi đăng ký, nên mọi khoản dưới đây đều là chi phí thực tế ngay từ request đầu tiên.

  • Web search: $10 cho mỗi 1,000 lượt tìm kiếm, cộng thêm chi phí token thông thường của toàn bộ nội dung mà kết quả tìm kiếm đưa vào context.
  • Code execution: 1,550 giờ miễn phí cho mỗi organization mỗi tháng, sau đó là $0.05 cho mỗi giờ trên mỗi container. Tính năng này miễn phí khi được dùng cùng web search hoặc web fetch.
  • Claude Managed Agents: runtime của session có giá $0.08 cho mỗi session-hour, cộng với chi phí token thông thường.
  • Web fetch: không có phí bổ sung, chỉ tính chi phí token của nội dung được fetch.

Memory không xuất hiện trong bất kỳ dòng nào ở trên. Nó được tính vào số lượng input token, đúng tại nơi bạn có thể đo lường, đồng thời cũng là nơi pruning và caching có thể giảm chi phí. Nếu bạn đang lập ngân sách cho một agent chạy tự động trên virtual private server (VPS), các biện pháp kiểm soát chi phí cho AI agent trên VPS là việc tiếp theo cần triển khai, vì agent có memory file ngày càng lớn nhưng không có pruning sẽ đắt hơn mỗi tuần mà không có thành phần nào báo cho bạn biết.

FAQ

Tính năng memory của Claude có tính phí riêng không?

Không. Bảng giá của Anthropic tính theo mỗi triệu input token, mỗi triệu output token và các hệ số của prompt caching; không có dòng phí riêng cho memory. Trên Claude API, memory tool chạy ở phía client, nên các file được lưu trên storage mà bạn đã trả phí. Memory chỉ làm tăng số input token. Các token này được tính theo mức giá input thông thường của model trong mỗi lượt có gửi kèm chúng.

Tắt memory có làm Claude rẻ hơn không?

Việc này làm giảm số token trong mỗi request, từ đó giảm chi phí của từng request. Tổng chi phí có giảm hay không còn tùy vào các bước sau đó. Nếu Claude phải đọc lại ba file và hỏi bạn hai câu để khôi phục thông tin mà memory đã lưu, số token đó có thể tốn nhiều hơn phần memory. Hãy đo thay vì phỏng đoán: chạy /context trong một session có bật auto memory và trong một session được khởi động bằng CLAUDE_CODE_DISABLE_AUTO_MEMORY=1, rồi so sánh tổng số token đã dùng cho cùng một tác vụ.

Tại sao mức sử dụng của tôi tăng dù tôi không thay đổi gì?

Nguyên nhân phổ biến nhất là cache miss sau một khoảng tạm dừng. Cache entry tồn tại 5 phút theo mặc định hoặc một giờ khi dùng cài đặt extended. Vì vậy, request đầu tiên sau thời gian tạm dừng sẽ xử lý lại toàn bộ prefix theo mức giá input cơ bản và ghi lại prefix đó. Nguyên nhân phổ biến thứ hai là chỉnh sửa prefix: thay đổi tool definition sẽ invalidate toàn bộ cache, còn thay đổi system prompt sẽ invalidate system cache và message cache. Trên gói subscription, phần phân tích /usage sẽ nêu hành vi này khi nó chiếm từ 10 phần trăm mức sử dụng gần đây trở lên.

Nên đặt memory trong system prompt hay gọi qua tool?

Đặt memory trong system prompt khi gần như mọi lượt đều dùng đến nó, vì khi đó memory nằm trong cached prefix và được tính theo mức giá cache read. Đặt memory sau một lời gọi view khi chỉ một số tác vụ cần nó, vì file chỉ được đọc một lần sẽ chỉ tính token một lần thay vì trong mọi lượt. Con số quyết định là replay count. Đối tượng usage cung cấp trực tiếp con số đó.

Tính năng memory có được tính vào giới hạn sử dụng của subscription không?

Có, nhưng theo cách gián tiếp, vì giới hạn subscription bị tiêu hao bởi số token mà mỗi request mang theo. Tài liệu trợ giúp của Anthropic nêu rằng các cuộc trò chuyện dài hơn, khi kích hoạt automatic context management, sẽ tiêu tốn nhiều hơn trong giới hạn sử dụng của bạn. Memory làm mỗi request dài hơn một chút, và trong một session dài, phần độ dài đó được gửi lại ở mọi lượt. Giới hạn sử dụng của Claude thực sự hoạt động như thế nào giải thích thời điểm giới hạn được reset.