Context
“Context” là mọi thứ OpenClaw gửi cho model trong một lần chạy. Nó bị giới hạn bởi context window (giới hạn token) của model.
Mô hình đơn giản cho người mới:
- System prompt (do OpenClaw tạo): quy tắc, công cụ, danh sách Skill, thời gian/runtime, và các file workspace được inject.
- Conversation history: tin nhắn của các bạn + tin nhắn của assistant trong session này.
- Tool calls/results + attachments: output lệnh, đọc file, hình ảnh/âm thanh, v.v.
Context không giống với “memory”: memory có thể lưu trên đĩa và load lại sau; context là những gì đang ở trong cửa sổ hiện tại của model.
Bắt đầu nhanh (kiểm tra context)
/status→ xem nhanh “cửa sổ đầy bao nhiêu?” + cài đặt session./context list→ những gì được inject + kích thước sơ bộ (từng file + tổng)./context detail→ phân tích chi tiết: từng file, kích thước schema từng tool, kích thước entry từng skill, và kích thước system prompt./usage tokens→ thêm footer thống kê token vào cuối mỗi reply./compact→ tóm tắt lịch sử cũ thành một entry gọn để giải phóng không gian cửa sổ.
Xem thêm: Slash commands, Token use & costs, Compaction.
Ví dụ output
Giá trị thay đổi tùy theo model, provider, tool policy, và những gì có trong workspace của các bạn.
/context list
🧠 Context breakdown
Workspace: <workspaceDir>
Bootstrap max/file: 20,000 chars
Sandbox: mode=non-main sandboxed=false
System prompt (run): 38,412 chars (~9,603 tok) (Project Context 23,901 chars (~5,976 tok))
Injected workspace files:
- AGENTS.md: OK | raw 1,742 chars (~436 tok) | injected 1,742 chars (~436 tok)
- SOUL.md: OK | raw 912 chars (~228 tok) | injected 912 chars (~228 tok)
- TOOLS.md: TRUNCATED | raw 54,210 chars (~13,553 tok) | injected 20,962 chars (~5,241 tok)
- IDENTITY.md: OK | raw 211 chars (~53 tok) | injected 211 chars (~53 tok)
- USER.md: OK | raw 388 chars (~97 tok) | injected 388 chars (~97 tok)
- HEARTBEAT.md: MISSING | raw 0 | injected 0
- BOOTSTRAP.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok)
Skills list (system prompt text): 2,184 chars (~546 tok) (12 skills)
Tools: read, edit, write, exec, process, browser, message, sessions_send, …
Tool list (system prompt text): 1,032 chars (~258 tok)
Tool schemas (JSON): 31,988 chars (~7,997 tok) (counts toward context; not shown as text)
Tools: (same as above)
Session tokens (cached): 14,250 total / ctx=32,000
/context detail
🧠 Context breakdown (detailed)
…
Top skills (prompt entry size):
- frontend-design: 412 chars (~103 tok)
- oracle: 401 chars (~101 tok)
… (+10 more skills)
Top tools (schema size):
- browser: 9,812 chars (~2,453 tok)
- exec: 6,240 chars (~1,560 tok)
… (+N more tools)
Những gì tính vào context window
Mọi thứ model nhận được đều tính, bao gồm:
- System prompt (tất cả các phần).
- Conversation history.
- Tool calls + tool results.
- Attachments/transcripts (hình ảnh/âm thanh/file).
- Compaction summaries và pruning artifacts.
- Provider “wrappers” hoặc hidden headers (không nhìn thấy, nhưng vẫn tính).
OpenClaw xây dựng system prompt như thế nào
System prompt do OpenClaw sở hữu và được xây dựng lại mỗi lần chạy. Nó bao gồm:
- Danh sách tool + mô tả ngắn.
- Danh sách skill (chỉ metadata; xem bên dưới).
- Vị trí workspace.
- Thời gian (UTC + thời gian người dùng đã chuyển đổi nếu được cấu hình).
- Runtime metadata (host/OS/model/thinking).
- Các file workspace bootstrap được inject dưới Project Context.
Phân tích đầy đủ: System Prompt.
Injected workspace files (Project Context)
Mặc định, OpenClaw inject một tập file workspace cố định (nếu có):
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(chỉ lần chạy đầu tiên)
Các file lớn sẽ bị cắt ngắn theo từng file bằng cách dùng agents.defaults.bootstrapMaxChars (mặc định 20000 chars). /context hiển thị kích thước raw vs injected và liệu có bị cắt ngắn hay không.
Skills: cái gì được inject vs load theo yêu cầu
System prompt bao gồm một danh sách skill gọn (tên + mô tả + vị trí). Danh sách này có overhead thực sự.
Hướng dẫn skill không được bao gồm mặc định. Model được kỳ vọng sẽ read file SKILL.md của skill chỉ khi cần.
Tools: có hai loại chi phí
Tools ảnh hưởng đến context theo hai cách:
- Tool list text trong system prompt (cái các bạn thấy là “Tooling”).
- Tool schemas (JSON). Chúng được gửi cho model để nó có thể gọi tools. Chúng tính vào context mặc dù các bạn không thấy chúng dưới dạng plain text.
/context detail phân tích các tool schema lớn nhất để các bạn thấy cái gì chiếm nhiều nhất.
Commands, directives, và “inline shortcuts”
Slash commands được xử lý bởi Gateway. Có một vài hành vi khác nhau:
- Standalone commands: một tin nhắn chỉ có
/...sẽ chạy như một lệnh. - Directives:
/think,/verbose,/reasoning,/elevated,/model,/queueđược loại bỏ trước khi model thấy tin nhắn.- Tin nhắn chỉ có directive sẽ lưu cài đặt session.
- Inline directives trong tin nhắn thường sẽ hoạt động như gợi ý cho từng tin nhắn.
- Inline shortcuts (chỉ allowlisted senders): một số token
/...bên trong tin nhắn thường có thể chạy ngay lập tức (ví dụ: “hey /status”), và được loại bỏ trước khi model thấy phần text còn lại.
Chi tiết: Slash commands.
Sessions, compaction, và pruning (cái gì được giữ lại)
Cái gì được giữ lại qua các tin nhắn phụ thuộc vào cơ chế:
- Normal history được giữ trong session transcript cho đến khi được compact/prune theo policy.
- Compaction giữ một bản tóm tắt vào transcript và giữ nguyên các tin nhắn gần đây.
- Pruning loại bỏ các tool results cũ khỏi prompt in-memory cho một lần chạy, nhưng không viết lại transcript.
Tài liệu: Session, Compaction, Session pruning.
/context thực sự báo cáo gì
/context ưu tiên báo cáo system prompt run-built mới nhất khi có sẵn:
System prompt (run)= được capture từ lần chạy embedded (có khả năng tool) cuối cùng và được lưu trong session store.System prompt (estimate)= được tính toán ngay khi không có báo cáo chạy (hoặc khi chạy qua CLI backend không tạo báo cáo).
Dù thế nào, nó báo cáo kích thước và những người đóng góp hàng đầu; nó không dump toàn bộ system prompt hoặc tool schemas.