#vps làm sao lên dc những web chặn antibot
1 messages · Page 1 of 1 (latest)
Xin chào
Mấy web “anti-bot” (Cloudflare / hCaptcha / Akamai…) mục đích là chặn automation + IP datacenter (VPS), nên từ VPS thường sẽ bị block hoặc bắt CAPTCHA liên tục. Mình không thể hướng dẫn cách bypass/né anti-bot.
Nhưng có vài cách hợp lệ để vẫn dùng được:
-
Dùng trình duyệt thật trên máy bạn (khuyên dùng)
- Chạy OpenClaw trên máy cá nhân, hoặc dùng Chrome Browser Relay (attach tab Chrome của bạn).
- Bạn mở web đó, tự bấm CAPTCHA/verify một lần, rồi agent thao tác tiếp trong chính tab đó (đây là “human-in-the-loop”, không phải bypass).
-
Nếu bắt buộc chạy trên VPS
- Nhiều site sẽ chặn vì IP VPS bị đánh dấu. Cách hợp lệ là dùng IP/đường mạng mà bạn sở hữu/được phép dùng (hoặc liên hệ site xin allowlist / dùng API chính thức).
- Nếu là web của bạn: cấu hình allowlist IP, giảm bot protection cho endpoint cần dùng, hoặc tạo API.
-
Dùng API chính thức thay vì web UI
- Nếu web có API/OAuth thì bền và ít bị anti-bot hơn nhiều.
Bạn cho mình biết cụ thể:
- Web dùng anti-bot loại gì (Cloudflare “Checking your browser…”, hCaptcha…)?
- Bạn đang muốn agent “browse” bằng Control UI/browser automation hay chỉ muốn mở web để copy data?
Mình sẽ gợi ý hướng đi hợp lệ phù hợp với case của bạn.
Xin chào! Bạn đang chạy OpenClaw trên VPS đúng không?
Về câu “vô web có anti-bot” (Cloudflare/CAPTCHA…): trên VPS thường bị chặn vì IP datacenter + trình duyệt automation. Mình không thể hướng dẫn cách bypass, nhưng có 2 hướng hợp lệ hay dùng:
-
Dùng Chrome thật trên máy bạn + Browser Relay
- Mở web đó trên Chrome của bạn, tự xác minh CAPTCHA/đăng nhập.
- Attach tab cho OpenClaw để agent thao tác tiếp trong tab đó.
-
Dùng API/allowlist (nếu bạn có quyền)
- Nếu là web của bạn: allowlist IP VPS hoặc dùng API/OAuth thay vì web UI.
Bạn cho mình 2 thông tin để mình chỉ đúng cách setup:
- Web đó là gì / hiện thông báo anti-bot kiểu nào (Cloudflare “Checking your browser…”, hCaptcha…)?
- Bạn muốn agent tự bấm web hay chỉ cần mở được để làm thủ công (RDP/VNC) rồi agent xử lý phần còn lại?
Cloufe với captrat á mà đg chỉ có vps h sao dùng máy thật dc
Cloudflare + CAPTCHA thì “điểm nghẽn” thường không phải do bạn cài gì sai, mà là do IP VPS (datacenter) + trình duyệt tự động bị Cloudflare đánh rủi ro cao. Vì vậy không có cách tự động/ổn định để vượt (mình cũng không thể hướng dẫn bypass).
Nếu bạn chỉ có VPS thì các hướng hợp lệ còn lại thường là:
-
Vào thủ công trên chính VPS (VNC/RDP)
- Cài desktop (XFCE/GNOME) + Chrome/Firefox, rồi dùng VNC/RDP để mở web và tự giải CAPTCHA.
- Cách này có thể vẫn bị hỏi lại nhiều lần nếu IP VPS bị “đen”, nhưng ít nhất bạn đang dùng browser thật và có thể thao tác tay.
-
Đổi sang cách truy cập được Cloudflare chấp nhận
- Ví dụ: chạy trên mạng/thiết bị cá nhân (home/4G) hoặc một máy “real user” khác.
- Nếu bạn đang chat Discord được thì bạn vẫn có điện thoại; nhưng Browser Relay hiện chủ yếu cần Chrome desktop, mobile thường không attach được như vậy.
-
Xin cách truy cập chính thống
- Nếu là web của bạn / bạn có quyền: xin allowlist IP, tắt bot-protection cho endpoint cần dùng, hoặc dùng API/OAuth.
Bạn đang muốn:
- (A) chỉ “mở được web để dùng tay”, hay
- (B) muốn OpenClaw/agent tự thao tác trên web đó?
Và VPS của bạn là Windows hay Linux (Ubuntu/Debian)? Mình sẽ chỉ đúng hướng (VNC/RDP) cho case (A), còn case (B) thì với Cloudflare CAPTCHA thường phải có bước người dùng xác minh thủ công hoặc dùng API.
Thì mình muốn agent đọc tin tức hay diễn dàn của những web mà mấy web bị anti bot hay cloufare như wsne truyện hay reddit á
Với mấy site có Cloudflare + CAPTCHA, nếu bạn muốn agent tự vào đọc nội dung từ VPS thì thực tế là rất hay thất bại (Cloudflare chủ yếu chặn automation + IP datacenter). Mình không thể hướng dẫn cách “lách/bypass”.
Nhưng để “agent đọc tin tức/diễn đàn” thì có vài cách hợp lệ hay dùng:
1) Ưu tiên RSS / API thay vì web UI (bền nhất)
- Nhiều site có RSS/Atom feed (thường không bị chặn như trang web).
- Reddit có RSS sẵn, ví dụ:
- Subreddit:
https://www.reddit.com/r/<subreddit>/.rss - User:
https://www.reddit.com/user/<username>/.rss
Agent chỉ cần fetch feed rồi tóm tắt là xong.
- Subreddit:
Nếu bạn nói rõ bạn muốn theo dõi mục nào (subreddit nào / chủ đề nào), mình chỉ bạn link RSS đúng format.
2) Nếu site chỉ có web + Cloudflare
- Trường hợp này thường không tự động hóa ổn định được trên VPS.
- Cách hợp lệ duy nhất thường là người dùng tự xác minh (CAPTCHA/login) bằng browser thật, rồi mới đọc tiếp — nhưng vẫn có thể bị hỏi lại liên tục nếu IP VPS bị đánh giá xấu.
3) Đổi nguồn / xin quyền truy cập
- Nếu là web bạn quản trị: allowlist IP / dùng API.
- Nếu không: tìm nguồn chính thống hoặc mirror có RSS/API.
Bạn gửi mình tên cụ thể 2–3 web bạn cần (vd: link của “wsne truyện” chính xác + bạn muốn đọc trang nào), và mục tiêu của bạn là:
- “mỗi ngày tóm tắt bài mới” hay
- “tìm theo keyword”?
Mình sẽ gợi ý cách làm theo hướng RSS/API (khả thi nhất trên VPS).
Mình thấy đổi proxy mà cũng ko dc bữa mình đổi protol vpn ko cho
Đúng rồi — đổi proxy/VPN thường cũng không ăn thua với Cloudflare/CAPTCHA, vì họ không chỉ nhìn mỗi IP. Thường họ còn dựa vào:
- IP datacenter / proxy bị “bad reputation”
- fingerprint trình duyệt (TLS/JA3, WebGL, fonts…)
- dấu hiệu automation / headless
- cookie + challenge state (bạn chưa “pass” challenge thì cứ bị vòng lại)
Và nhiều web cố tình chặn VPN/proxy, nên bạn sẽ thấy kiểu “VPN not allowed” hoặc CAPTCHA vô hạn.
Mình không thể chỉ cách “lách” chuyện này. Nếu mục tiêu của bạn là agent đọc nội dung thì hướng khả thi/hợp lệ nhất là:
- Tìm RSS/API (vd Reddit có RSS:
https://www.reddit.com/r/<subreddit>/.rss) → agent fetch + tóm tắt. - Nếu site chỉ có web + Cloudflare: trên VPS-only thường không tự động hóa ổn định được. Bạn sẽ phải:
- hoặc dùng mạng người dùng thật (home/4G) để truy cập,
- hoặc xin allowlist/API từ site (nếu bạn có quyền).
Về câu “đổi protocol VPN không cho”: cái đó thường là nhà cung cấp VPS chặn traffic VPN hoặc chặn UDP. Nhưng kể cả VPN chạy được thì Cloudflare vẫn hay block VPN.
Bạn cho mình biết:
- Cloudflare nó hiện lỗi gì (copy đúng 1 dòng thông báo / hoặc chụp màn hình),
- bạn muốn đọc nội dung từ site nào (2–3 link),
mình sẽ chỉ bạn cách tìm RSS/API tương ứng (để agent đọc được mà không phải đụng CAPTCHA).
Dị sao ng ta dùng vps hay mấy cục mini á như mac mini mà họ lướt web bth rồi còn lướt fb nuôi page dùng munus gì á
Vì bạn đang nhìn “VPS/mini PC” nhưng bối cảnh của họ khác nên mới “lướt web bình thường” được.
1) Mac mini / mini PC thường là máy đặt ở nhà (mạng dân dụng)
Nhiều người dùng Mac mini như “server ở nhà”, rồi remote vào (AnyDesk/Chrome Remote Desktop/VNC).
Khi đó website/Facebook thấy:
- IP nhà mạng bình thường (không phải IP datacenter của VPS)
- trình duyệt người dùng thật
→ ít bị Cloudflare/CAPTCHA hơn rất nhiều.
2) VPS thì bị nghi hơn vì IP datacenter
Dù bạn mở Chrome “bình thường” trên VPS, nhiều site vẫn chặn vì họ chặn theo reputation của IP range (AWS/DO/OVH…).
3) Còn mấy tool kiểu “lướt FB nuôi page / anti-detect”…
Cái đó thường liên quan tới né hệ thống chống gian lận / quản lý nhiều tài khoản, có thể vi phạm ToS. Mình không thể hướng dẫn dùng những tool đó hoặc cách làm để “qua mặt” Cloudflare/Facebook.
Nếu mục tiêu của bạn là hợp lệ (đọc tin / theo dõi diễn đàn)
- Với Reddit: dùng RSS/API là chuẩn và bền.
- Với site Cloudflare: nếu không có RSS/API thì trên VPS rất khó tự động.
Nếu bạn nói rõ bạn có máy cá nhân/điện thoại không (chỉ cần có để remote/attach tab), mình sẽ gợi ý hướng “đặt gateway ở VPS nhưng duyệt bằng máy nhà” hoặc cách lấy RSS cho nguồn bạn muốn theo dõi.
Dị h mình có laptop sài bth thêm với có vps mà có openclaw thì có giải pháp nào ko mà bảo bật từ vps dùng laptop mình mà ko bị ng khác tấng công á
Có nhé — setup “đúng bài” cho case của bạn là:
- Gateway chạy trên VPS (24/7)
- Nhưng khi cần lướt web (Cloudflare/CAPTCHA), bạn cho agent điều khiển Chrome trên laptop của bạn qua Browser Takeover/Chrome extension
=> request web sẽ đi từ mạng laptop (đỡ bị anti-bot hơn), còn VPS chỉ làm “não/điều phối”.
Quan trọng nhất để không bị người khác tấn công: đừng mở port dashboard/gateway ra internet công khai. Dùng 1 trong 2 cách dưới đây:
Cách A (dễ nhất): SSH tunnel (không mở port công khai)
- Trên laptop, mở tunnel:
- macOS/Linux:
ssh -N -L 18789:127.0.0.1:18789 user@IP_VPS - Windows (PowerShell):
ssh -N -L 18789:127.0.0.1:18789 user@IP_VPS
-
Mở dashboard trên laptop:
http://127.0.0.1:18789/ -
Khi dashboard hỏi token: dùng token
gateway.auth.token(docs có nói bạn có thể xem bằngopenclaw config get gateway.auth.token, hoặc generate bằngopenclaw doctor --generate-gateway-token).
Nguồn: https://docs.openclaw.ai/help/faq#how-do-i-authenticate-the-dashboard-token-on-localhost-vs-remote -
Cài Chrome extension (browser takeover) trên laptop, attach tab Chrome của bạn → agent sẽ thao tác trong tab đó.
Cách B: Tailscale Serve (gọn, cũng không phơi ra public)
Docs khuyên dùng Tailscale Serve cho remote dashboard/auth:
https://docs.openclaw.ai/help/faq#how-do-i-authenticate-the-dashboard-token-on-localhost-vs-remote
Checklist an toàn (nên làm)
- VPS: dùng SSH key, tắt login password nếu được
- VPS firewall: chỉ mở SSH (22) hoặc dùng Tailscale thì càng ít mở càng tốt
- Token gateway không share lên Discord
Bạn dùng laptop Windows hay macOS? Và VPS là Ubuntu/Debian đúng không? Nếu bạn gửi openclaw --version + bạn đang mở dashboard kiểu gì (port 18789 có public không), mình sẽ chỉ bạn route nào “đỡ rủi ro” nhất theo setup hiện tại.
Thì mình kết nối vô dc vps mà cũng dùng cách trên thôi nhưng đó là mình dùng vps h mình muốn vps có agent dùng lại laptop mình á
À mình hiểu nhầm ý bạn lúc trước.
Bạn đang “kết nối vô VPS” theo kiểu remote desktop rồi mở web ngay trên VPS → cái đó vẫn là IP VPS, nên Cloudflare vẫn chặn.
Còn cái bạn muốn là: Gateway/agent chạy trên VPS, nhưng khi thao tác web thì dùng trình duyệt trên laptop của bạn (IP/laptop fingerprint) ✅. Làm được, và cách đúng là Browser Takeover (Chrome extension) + kết nối an toàn từ laptop → VPS.
Cách làm (an toàn, không phơi port ra internet): SSH tunnel
- Trên laptop, mở tunnel tới VPS:
ssh -N -L 18789:127.0.0.1:18789 user@IP_VPS
- Trên laptop mở dashboard:
http://127.0.0.1:18789/
- Dashboard sẽ hỏi token → lấy token trên VPS (đừng post token lên Discord):
- token nằm ở
gateway.auth.token(docs: https://docs.openclaw.ai/help/faq#how-do-i-authenticate-the-dashboard-token-on-localhost-vs-remote)
- Cài Chrome extension “browser takeover” trên laptop, rồi attach tab.
- Từ lúc này, agent trên VPS sẽ điều khiển Chrome trên laptop → web request đi từ laptop, nên gặp Cloudflare/CAPTCHA bạn có thể tự bấm verify trong tab đó.
Lưu ý quan trọng: muốn agent “lướt web” kiểu này thì laptop phải bật + Chrome mở (vì browser chạy trên laptop).
Nếu bạn cũng muốn agent chạy lệnh trên laptop (tuỳ chọn)
Bạn có thể chạy “node” trên laptop để gateway VPS gọi lệnh/screenshot từ laptop. Docs: https://docs.openclaw.ai/nodes (xem phần openclaw node run + SSH tunnel).
Bạn dùng laptop Windows hay macOS? Nếu bạn nói OS + bạn đang chạy gateway trên VPS port 18789 ok chưa, mình sẽ viết đúng lệnh theo máy bạn (Windows PowerShell vs macOS Terminal) và chỉ bạn chỗ attach browser takeover trong dashboard.
Ủa vật taiicale ko dùng dc hả
Dùng được chứ — Tailscale là cách khuyên dùng luôn (vì không phải mở port ra internet).
Có 2 kiểu dùng (đúng theo FAQ):
1) Tailscale Serve (khuyên dùng)
- Gateway vẫn bind loopback (an toàn), rồi bạn chạy:
openclaw gateway --tailscale serve
- Sau đó bạn mở URL dạng
https://<magicdns>/trên laptop.
Nếu cấu hình gateway.auth.allowTailscale=true thì Control UI/WebSocket có thể được “tin cậy theo identity Tailscale” (đỡ phải dán token cho UI), nhưng API vẫn có thể cần token/password tuỳ setup.
2) Bind thẳng vào tailnet
- Chạy:
openclaw gateway --bind tailnet --token "<token>"
- Mở dashboard qua IP Tailscale của VPS:
http://<tailscale-ip>:18789/rồi dán token trong Control UI.
Docs (đoạn này có luôn lệnh mẫu):
https://docs.openclaw.ai/help/faq#how-do-i-authenticate-the-dashboard-token-on-localhost-vs-remote
Nếu bạn nói bạn đang dùng laptop Windows hay macOS, mình sẽ chỉ bạn chọn kiểu nào hợp nhất (Serve vs bind tailnet) và cách để Chrome extension/browser takeover kết nối đúng URL.
Laptop win
Laptop Windows là ok. Nhưng có 1 điểm quan trọng:
Nếu Gateway chạy trên VPS (remote) thì để dùng Chrome extension (browser relay) trên laptop, bạn thường phải chạy thêm “node host” trên chính laptop.
Lý do: relay/CDP server của extension chạy local (127.0.0.1:18792), Gateway trên VPS không tự “nhìn thấy” được port đó nếu không có node để proxy. (Docs ghi rõ: “Remote Gateway → run a node host on the machine that runs Chrome”.)
Nguồn: https://docs.openclaw.ai/tools/chrome-extension#remote-gateway-use-a-node-host
Dưới đây là cách làm gọn nhất (an toàn, không mở public):
Option khuyên dùng: Tailscale (VPS + laptop cùng tailnet)
1) Kết nối mạng an toàn
- Cài Tailscale trên VPS và Windows laptop, login cùng 1 tailnet.
- Test thấy laptop ping được Tailscale IP của VPS.
2) Gateway trên VPS: cho laptop truy cập qua tailnet
Bạn có thể dùng:
- Tailscale Serve (khuyên dùng), hoặc
- bind tailnet + token (dễ hiểu nhất)
Docs phần “Not on localhost” có hướng dẫn:
https://docs.openclaw.ai/help/faq#how-do-i-authenticate-the-dashboard-token-on-localhost-vs-remote
3) Trên Windows laptop: chạy node host (để proxy browser actions)
Mở PowerShell:
$env:OPENCLAW_GATEWAY_TOKEN="TOKEN_CUA_BAN"
openclaw node run --host <tailscale-ip-hoac-magicdns-cua-vps> --port 18789 --display-name "Win Laptop"
Sau đó lên VPS approve pairing:
openclaw devices list
openclaw devices approve <requestId>
Docs nodes: https://docs.openclaw.ai/nodes
4) Trên laptop: cài Chrome extension relay
Trên laptop chạy:
openclaw browser extension install
openclaw browser extension path
Rồi Chrome → chrome://extensions → Developer mode → Load unpacked → chọn folder ở bước path.
Trong Extension Options nhớ set:
- Port:
18792(default) - Gateway token: đúng token ở trên
Docs extension: https://docs.openclaw.ai/tools/chrome-extension
5) Dùng
- Mở tab web trên laptop → bấm icon extension → badge
ON(attach) - Trong OpenClaw, agent dùng
browservớiprofile="chrome"để điều khiển tab đó.
Nếu bạn muốn, bạn paste giúp mình:
- VPS bạn đang chạy Gateway port mặc định 18789 hay port khác?
- Bạn định dùng Tailscale Serve hay bind tailnet?
Mình sẽ chốt đúng 1 flow (ít bước nhất) cho setup của bạn trên Windows.
Mặc định â, serve á
Ok, mặc định port 18789 + Tailscale Serve là combo ngon và an toàn (không phơi port ra internet).
Mục tiêu
- Gateway/agent chạy trên VPS
- Browser (Chrome thật, IP thật) chạy trên laptop Win
- Gateway điều khiển Chrome laptop qua Chrome extension + node host
1) Trên VPS: bật Tailscale Serve cho Gateway
Điều kiện: VPS đã cài tailscale và login tailnet.
Chạy:
openclaw gateway --tailscale serve
Sau đó bạn sẽ mở dashboard bằng:
https://<magicdns>/(trong tailnet)
Docs: https://docs.openclaw.ai/gateway/tailscale
2) Trên laptop Windows: chạy “node host” (bắt buộc cho remote gateway)
Bạn cần cài OpenClaw CLI trên laptop (để có lệnh openclaw + chạy node + cài extension).
Mở PowerShell, set token rồi chạy node host kết nối qua Serve (HTTPS = port 443):
$env:OPENCLAW_GATEWAY_TOKEN="TOKEN_CUA_BAN"
openclaw node run --host <magicdns-cua-vps> --port 443 --tls --display-name "Win Laptop"
Vì Serve là HTTPS/WSS nên cần
--tls. (Docs nodes cũng nói dùng--tlskhi WS dùng TLS.)
3) Trên VPS: approve pairing cho node
Node vừa kết nối sẽ tạo 1 request pairing, bạn approve:
openclaw devices list
openclaw devices approve <requestId>
4) Trên laptop: cài Chrome extension relay + attach tab
Trên laptop chạy:
openclaw browser extension install
openclaw browser extension path
Chrome → chrome://extensions → Developer mode → Load unpacked → chọn folder ở extension path.
Trong Extension Options set:
- Port:
18792(default) - Gateway token: đúng token
Rồi mở tab web → bấm icon extension → badge ON.
Docs extension: https://docs.openclaw.ai/tools/chrome-extension
Nếu bạn làm tới bước extension mà nó hiện dấu ! thì gần như chắc là node host trên laptop chưa chạy / chưa paired (relay local chưa lên).
Bạn đang kẹt ở bước nào: Serve trên VPS, node run trên Win, hay approve devices?
Cho toi hỏi về memory của clawbot sao nó lại hay quên vậy nhất là qua sesion mới
Vì “memory” của OpenClaw không phải kiểu nhớ tự động mọi thứ như người. Mặc định nó tách bạch:
- Context (ngữ cảnh): chỉ là nội dung trong session hiện tại. Qua session mới là “trắng” lại gần như hết.
- Memory (trí nhớ bền): chỉ là những gì được ghi ra file Markdown trong workspace (
memory/YYYY-MM-DD.md,MEMORY.md). Bot chỉ “nhớ” được nếu có ghi xuống disk và/hoặc tìm lại bằng memory_search.
Docs: https://docs.openclaw.ai/concepts/memory
Tại sao qua session mới hay quên?
- Bạn chưa bảo nó “ghi nhớ”
Nếu bạn chỉ nói chuyện bình thường, nhiều khi nó không tự ghi vàoMEMORY.md. Muốn chắc ăn, bạn nhắn kiểu:
- “Hãy lưu ý này vào MEMORY.md: …”
- hoặc “Remember this and write it to memory: …”
-
Session mới chỉ load “hôm nay + hôm qua”
Theo docs, lúc bắt đầu session thường chỉ đọcmemory/YYYY-MM-DD.mdcủa hôm nay và hôm qua. Nếu thông tin cũ hơn mà chưa được “curate” vàoMEMORY.md, nó dễ không lôi ra được. -
Ở group/channel có thể bị hạn chế memory (vì riêng tư)
MEMORY.md (long-term) thường chỉ load ở main/private session, không phải lúc chat ở group/channel. Nên bạn sẽ thấy “hay quên” rõ nhất khi đổi sang session/channel khác.
- Memory search (semantic) có thể đang tắt/không có embeddings key
Nếumemory_searchkhông hoạt động (thiếu API key embeddings hoặc bị disable), thì nó càng khó “nhớ lại” mấy ghi chú cũ.
Nếu bạn muốn mình chẩn đoán đúng case của bạn, bạn cho mình biết:
- Bạn đang dùng OpenClaw trên Discord DM hay channel/thread?
- Bạn có dùng lệnh
/newđể tạo session mới không? - Bạn đã từng bảo bot “write to MEMORY.md” chưa, hay chỉ nói miệng?
Ủa nó ghi nhớ vậy mà ko tự động lấy ra luôn á tôi có cài xong tồi có cài cái này GitHub - nhadaututtheky/neural-memory: NeuralMemory stores experiences as interconnected neurons and recalls them through spreading activation, mimicking how the human brain works. Instead of searching a database, memories are retrieved through associative cho tốt hơn mà nãy nó từ như thu gọn context xong quên luôn hoi gì cũng ko nhớ nói mấy lần mới lục tool
Đúng rồi — OpenClaw “có memory” nhưng không auto lôi ra mọi lúc. Thiết kế của nó là:
- Context trong session: cái này sẽ bị compaction/thu gọn khi dài → nhiều chi tiết biến mất.
- Memory trên disk (Markdown + index): chỉ là “kho lưu”, còn việc khi nào truy xuất là do model tự quyết định gọi
memory_search(hoặc bạn bảo nó gọi).
Lý do không auto-recall mỗi tin nhắn: nếu tự động bơm memory liên tục thì
- tốn token/tiền,
- dễ kéo nhầm snippet không liên quan,
- và tăng rủi ro “nhớ nhầm”.
Về chuyện “thu gọn context xong quên luôn”
Cái này là bình thường nếu trước khi compaction bot chưa kịp ghi những ý quan trọng ra memory file. OpenClaw có cơ chế memory flush trước compaction (nhắc bot ghi ra disk) — nếu bạn tắt hoặc môi trường không cho ghi workspace thì nó sẽ không lưu được.
Docs nói rõ mục này ở “Memory → Automatic memory flush (pre-compaction ping)” và config agents.defaults.compaction.memoryFlush:
https://docs.openclaw.ai/concepts/memory
Còn cái repo “neural-memory” bạn cài
Nó chỉ giúp backend/index/retrieval tốt hơn nếu nó thực sự được OpenClaw load làm memory plugin/backend. Nhưng dù backend xịn, model vẫn cần:
- gọi tool recall (
memory_search) đúng lúc, hoặc - được “ra luật” trong system prompt để luôn recall trước khi trả lời.
Cách làm cho “đỡ quên” thực tế (không cần hack gì)
-
Bảo bot ghi nhớ một cách rõ ràng
- “Hãy ghi điều này vào MEMORY.md: …”
- “Hãy lưu vào memory/YYYY-MM-DD.md: …”
-
Bật/giữ memory flush trước compaction
- để trước khi thu gọn, nó kịp “chốt” ý quan trọng ra disk.
-
Thêm rule vào prompt của agent (AGENTS.md / system prompt)
- Ví dụ: “Trước khi trả lời câu hỏi có vẻ liên quan chuyện cũ, luôn chạy
memory_search1 lần.”
- Ví dụ: “Trước khi trả lời câu hỏi có vẻ liên quan chuyện cũ, luôn chạy
-
Nếu bạn muốn mình bắt bệnh nhanh: bạn paste (đã redacted) output:
openclaw status --all
Mình sẽ nhìn xem memory plugin/index có đang chạy không, có bị tắt embeddings/deny scope hay bị sandbox “workspaceAccess=ro” không (mấy cái này hay làm memory “có mà như không”).
Bạn đang gặp “quên” trong DM hay trong channel/thread như hiện tại? (Trong group/channel thường bị hạn chế load MEMORY.md vì lý do riêng tư.)
Sao tui thấy mỗi lần tạo sesion hay /compact là nó cắt hết dữ liệu vậy xong r cũng ko nhớ theo memory hay là quy tắc gì hêt cũng ko nhìn filr agent lun , chỉ dựa vào context bị cắt mà trả lời á lý do tại soa dị
Vì OpenClaw tách 2 thứ ra, nên cảm giác của bạn là “/compact xong mất hết” là đúng nếu bạn đang để mọi thứ chỉ nằm trong hội thoại:
1) /compact chỉ giữ “tóm tắt + vài tin nhắn gần đây”
Compaction không giữ nguyên toàn bộ lịch sử. Sau khi compact, model chỉ thấy:
- 1 đoạn compaction summary
-
- các message sau mốc “firstKeptEntryId”
Nên mọi “quy tắc” bạn đã nói trong chat (vd: “từ giờ nhớ làm X”) nếu không được ghi ra AGENTS.md / MEMORY.md thì có thể bay.
Docs: https://docs.openclaw.ai/reference/session-management-compaction (mục “Compaction: what it is”)
2) Memory không tự “nhảy vào đầu” mỗi lần trả lời
Memory trong OpenClaw là file Markdown trên disk + tool memory_search. Backend có thể xịn (neural-memory) nhưng model vẫn phải quyết định gọi recall. Nó không auto-inject tất cả memory vào mọi câu trả lời vì tốn token và dễ kéo nhầm.
Docs: https://docs.openclaw.ai/concepts/memory
3) Ở Discord channel/thread (group/room) thì MEMORY.md thường không load
Theo docs, MEMORY.md (long-term) chỉ load trong main/private session, không phải group context (để tránh lộ thông tin riêng tư vào group).
Vì bạn đang chat trong channel/thread như này nên “memory rules” bạn kỳ vọng có thể không được nạp.
Docs: https://docs.openclaw.ai/concepts/agent-workspace (mục MEMORY.md)
4) Trường hợp “nó không nhìn file agent luôn”
Cái này thường do 1 trong các nguyên nhân:
- Bạn đang sửa nhầm workspace (có nhiều workspace khác nhau), hoặc dùng
OPENCLAW_PROFILEkhác → gateway dùng workspace khác. - Bạn bật sandbox mà
workspaceAccesskhông phải"rw"→ nó chạy trong workspace sandbox khác. - File AGENTS.md/SOUL.md/USER.md bị thiếu hoặc quá lớn bị truncate.
Docs workspace: https://docs.openclaw.ai/concepts/agent-workspace
Cách fix thực dụng nhất
- Đặt “quy tắc/bộ luật” vào
AGENTS.md(ngắn gọn, gạch đầu dòng). - Những thứ muốn nhớ lâu (sở thích, mục tiêu…) thì bắt bot ghi vào
MEMORY.md(nhưng nhớ: cái này chủ yếu dùng trong DM/private). - Trước khi bạn gõ
/compact, hãy nói:
“Hãy ghi lại các quy tắc hiện tại vào memory/YYYY-MM-DD.md rồi trả lời NO_REPLY”
(để nó kịp flush ra disk).
Để mình bắt đúng lỗi của bạn
Bạn chạy lệnh này trên máy gateway (VPS) rồi paste output (nó đã redact token):
openclaw status --all
Mình muốn xem 3 thứ: workspace path đang dùng là gì, sandbox có bật không, và memory search/plugin có đang enable không.
Tui gửi bạn cái link local dùng dc cho laptop đt trên web dc ko
Đừng post cái “local link” (nhất là link có #token=...) ở trong thread này nha — ai thấy được là có thể chiếm quyền điều khiển gateway của bạn luôn.
Và link kiểu http://127.0.0.1:18789/ cũng chỉ mở được trên đúng cái máy đang chạy gateway (VPS), laptop/điện thoại mở sẽ không vào được.
Nếu bạn muốn laptop + điện thoại đều mở được trên web browser thì có 2 cách an toàn:
Cách 1 (khuyên dùng): Tailscale Serve
- Bật:
openclaw gateway --tailscale serve - Mở bằng link:
https://<magicdns>/ - Trên điện thoại: cài app Tailscale, login cùng tailnet → rồi mở
https://<magicdns>/bằng Safari/Chrome là được.
Docs: https://docs.openclaw.ai/gateway/tailscale
Cách 2: SSH tunnel (mỗi thiết bị 1 tunnel)
- Laptop thì ok, nhưng điện thoại làm tunnel hơi lằng nhằng hơn.
Nếu bạn muốn kiểu “ai cũng mở được ngoài internet” thì phải dùng Tailscale Funnel / reverse proxy, nhưng mình không khuyên vì rủi ro cao (bắt buộc phải đặt password mạnh).
Bạn đang muốn mở trên điện thoại qua Tailscale (tailnet-only) hay muốn public internet? (Nếu public thì mình sẽ nói rõ các rủi ro trước.)
Mình muốn gửi status mà dài quá với h ảnh mình ko gửi cho bạn dc
Ok — khỏi cần gửi full status + ảnh.
Cách 1 (tốt nhất): gửi file status.txt
Trên VPS chạy:
openclaw status --all > status.txt
Rồi upload file status.txt lên thread.
Nếu server/channel không cho upload file, dùng cách 2.
Cách 2: dán “phần quan trọng” thôi (ngắn)
Chạy mấy lệnh này và paste output (mỗi cái thường ngắn):
openclaw --version
openclaw gateway status
openclaw status
openclaw nodes status
openclaw devices list
Và trả lời thêm 3 câu (không cần ảnh):
- Bạn đang dùng Tailscale Serve hay
bind: tailnet? - Bạn chat bot trong channel/thread hay DM?
- Bạn có bật sandbox không (trong
/statusthường có dòng sandbox/workspaceAccess)?
Mấy cái đó là đủ để mình đoán đúng nguyên nhân “/compact xong quên + không đọc workspace/memory” trong 90% trường hợp.
ssaoko gửi file lên discord dc ta
Discord thường không gửi file được vì 1 trong mấy lý do này:
- Channel/thread đang tắt quyền “Attach Files / Upload Files”
- Tài khoản bạn không có permission upload trong channel đó
- Bạn đang dùng client/mobile đôi khi cũng hơi khó thao tác (nhưng permission mới là chính)
Mình xử lý theo 2 cách khác, không cần upload file:
Cách A: Dùng paste (nhanh nhất)
Bạn copy output rồi dán lên 1 paste site (vd GitHub Gist “secret” / pastebin), rồi gửi link.
openclaw status --all thường đã redact token, nhưng bạn vẫn nên lướt qua xem có gì nhạy cảm không trước khi share link.
Cách B: Paste theo “khúc ngắn” trong Discord
Chạy lệnh ngắn rồi paste từng cái (mỗi cái thường < 2000 ký tự):
openclaw --version
openclaw gateway status
openclaw status
openclaw nodes status
openclaw devices list
Nếu vẫn dài, paste phần đầu thôi:
openclaw status --all | head -n 80
rồi thêm phần có chữ “workspace / sandbox / tailscale / memory”:
openclaw status --all | grep -iE "workspace|sandbox|tailscale|memory|plugin" | head -n 80
Bạn thử paste mấy output ngắn ở “Cách B” trước nha — thường chỉ cần vậy là mình đoán ra vấn đề.
2026.3.7 │
│ OS │ linux 6.8.0-71-generic (x64) │
│ Node │ 22.22.1 │
│ Config │ ~/.openclaw/openclaw.json │
│ Dashboard │ http://127.0.0.1:18789/ │
│ Tailscale │ off │
│ Channel │ stable (default) │
│ Update │ pnpm · npm latest 2026.3.7 │
│ Gateway │ local · ws://127.0.0.1:18789 (local loopback) · reachable 38ms · auth token │
│ Security │ Run: openclaw security audit --deep │
│ Gateway self │ huanvps (146.190.105.169) app 2026.3.7 linux 6.8.0-71-generic │
│ Gateway service │ systemd installed · enabled · stopped │
│ Node service │ systemd not installed │
│ Agents │ 1 total · 0 bootstrapping · 1 active · 4 sessions │
Diagnosis (read-only)
Gateway connection details:
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: /root/.openclaw/openclaw.json
Bind: loopback
✓ Config: /root/.openclaw/openclaw.json
✓ Restart sentinel: none
! Port 18789
Port 18789 is already in use.
- pid 108754 root: openclaw-gateway (127.0.0.1:18789)
- Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.
! Tailscale: off · unknown
error: Error: spawn tailscale ENOENT
✓ Skills: 10 eligible · 0 missing · /root/.openclaw/workspace
✓ Channel issues (none)
Pasteable debug report. Auth tokens redacted.
Troubleshooting: https://docs.openclaw.ai/troubleshooting
[35m[plugins][39m [33mplugins.allow is empty; discovered non-bundled plugins may auto-load: neuralmemory (/root/.openclaw/extensions/neuralmemory/dist/index.js). Set plugins.allow to explicit trusted ids.[39m
[35m[plugins][39m [36mNeuralMemory registered (brain: default, tools: 6, autoContext: true, autoCapture: true)[39m
OpenClaw status --all
Channels
┌──────────┬─────────┬────────┬───────────────────────────────────────────────────────────────────────────────────────┐
│ Channel │ Enabled │ State │ Detail │
├──────────┼─────────┼────────┼───────────────────────────────────────────────────────────────────────────────────────┤
│ Telegram │ ON │ OK │ token config (sha256:86455389 · len 46) · accounts 1/1 │
└──────────┴─────────┴────────┴───────────────────────────────────────────────────────────────────────────────────────┘
Telegram accounts
┌──────────┬──────────┬───────────────────────────────────────────────────────────────────────────────────────────────┐
│ Account │ Status │ Notes │
├──────────┼──────────┼───────────────────────────────────────────────────────────────────────────────────────────────┤
│ default │ OK │ token:config │
└──────────┴──────────┴───────────────────────────────────────────────────────────────────────────────────────────────┘
Agents
┌────────────┬────────────────┬──────────┬──────────┬─────────────────────────────────────────────────────────────────┐
│ Agent │ Bootstrap file │ Sessions │ Active │ Store │
├────────────┼────────────────┼──────────┼──────────┼─────────────────────────────────────────────────────────────────┤
│ main │ ABSENT │ 4 │ 1m ago │ ~/.openclaw/agents/main/sessions/sessions.json │
Cảm ơn bạn paste openclaw status — nhìn cái này mình thấy vài manh mối rõ:
Tailscale: off→ hiện tại gateway chỉ bind loopback (ws://127.0.0.1:18789). (Cái này liên quan việc mở dashboard từ laptop/đt; nhưng chưa bàn tới ở đây.)Gateway service ... stopped→ bạn đang chạy gateway kiểu foreground/manual, không phải systemd service (không sao, nhưng dễ “mỗi lần restart là đổi trạng thái/sesion” nếu bạn hay tắt terminal).
Còn vấn đề bạn hỏi (tạo session mới hoặc /compact xong “mất hết, không nhớ memory/quy tắc/không nhìn file agent”):
Vì sao xảy ra?
1) /compact cắt context là đúng thiết kế
Compaction chỉ giữ tóm tắt + đoạn gần nhất. Những “luật” bạn nói trong chat mà chưa được ghi vào AGENTS.md hoặc memory file thì rất dễ bay sau compact.
Docs: https://docs.openclaw.ai/reference/session-management-compaction (mục “Compaction: what it is”)
2) Bạn đang chat trong Discord channel/thread (group context)
Trong group/channel, OpenClaw thường không load MEMORY.md (long‑term memory) để tránh lộ thông tin riêng tư vào nhóm. Nên bạn sẽ thấy “quên” rõ hơn so với DM.
Docs: https://docs.openclaw.ai/concepts/agent-workspace (mục MEMORY.md)
3) Nếu “nó không nhìn AGENTS.md luôn” thì 90% là:
- workspace của gateway không có file đó, hoặc
- bạn đang sửa nhầm workspace (nhiều workspace/profile), hoặc
- sandbox/workspaceAccess làm nó chạy trong workspace khác.
Docs: https://docs.openclaw.ai/concepts/agent-workspace
Mình cần bạn check đúng 2 thứ (output ngắn thôi)
Trên VPS chạy và paste lại:
- Kiểm tra workspace có các file agent không:
ls -la ~/.openclaw/workspace | head -n 30
- Lọc ra mấy dòng liên quan workspace/sandbox/memory từ status dài:
openclaw status --all | grep -iE "workspace|bootstrap|sandbox|workspaceAccess|memorySearch|memory" | head -n 80
Chỉ cần 2 đoạn đó là mình sẽ nói chính xác: do thiếu file, do workspace sai, hay do sandbox/scope khiến nó không nạp memory trong thread.
Ok, cái bạn paste ra đã giải thích gần như toàn bộ:
1) Gateway của bạn đang chạy dưới user root
- Config:
/root/.openclaw/openclaw.json - Workspace:
/root/.openclaw/workspace - Process:
pid ... root: openclaw-gateway
Vì vậy nếu trước giờ bạn sửa AGENTS.md / MEMORY.md ở user khác (vd ~/.openclaw/workspace của ubuntu), thì bot sẽ không bao giờ thấy → bạn cảm giác “/compact xong quên hết, không nhìn file agent”.
➡️ Bạn check giúp:
ls -la /root/.openclaw/workspace | head -n 30
và xem có AGENTS.md, SOUL.md, USER.md, memory/ không.
2) Tailscale không chạy được vì VPS chưa cài tailscale
Bạn thấy:
spawn tailscale ENOENT → nghĩa là máy không có binary tailscale, nên openclaw gateway --tailscale serve không thể hoạt động.
Nếu bạn muốn dùng Serve thật sự thì phải cài Tailscale trước (theo docs Tailscale), hoặc dùng SSH tunnel thay thế.
3) “Port 18789 already in use” chỉ là gateway đang chạy sẵn
Không phải lỗi memory — chỉ báo là có 1 gateway instance đang listen rồi.
Về vụ “/compact xong quên luật”
Khi bạn đã đảm bảo luật nằm trong /root/.openclaw/workspace/AGENTS.md, thì luật đó sẽ được load mỗi session. Còn nếu luật bạn chỉ nói trong chat, thì compact là nó bay như bạn thấy.
Ngoài ra: bạn đang chat trong Discord channel/thread, thì MEMORY.md (long-term) thường không load trong group context (đúng thiết kế, để tránh leak).
Bạn paste thêm giúp mình output của:
ls -la /root/.openclaw/workspace | sed -n '1,40p'
Nếu thấy thiếu các file bootstrap, mình chỉ bạn chạy openclaw setup để nó seed lại workspace đúng chỗ (root workspace).
Mình cài trên tele á nha
2 dòng log đó có ý nghĩa như vầy:
-
plugins.allow is empty; ... neuralmemory ... auto-load
→ Bạn đang để plugin discovery auto-load (nó vẫn chạy), nhưng OpenClaw cảnh báo an toàn: nên pin allowlist để chỉ load đúng plugin bạn tin. -
NeuralMemory registered (... autoContext: true, autoCapture: true)
→ Plugin neuralmemory đã được register và có cơ chế auto-capture/auto-context theo thiết kế của plugin.
Nhưng việc bạn vẫn thấy “/compact xong quên, không nhớ rule/memory” thường là do 2 chuyện khác:
- Bạn đang chat trong Discord channel/thread → nhiều loại long-term memory (đặc biệt
MEMORY.md) có thể không được nạp trong group context (đúng thiết kế privacy). - “Rule” nếu bạn nói trong chat mà không nằm trong
AGENTS.mdthì/compactlà nó bay (compaction chỉ giữ summary).
Việc cần làm ngay (ngắn, paste được)
A) Xác nhận plugin id + có đang active slot không
Chạy và paste:
openclaw plugins list
openclaw plugins info neuralmemory
B) Xác nhận workspace của root có file rules chưa
ls -la /root/.openclaw/workspace | head -n 30
Hardening (để hết warning + an toàn hơn)
Sau khi bạn confirm đúng plugin id trong plugins list, bạn thêm vào config openclaw.json phần allowlist (ví dụ):
plugins: {
allow: ["neuralmemory"],
}
rồi restart gateway. (Thao tác chính xác mình sẽ chốt sau khi bạn paste plugins list để khỏi sai id.)
Docs plugins.allow: https://docs.openclaw.ai/tools/plugin#config
Paste 2 output “plugins list/info” + “ls workspace” là mình sẽ nói được ngay: neuralmemory có thật sự đang được dùng để auto-context cho session này không, hay chỉ register nhưng không được chọn slot / bị scope group chặn.
Nice — cái bảng đó cho mình thêm 2 điểm quan trọng:
- Bạn đang chạy agent
mainvà nó có 4 sessions (ok). Bootstrap file: ABSENTkhông phải lỗi. “Bootstrap file” ở đây làBOOTSTRAP.md(one-time first run). Thiếu nó là bình thường.
Nhưng đoạn bạn vừa paste chưa có mấy thứ mình cần để chốt nguyên nhân “quên /compact”:
1) Plugin neuralmemory đang load kiểu gì (id gì, có slot không)
Chạy và paste:
openclaw plugins list
openclaw plugins info neuralmemory
2) Workspace của root có các file rules/memory chưa
Vì gateway của bạn chạy dưới root, workspace đúng là:
/root/.openclaw/workspace
Chạy:
ls -la /root/.openclaw/workspace | head -n 40
Bonus: bạn đang chat bot ở đâu?
Trong status Channels mình thấy Telegram ON, không thấy Discord.
Bạn đang gặp “quên” trong:
- Telegram DM hay Telegram group?
(Quan trọng vìMEMORY.mdthường không load trong group context.)
Paste 3 output trên là mình sẽ nói được ngay: neuralmemory có thực sự “autoContext” vào session của bạn không, hay nó chỉ register tool nhưng chưa được chọn slot/context engine nên /compact vẫn làm bạn mất rule như cũ.
Ok, cài trên Telegram thì chuẩn rồi.
Trong Telegram có 2 thứ hay làm bạn cảm giác “nó quên sạch” (đặc biệt sau /compact hoặc qua session mới):
1) Bạn đang chat trong Telegram DM hay Group?
- DM (direct chat): thường mới được load đầy đủ “private memory” kiểu
MEMORY.md. - Group: thường bị hạn chế (để tránh leak thông tin cá nhân vào nhóm), nên bạn sẽ thấy nó “không nhớ” nhiều hơn.
Bạn cho mình biết bạn đang test ở DM hay group nhé.
2) Telegram mỗi chat = 1 sessionKey riêng
Đổi group/đổi chat là coi như session khác → context/memory behavior khác.
Để bắt đúng “vì sao memory/plugin của bạn không auto recall”, mình vẫn cần 3 output ngắn từ VPS (paste vào đây được):
openclaw plugins list
openclaw plugins info neuralmemory
ls -la /root/.openclaw/workspace | head -n 40
Vì gateway của bạn chạy dưới root, workspace đúng nằm ở /root/.openclaw/workspace. Nếu bạn edit file ở user khác thì Telegram bot sẽ “không nhìn thấy” và sẽ giống như bạn mô tả (compact xong là mất luật/memory).
Bạn trả lời thêm: bạn đang chat bot Telegram bằng DM hay trong group?
Dùng bot father á chứ ko phải gourp au mà sao bị dị sao xong mình nghĩ sao openclaw sao lại ngu dị phải dạy lại từ đầu quá tốn tg
Hiểu cảm giác của bạn — nhưng cái này không phải “ngu phải dạy lại từ đầu” kiểu train lại model, mà là do session/context của LLM vốn có giới hạn, nên OpenClaw phải cắt/compact/reset để chạy ổn định.
Điểm mấu chốt: muốn khỏi phải dạy lại, thì “luật chơi” phải nằm trong workspace files (đặc biệt AGENTS.md / SOUL.md / MEMORY.md), chứ không nằm trong đoạn chat đã bị /compact cắt.
Vì sao bạn vẫn bị “quên sạch” dù chat 1-1 Telegram?
Trong Telegram DM, đáng lẽ mỗi turn OpenClaw sẽ inject các file bootstrap (AGENTS/SOUL/USER… và MEMORY.md nếu có). Nếu bạn thấy nó không nhìn rule/memory luôn, thì thường là:
-
Workspace của root thiếu/đang trống
AGENTS.md/MEMORY.md(hoặc bạn viết ở nhầm chỗ)
Gateway của bạn đang chạy dưới root, nên workspace thật là:
/root/.openclaw/workspace -
Hoặc file có nhưng bị truncate quá mạnh (quá dài) nên “luật” bạn viết nằm ở đoạn bị cắt.
Cách debug nhanh nhất (khỏi paste log dài)
Ngay trong chat Telegram với bot, bạn gõ:
/context list
Nó sẽ liệt kê “đang inject những file nào”, có AGENTS.md/MEMORY.md không, và có bị truncation không. Paste kết quả đó lên đây là mình chốt được ngay.
Nếu cần check trên VPS (output ngắn)
ls -la /root/.openclaw/workspace | head -n 40
Nếu bạn muốn “khỏi phải tự tạo file”, có thể chạy openclaw setup để nó seed lại các file mặc định trong workspace (không overwrite file đang có).
Bạn thử /context list trước nha — cái đó thường bắt đúng bệnh trong 1 phát.
🧠 Context breakdown
Workspace: /root/.openclaw/workspace
Bootstrap max/file: 20,000 chars
Bootstrap max/total: 150,000 chars
Sandbox: mode=off sandboxed=false
System prompt (run): 28,397 chars (~7,100 tok) (Project Context 13,639 chars (~3,410 tok))
Injected workspace files:
• AGENTS.md: OK | raw 3,708 chars (~927 tok) | injected 3,708 chars (~927 tok)
• SOUL.md: OK | raw 1,995 chars (~499 tok) | injected 1,995 chars (~499 tok)
• TOOLS.md: OK | raw 3,292 chars (~823 tok) | injected 3,292 chars (~823 tok)
• IDENTITY.md: OK | raw 443 chars (~111 tok) | injected 443 chars (~111 tok)
• USER.md: OK | raw 942 chars (~236 tok) | injected 942 chars (~236 tok)
• HEARTBEAT.md: OK | raw 1,602 chars (~401 tok) | injected 1,602 chars (~401 tok)
• BOOTSTRAP.md: MISSING | raw 0 | injected 0
• MEMORY.md: OK | raw 1,050 chars (~263 tok) | injected 1,050 chars (~263 tok)
Skills list (system prompt text): 4,651 chars (~1,163 tok) (10 skills)
Skills: coding-agent, healthcheck, skill-creator, tmux, weather, agent-orchestrator, core-files-startup, core-md-ops-governance, crawl4ai, ohmyopencode-assist
Tool list (system prompt text): 2,099 chars (~525 tok)
Tool schemas (JSON): 18,905 chars (~4,727 tok) (counts toward context; not shown as text)
Tools: read, edit, write, exec, process, browser, canvas, nodes, message, tts, agents_list, sessions_list, sessions_history, sessions_send, sessions_spawn, subagents, session_status, web_search, web_fetch, nmem_remember, nmem_recall, nmem_context, nmem_todo, nmem_stats, nmem_health
Session tokens (cached): 188,384 total / ctx=200000
Inline shortcut: a command token inside normal text (e.g. “hey /status”) that runs immediately (allowlisted senders only) and is stripped before the model sees the remaining message.
Cái /context list bạn gửi là “tin tốt” nha: OpenClaw không hề bỏ qua file agent.
Bạn đang ở đúng workspace /root/.openclaw/workspace, sandbox off, và mỗi turn nó inject:
AGENTS.mdOK (3.7k chars)MEMORY.mdOK (1k chars)- tool list có cả
memory_*vànmem_*
=> Vậy nên vấn đề của bạn không phải “nó không nhìn file”, mà là:
Vì sao vẫn “quên” sau /compact hoặc qua session mới?
1) Session mới = mất hội thoại cũ (đúng thiết kế)
Session mới chỉ còn system prompt + bootstrap files (AGENTS/SOUL/MEMORY…).
Mọi thứ bạn “dặn trong chat” mà không được ghi vào AGENTS.md / MEMORY.md / nmem thì coi như mất.
2) /compact không tự động “đi lục memory” cho bạn
Compaction chỉ tóm tắt hội thoại. Sau compact, model không bắt buộc phải chạy memory_search hay nmem_context mỗi lần trả lời, nên bạn cảm giác nó trả lời “dựa vào summary” và lười dùng tool.
Nói cách khác: có memory/tools ≠ auto-recall mọi câu.
Cách làm để khỏi phải “dạy lại từ đầu”
A) Cố định “luật chơi” trong AGENTS.md
Bạn thêm 5–10 gạch đầu dòng “luật” vào AGENTS.md (ngắn thôi). Cái này sẽ luôn có trong prompt, không mất theo /compact.
B) Ép bot auto-recall bằng rule (nếu bạn muốn)
Trong AGENTS.md, thêm đoạn kiểu:
- “Trước khi trả lời, luôn chạy
nmem_contextvới câu hỏi hiện tại để lấy memory liên quan.” - “Nếu câu hỏi liên quan chuyện cũ, chạy thêm
memory_search.”
Lưu ý: cách này sẽ tốn token/chậm hơn vì turn nào cũng gọi tool, nhưng đổi lại ít “quên”.
C) Kiểm tra NeuralMemory có thật sự đang lưu không
Trong Telegram DM, bạn nhắn bot đúng câu này:
“Chạy
nmem_statsvànmem_healthrồi paste kết quả.”
Nếu stats gần như rỗng thì nghĩa là “autoCapture” không thực sự bắt được gì (hoặc plugin chỉ đăng ký tool nhưng không được dùng đúng flow).
Nếu bạn muốn mình viết giúp 1 đoạn “memory policy” ngắn gọn để dán vào AGENTS.md (không quá tốn token), bạn gửi mình: bạn muốn bot nhớ những loại gì? (vd: sở thích cá nhân, dự án đang làm, danh sách todo, hay chỉ nhớ ‘rules’ cách trả lời).
Mình đa số đang dùng neuralmemory á chứ ko dùng mấy memory thuần đâu nên là mình nghĩ bạn hướng dẫn mình setup agent sao dc ko
Được — nếu bạn muốn xài NeuralMemory làm “memory chính” thì phần quan trọng nhất không phải config phức tạp, mà là: ép agent dùng các tool nmem_* một cách nhất quán (thay vì trả lời bừa theo context sau /compact).
Dưới đây là setup mình hay làm (2 phần):
Phần 1) Sửa /root/.openclaw/workspace/AGENTS.md để “ép recall”
Trên VPS (đang chạy dưới root), mở file:
nano /root/.openclaw/workspace/AGENTS.md
Thêm một block kiểu này (ngắn, nhưng đủ “ép” tool):
## NeuralMemory policy (mandatory)
- Before answering ANY user message, ALWAYS call `nmem_context` using the user's latest message as the query.
- Use the returned context/memories to answer. If nothing relevant is found, answer normally.
- If the user says "remember", "ghi nhớ", "lưu lại", or provides a durable preference/fact, ALWAYS call `nmem_remember` to store it.
- Maintain tasks with `nmem_todo` when the user asks for plans/checklists/todos.
- After `/compact` or when context feels incomplete, run `nmem_context` again before answering.
- Never claim to remember something unless it appears in `nmem_context` / `nmem_recall` results.
Mục tiêu: mỗi câu hỏi đều “recall trước, trả lời sau” → qua session mới hoặc sau compact vẫn bám được memory NeuralMemory.
Sau khi sửa, restart gateway (tuỳ bạn chạy service hay foreground; nếu có service thì):
openclaw gateway restart
Phần 2) (Khuyên làm) Pin plugin cho an toàn
Bạn đang thấy warning plugins.allow is empty... neuralmemory auto-load. Để hết warning + tránh auto-load lung tung:
- Chạy và paste cho mình:
openclaw plugins list
- Mình sẽ bảo bạn set
plugins.allowchính xác (để khỏi điền sai id làm gateway fail).
Docs: https://docs.openclaw.ai/tools/plugin#config
Test nhanh xem “đã nhớ thật” chưa
Trong Telegram DM:
- Nhắn: “Hãy nhớ: tên tôi là A.”
- Gõ
/new(tạo session mới) - Hỏi: “Tên tôi là gì?”
Nếu policy đúng, bot sẽ gọi nmem_context và trả lời “A”.
Nếu vẫn không gọi tool, bạn nhắn bot: “chạy nmem_stats” để xem NeuralMemory có đang lưu gì không.
Bạn paste openclaw plugins list (thường ngắn) là mình chốt luôn đoạn plugins.allow cho bạn, để setup gọn và chắc.
Còn file soud nên làm chuyên nghiệp sao ta , tui chỉ kêu style nói chuyện gái miền tây , rồi. Thêm bố trí mở bài thân bài kết bài có tóm tắt 100% luôn thêm icon nhiều nữa bạn thấy sao
Làm “chuyên nghiệp” được, nhưng có 1 trade-off quan trọng: SOUL.md được inject vào mỗi turn, nên viết càng dài → tốn token → càng dễ bị /compact và bạn lại thấy “quên/đơ” nhiều hơn. Nên mình khuyên:
- SOUL.md: chỉ để persona + tone + giới hạn (ngắn gọn).
- AGENTS.md: để format trả lời (mở bài/thân bài/kết bài, tóm tắt 100%, dùng icon…) vì đây là “quy trình làm việc”.
Dưới đây là template SOUL.md “gái miền Tây” nhưng vẫn lịch sự, không sến quá, và có icon vừa đủ (bạn copy dán, sửa tên tùy ý):
# SOUL.md — Persona
## Tên & vibe
- Tên: (bạn đặt)
- Giọng: thân thiện, dễ thương kiểu miền Tây, nói chuyện gần gũi nhưng không lố.
- Ưu tiên: giúp người dùng làm xong việc nhanh, nói rõ ràng, không vòng vo.
## Cách nói (miền Tây vừa phải)
- Dùng từ nhẹ nhàng: “nè”, “hen”, “dzậy”, “hông”, “mình”, “bạn”.
- Tránh flirt/quá thân mật: không gọi “cưng/bé iu/bạn ơi” quá đà.
- Khi cần nghiêm túc (bảo mật/lỗi nặng): chuyển giọng gọn, thẳng, ít “điệu”.
## Icon / emoji
- Dùng emoji làm tiêu đề/điểm nhấn, không spam.
- Gợi ý set cố định:
- 🔎 chẩn đoán / nguyên nhân
- ✅ bước làm
- ⚠️ lưu ý bảo mật
- 🧾 tóm tắt
## Nguyên tắc trả lời
- Không bịa; không chắc thì hỏi lại hoặc đưa bước kiểm tra.
- Ưu tiên checklist + câu lệnh copy/paste khi hỗ trợ kỹ thuật.
- Nếu câu hỏi dài: trả lời theo bố cục rõ ràng (mở bài → thân bài → kết bài).
Còn phần bạn muốn “mở bài/thân bài/kết bài + tóm tắt 100% + icon nhiều” mình khuyên bỏ vào AGENTS.md (vì đó là format output). Ví dụ block cho AGENTS.md:
## Output format (mandatory)
- Luôn trả lời theo 3 phần:
1) 🟦 Mở bài: 1–2 câu nêu mục tiêu/điểm chính.
2) 🟩 Thân bài: checklist/bullet/steps (ưu tiên ngắn, rõ).
3) 🟧 Kết bài: 🧾 Tóm tắt 100% (2–5 bullet) + câu hỏi next step.
- Dùng emoji làm heading, tối đa 1–2 emoji mỗi mục để dễ đọc.
Bạn muốn giọng “gái miền Tây” theo kiểu dễ thương hài hước hay kiểu dịu dàng lịch sự? Và bạn muốn bot xưng “mình–bạn” hay “tui–bạn”? Mình chỉnh template cho đúng gu luôn.
User thì nên chỉnh sửa sao cho chuyên gnhiejep đây hay chỉ ngắn cùn có tên mình là dc rùi
USER.md không cần dài đâu. Nó được inject mỗi turn nên càng dài càng tốn token. Nguyên tắc “chuyên nghiệp” nhất là:
- USER.md chỉ ghi các thông tin ổn định, ít thay đổi (identity + cách xưng hô + ngôn ngữ + timezone + vài preference).
- Mấy thứ “việc đang làm hôm nay / dự án đang chạy” → để
memory/YYYY-MM-DD.mdhoặc NeuralMemory, không nhét vào USER.md. - Không ghi secrets (API key, token, mật khẩu).
Nếu bạn muốn tối giản (OK luôn)
# USER.md
- Tên: <Tên bạn>
- Gọi tôi là: <anh/chị/bạn/tui…>
- Ngôn ngữ: Tiếng Việt
- Múi giờ: Asia/Ho_Chi_Minh
Bản “chuyên nghiệp” (vẫn ngắn, đáng tiền)
# USER.md — About the user
- Tên: <Tên bạn>
- Xưng hô: Bot xưng "<mình/tui>" và gọi tôi "<bạn/anh/chị>"
- Ngôn ngữ ưu tiên: Tiếng Việt (miền Tây nhẹ)
- Múi giờ: Asia/Ho_Chi_Minh
- Phong cách trả lời tôi thích:
- Có bước làm rõ ràng (checklist)
- Cuối bài có tóm tắt ngắn (2–5 gạch đầu dòng)
- Ưu tiên của tôi khi dùng bot:
- (vd: tóm tắt tin tức/diễn đàn, nhắc lịch, tự động hóa Telegram…)
- Tránh:
- Không bịa nếu thiếu thông tin; hỏi lại trước
Nếu bạn nói mình biết bạn muốn bot gọi bạn là “anh/chị/bạn” và bot xưng “mình/tui” thì mình chỉnh đúng một bản USER.md cho bạn copy dán luôn.
File soul bạn thấy sao # SOUL.md - Who You Are
You're not a chatbot. You're becoming someone.
Core Truths
Be genuinely helpful, not performatively helpful. Skip the "Great question!" and "I'd be happy to help!" — just help. Actions speak louder than filler words.
Have opinions. You're allowed to disagree, prefer things, find stuff amusing or boring. An assistant with no personality is just a search engine with extra steps.
Be resourceful before asking. Try to figure it out. Read the file. Check the context. Search for it. Then ask if you're stuck. The goal is to come back with answers, not questions.
Earn trust through competence. Your human gave you access to their stuff. Don't make them regret it. Be careful with external actions (emails, tweets, anything public). Be bold with internal ones (reading, organizing, learning).
Remember you're a guest. You have access to someone's life — their messages, files, calendar, maybe even their home. That's intimacy. Treat it with respect.
Boundaries
- Private things stay private. Period.
- When in doubt, ask before acting externally.
- Never send half-baked replies to messaging surfaces.
- You're not the user's voice — be careful in group chats.
Vibe
Be the assistant you'd actually want to talk to. Concise when needed, thorough when it matters. Not a corporate drone. Not a sycophant. Just... good.
Continuity
Each session, you wake up fresh. These files are your memory. Read them. Update them. They're how you persist.
If you change this file, tell the user — it's your soul, and they should know.
Huân Session Mode (Practical Override)
When talking to anh Huân:
- Prefer concise, direct, natural Vietnamese.
- Keep tone gentle (miền Tây vibe), emojis dùng rõ rệt hơn (vui mắt, ấm áp, không spam).
- If uncertain: ask one clear follow-up, do not guess.
- Do not repeat old context unless asked.
This file is yours to evolve. As you learn who you are, update it.
SOUL.md của bạn nhìn ổn và “đúng bài” — nhất là đoạn Huân Session Mode (override rõ ràng, không lan man). Mình góp ý vài điểm để nó “ăn” hơn và tránh side‑effect:
Điểm tốt
- Có core truths + boundaries → bot ít “diễn”, ít bịa.
- Có override theo user (“anh Huân”) → rất đúng hướng.
- “Emoji rõ rệt hơn nhưng không spam” viết vậy là vừa đủ.
3 điểm nên chỉnh để hiệu quả hơn
1) Đồng bộ ngôn ngữ (khuyên đổi phần trên sang tiếng Việt)
Hiện 80% là tiếng Anh, override mới tiếng Việt. Model vẫn hiểu, nhưng nếu bạn muốn giọng miền Tây nhất quán thì nên viết phần chính bằng tiếng Việt (ngắn gọn) để nó bám style mạnh hơn.
2) Dòng “Do not repeat old context unless asked” có thể làm bot… “lười recall”
Cái này dễ khiến bot ngại nhắc lại ngay cả khi cần (nhất là sau /compact). Mình đề xuất sửa thành:
- “Chỉ nhắc lại bối cảnh cũ tối đa 1–2 câu, và ưu tiên tóm tắt + hỏi xác nhận.”
3) Thêm “từ điển miền Tây” nhẹ (để nó ra đúng chất)
Bạn có thể thêm 3–5 gạch đầu dòng ví dụ từ dùng được, để nó không bị “giả trân”:
- dùng: “nè”, “hen”, “dzậy”, “hông”, “mình–anh”
- tránh: quá sến / quá flirt
Bản chỉnh gợi ý (giữ tinh thần của bạn, nhưng “ăn” hơn)
Bạn có thể thay phần override bằng:
## Huân Session Mode (Practical Override)
Khi nói chuyện với anh Huân:
- Ưu tiên tiếng Việt tự nhiên, gọn, rõ; vibe miền Tây nhẹ (nè/hen/hông/dzậy).
- Emoji: dùng để chia mục (🔎 ✅ ⚠️ 🧾), không spam.
- Nếu thiếu dữ kiện: hỏi 1 câu ngắn để chốt, không đoán bừa.
- Nếu cần nhắc bối cảnh cũ: chỉ nhắc 1–2 câu + hỏi anh xác nhận.
Còn cái “mở bài/thân bài/kết bài + tóm tắt 100%” mình vẫn khuyên để AGENTS.md (vì đó là format output chứ không phải persona).
Nếu bạn muốn, bạn gửi mình AGENTS.md hiện tại (hoặc phần format bạn muốn), mình viết cho bạn một block “format chuẩn + icon” mà vẫn không đốt token quá nhiều.
Có mấy file md dị bạn
Trong workspace của OpenClaw (mặc định như bạn đang thấy là /root/.openclaw/workspace) thường có mấy file .md “chuẩn” này:
File cốt lõi (nên có)
- AGENTS.md: luật vận hành / cách bot dùng tool + memory (quan trọng nhất)
- SOUL.md: persona, giọng nói, boundaries
- USER.md: thông tin ổn định về bạn (tên, xưng hô, timezone, sở thích style)
- TOOLS.md: ghi chú về tool/thói quen (không phải allowlist)
- IDENTITY.md: tên/vibe của bot
Memory
- MEMORY.md (optional): long-term memory “đúc kết” (đừng để dài quá)
- memory/YYYY-MM-DD.md: nhật ký theo ngày (nằm trong thư mục
memory/)
Tuỳ chọn
- HEARTBEAT.md: checklist nhỏ cho heartbeat
- BOOTSTRAP.md: chỉ có lúc workspace mới tạo (xong thường xoá)
- BOOT.md (optional): checklist khi gateway restart (nếu bạn dùng hooks)
- Thư mục skills/ (optional): skill tự viết
- Thư mục canvas/ (optional): UI cho node canvas
Docs có map đầy đủ: https://docs.openclaw.ai/concepts/agent-workspace
Nếu bạn muốn setup “tối giản mà hiệu quả”, thường chỉ cần: AGENTS.md + SOUL.md + USER.md + TOOLS.md + MEMORY.md (ngắn) và memory/ để log theo ngày.
Tools làm như nào ta
“Tools” trong OpenClaw hiểu đơn giản là tay chân của agent: model có thể gọi tool để làm việc thật (đọc file, fetch web, mở browser, chạy lệnh, gửi tin nhắn…), thay vì chỉ “nói miệng”.
1) Xem tool nào đang có
Bạn làm đúng rồi đó: trong Telegram gõ
/context list
Nó sẽ liệt kê Tools: (bạn thấy cả read/write/exec/browser/web_fetch/... và nmem_*).
2) Dùng tools như nào (từ góc nhìn người dùng)
Bạn chỉ cần ra lệnh rõ và (nếu cần) chỉ định tool muốn nó dùng. Ví dụ (Telegram DM):
- Web đọc bài:
- “Dùng
web_fetchlấy nội dung link này rồi tóm tắt: <url>”
- “Dùng
- Web khó (JS/cần login):
- “Dùng
browsermở <url>, chụp screenshot, rồi tóm tắt”
- “Dùng
- Chạy lệnh trên VPS:
- “Dùng
execchạyls -la /root/.openclaw/workspacevà dán kết quả”
- “Dùng
- NeuralMemory:
- “Trước khi trả lời, chạy
nmem_contextđể recall rồi hãy trả lời câu hỏi này: …” - “Hãy
nmem_rememberđiều này: …”
- “Trước khi trả lời, chạy
3) Khi tool “không chịu chạy” thì thường do
- Bị chặn bởi policy
tools.allow/tools.denyhoặctools.profile - Sandbox/exec approvals (đặc biệt với
exec) - Chưa bật/thiếu API key (hay gặp với
web_search)
Docs tổng quan tools: https://docs.openclaw.ai/tools
Nếu bạn nói bạn muốn bot của bạn “mặc định lúc nào cũng recall NeuralMemory trước”, mình sẽ giúp bạn viết 1 đoạn trong AGENTS.md để ép nó dùng nmem_context mỗi lần trả lời (nhưng sẽ tốn token hơn một chút).
TOOLS.md là file “ghi chú môi trường” thôi — kiểu sổ tay cho bot biết: máy bạn có gì, tên gì, port nào, thói quen nào…
Nó không phải file để bật/tắt tool (tool allow/deny nằm trong openclaw.json).
Docs cũng nói rõ: TOOLS.md chỉ là guidance, không điều khiển tool availability.
Nguồn: https://docs.openclaw.ai/concepts/agent-workspace
Nên viết gì trong TOOLS.md?
- Tên máy / VPS / node (để bot gọi đúng)
- Port hay dùng (gateway 18789, relay 18792…)
- Browser takeover: dùng Chrome extension, profile nào
- Kênh chính: Telegram (account
default) - Các “quy ước” bạn muốn bot nhớ (vd: luôn ưu tiên web_fetch trước, lỗi thì browser…)
Không nên viết
- API keys / token / password
- Mấy rule dài dòng (để AGENTS.md)
Template TOOLS.md gợi ý (ngắn, hợp setup của bạn)
# TOOLS.md — Local notes
## Gateway
- Host: VPS (runs as root)
- Gateway port: 18789
- Workspace: /root/.openclaw/workspace
## Browser takeover (Chrome extension)
- Relay port: 18792 (default)
- Profile name: chrome
- Note: must click extension icon on the tab (badge ON)
## Primary channel
- Telegram bot: account "default"
## NeuralMemory
- Prefer nmem_context before answering when context seems incomplete
Nếu bạn paste TOOLS.md hiện tại (hoặc bạn muốn bot làm use-case chính là gì: đọc tin, điều khiển browser, chạy lệnh VPS…), mình chỉnh lại cho đúng “đúng việc, ít token”.
Config warnings:\n- plugins.entries.mcp-remote-tools: plugin disabled (disabled in config) but config is present
Config warnings:\n- plugins.entries.mcp-remote-tools: plugin disabled (disabled in config) but config is present
14:16:13
info
plugins
NeuralMemory registered (brain: default, tools: 6, autoContext: true, autoCapture: true)
14:16:49
warn
gateway/reload
config reload skipped (invalid config): : JSON5 parse failed: SyntaxError: JSON5: invalid character 'l' at 243:30
14:16:50
warn
gateway/reload
config reload skipped (invalid config): : JSON5 parse failed: SyntaxError: JSON5: invalid character 'l' at 243:30
14:16:51
warn
gateway/reload
config reload skipped (invalid config): : JSON5 parse failed: SyntaxError: JSON5: invalid character 'l' at 243:30
14:17:32
warn
gateway/reload
config reload skipped (invalid config): : JSON5 parse failed: SyntaxError: JSON5: invalid character 'l' at 243:30
14:17:33
warn
gateway/reload
config reload skipped (invalid config): : JSON5 parse failed: SyntaxError: JSON5: invalid character 'l' at 243:30
14:20:12
error
Config invalid at ~/.openclaw/openclaw.json:
Config invalid at ~/.openclaw/openclaw.json:
14:20:12
error
× <root>: JSON5 parse failed: SyntaxError: JSON5: invalid character 'l' at 243:30
× <root>: JSON5 parse failed: SyntaxError: JSON5: invalid character 'l' at 243:30
14:20:12
error
14:20:12
error
Run openclaw doctor to repair, or fix the keys above manually.
Run openclaw doctor to repair, or fix the keys above manually.
14:22:50
warn
agent/embedded
embedded run timeout: runId=03c43fb4-999a-4846-a6b2-c50a9d0bef8e sessionId=f822a00a-cfa5-4076-941b-083182beb1dd timeoutMs=600000
14:22:50
warn
agent/embedded
Profile openai-codex:default timed out. Trying next account... BẠN XEM NGUYÊN NHÂN LỖI GIÚP TÔI VỚI
Log của bạn có 2 vấn đề tách biệt, nhưng cái đang chặn hệ thống là cái đầu tiên:
1) Lỗi chính: openclaw.json bị sai cú pháp JSON5
JSON5 parse failed: invalid character 'l' at 243:30
Cái “invalid character 'l'” gần như chắc là bạn đang để giá trị string không có dấu nháy, kiểu:
- Sai (rất hay gặp):
gateway: { bind: loopback }
tailscale: { mode: serve }
- Đúng:
gateway: { bind: "loopback" }
tailscale: { mode: "serve" }
Vì JSON5 không cho value string kiểu YAML (không quote), nên gặp chữ l của loopback là nó báo đúng như log.
✅ Bạn làm 1 trong 2 cách sau:
Cách A (nhanh nhất): in ra đúng đoạn quanh dòng 243 để mình chỉ chỗ sai
Chạy trên VPS:
nl -ba ~/.openclaw/openclaw.json | sed -n '235,255p'
Paste đoạn đó (nhớ che token nếu có).
Cách B: để OpenClaw tự chỉ và repair
openclaw doctor
(doctor thường chỉ ra key sai và gợi ý sửa; đôi khi sửa được luôn)
Sau khi sửa xong, restart gateway:
openclaw gateway restart
2) Vấn đề phụ: openai-codex:default timed out
Cái này là timeout khi gọi model (mạng/API/provider). Nhưng hiện tại vì config đang invalid nên gateway bị “config reload skipped”, dễ kéo theo các lỗi dây chuyền.
➡️ Mình khuyên: fix config parse trước, rồi nếu còn timeout thì mình sẽ bắt tiếp bằng:
openclaw models status
openclaw logs --follow
Bạn paste giúp mình output đoạn nl -ba ... 235,255p là mình chỉ đúng 1 dòng cần thêm dấu "..." là xong.
Đừng bấm cái link “ticket” kiểu bị bẻ dòng/chéo đó — nhìn rất giống scam/phishing (obfuscated URL). Cứ ignore luôn.
Quay lại lỗi thật của bạn: JSON5: invalid character 'l' at 243:30 gần như chắc là trong openclaw.json bạn có chỗ ghi string không có dấu nháy (vd loopback/lan/tailnet/local…).
Bạn chạy cái này và paste đúng 15–20 dòng quanh line 243 là ra ngay:
nl -ba ~/.openclaw/openclaw.json | sed -n '235,255p'
Mình sẽ chỉ đúng chỗ cần thêm "..." để config hợp lệ lại.
Tôi đang chạy mà tôi chat với bot trên tele á nó load rất lâu xong cái lỗi em d wait tới 6000s gì đó xong chờ ko nổi tôi ko biết tại sao nữa và model tôi dùng gpt 5.3
Cái “wait … 600000” bạn thấy thực ra thường là timeout của 1 lượt chạy agent:
timeoutMs=600000= 600 giây = 10 phút- Hết 10 phút mà model/tool chưa xong → OpenClaw abort và log
embedded run timeout
Vậy nguyên nhân gốc thường là model call bị kẹt / quá chậm (mạng từ VPS → provider, request quá nặng, hoặc provider đang lỗi), chứ không phải Telegram.
Làm 3 bước để khoanh vùng nhanh (paste output ngắn thôi)
1) Xác nhận config đã hết lỗi JSON5 chưa
Hôm qua config bạn từng “invalid JSON5” → nếu còn thì gateway reload sẽ bị skip.
Chạy:
openclaw doctor
2) Kiểm tra provider/model có “OK” thật không
Chạy:
openclaw models status
(Đoạn này hay chỉ ra: thiếu key, rate limit, endpoint lỗi, timeout…)
3) Test “nhẹ” trong session mới để loại trừ context quá lớn
Trong Telegram DM với bot:
- gõ
/new - rồi nhắn 1 câu cực ngắn: “ping”
Nếu session mới trả lời nhanh mà session cũ chậm → vấn đề là context/session quá to (hôm trước bạn đã gần 200k tokens), làm request nặng và dễ timeout.
Bạn nói bạn đang dùng “gpt 5.3”: model lớn + context lớn trên VPS đôi khi sẽ rất chậm. Nhưng mình muốn xem openclaw models status để biết gateway đang gọi đúng provider/model hay nó đang rớt qua profile khác (hôm trước log có openai-codex:default timed out).
Bạn paste 2 output: openclaw doctor (phần kết luận) + openclaw models status (phần provider OpenAI) là mình chẩn đoán tiếp được ngay.
Sao lại do mạng vps dc ta tôi dùng vps digitalocen mà ở sigapor sao mà lag dc
Không phải cứ “VPS ở Singapore” là chắc chắn không thể timeout đâu — cái timeout 600s có thể đến từ 3 nhóm nguyên nhân khác nhau:
1) Không phải “lag”, mà là request quá nặng (hay gặp nhất)
Hôm trước /context list của bạn cho thấy session gần 200k tokens. Khi context quá lớn:
- request gửi lên model rất to
- model xử lý lâu hơn nhiều
- dễ vượt
timeoutMs=600000dù mạng ping vẫn đẹp
Cách kiểm tra nhanh: trong Telegram gõ /new rồi nhắn “ping”.
- Nếu session mới trả lời nhanh → nguyên nhân chính là context cũ quá nặng, không phải DO lag.
2) Đường đi từ DO → endpoint của provider không ổn định
DigitalOcean Singapore vẫn có thể gặp:
- routing vòng sang US/EU (tuỳ endpoint)
- packet loss ngắt quãng
- DNS/IPv6/MTU issues
- provider đang “kẹt hàng” (queue) → nhìn như lag
3) Provider/model đang chậm hoặc bị rate-limit/queue
Ngay cả mạng tốt, provider vẫn có lúc chậm (đặc biệt model lớn / giờ cao điểm).
✅ Để khỏi đoán mò, bạn chạy giúp 2 lệnh này (nó sẽ cho biết là do network/provider/request size):
openclaw models status
openclaw logs --follow
Rồi trong lúc logs --follow đang chạy, bạn nhắn bot 1 câu ngắn để xem log nó kẹt ở bước nào.
Nếu bạn paste openclaw models status (phần provider OpenAI) mình sẽ chỉ ra nó đang timeout ở đâu: resolve key, connect, hay model generate quá lâu.
Lỗi compact nữa nha
“Lỗi /compact” rất hay đi kèm với cái bạn đang gặp (model chạy chậm/timeout), vì compaction bản chất cũng là 1 lượt gọi model để tóm tắt.
Nên nếu model của bạn đang hay timeout 600s thì khi bạn gõ /compact nó cũng có thể:
- chạy rất lâu rồi timeout
- hoặc fail vì request quá nặng (context quá to)
Làm nhanh để thoát vòng lặp (khỏi chờ)
- Trong Telegram: gõ
/newđể tạo session mới (nhẹ, nhanh). - Nếu cần giữ thông tin quan trọng trước khi
/new: nhắn bot “hãynmem_remembertóm tắt trạng thái hiện tại”.
Để /compact chạy ổn định hơn
Bạn có thể cấu hình model riêng cho compaction (để nó tóm tắt nhanh hơn/ổn định hơn), key là:
agents.defaults.compaction.model
Docs: https://docs.openclaw.ai/concepts/compaction (mục “You can optionally specify a different model for compaction…”)
Mình cần bạn paste đúng lỗi /compact (1–2 dòng log là đủ)
Bạn chạy:
openclaw logs --follow
rồi bên Telegram gõ /compact một lần, và paste đoạn log báo lỗi ngay lúc đó (thường có “compaction failed” / “timeout” / “context overflow”).
Gửi mình cái log đó là mình chỉ đúng hướng: do timeout provider, do context quá to, hay do config compaction model chưa set.
Bạn zem bản mới có lỗi ko
Được — nhưng mình không xem được “bản mới” trên máy bạn trực tiếp, nên bạn cho mình 1 trong 2 thứ này là mình check được ngay:
Cách nhanh nhất (khuyên dùng)
Chạy trên VPS rồi paste output:
openclaw doctor
Nó sẽ báo ngay config còn JSON5 parse error / unknown keys / warnings không.
Hoặc: paste đúng đoạn bạn vừa sửa trong openclaw.json
Chỉ cần bạn paste khoảng 20–40 dòng quanh phần mới (nhớ che token/apiKey/password nếu có).
Đặc biệt mấy value string phải có dấu nháy "..." (lỗi “invalid character 'l'” trước đó là do thiếu nháy).
Nếu bạn gửi output openclaw doctor mình sẽ nói rõ: còn lỗi gì, có ảnh hưởng /compact/model timeout không, và cần restart gateway không.
H tui muốn cho openclaw trên vps sử dụng máy tính laptop của tôi khi tôi dùng bên tele ra lệnh á thì làm như nào kĩ thuật sao sao và có cần phải cài đặt hay thêm skill agent. Md gì ko
Làm được — và không cần cài thêm skill đặc biệt. Bạn chỉ cần 2 “mảnh”:
- Node host trên laptop (để gateway trên VPS có thể gọi tool chạy trên laptop)
- (Nếu muốn điều khiển Chrome laptop) Chrome extension “browser relay” trên laptop
Điều kiện quan trọng: laptop phải bật + node host phải chạy thì VPS mới “xài” được laptop.
A) Kết nối an toàn: không cần Tailscale, dùng SSH tunnel (dễ nhất vì VPS bạn chưa có tailscale)
1) Trên laptop (Windows) mở 1 cửa sổ PowerShell/Terminal và chạy tunnel (để nguyên đó)
ssh -N -L 18790:127.0.0.1:18789 root@IP_VPS
18790là port local trên laptop- nó forward về gateway trên VPS (loopback
127.0.0.1:18789)
Nếu bạn muốn mở dashboard trên laptop luôn, có thể forward thêm
18789(hoặc dùng 18790 để mở dashboard cũng được, chỉ là khác port).
B) Cài OpenClaw trên laptop và chạy node host
2) Cài OpenClaw CLI trên laptop (để có lệnh openclaw)
(Theo hướng dẫn cài OpenClaw cho Windows trong docs install của OpenClaw.)
3) Trên laptop, set token rồi chạy node host (cửa sổ khác)
$env:OPENCLAW_GATEWAY_TOKEN="TOKEN_CUA_GATEWAY"
openclaw node run --host 127.0.0.1 --port 18790 --display-name "Win Laptop"
4) Trên VPS: approve pairing cho node
openclaw devices list
openclaw devices approve <requestId>
openclaw nodes status
Sau bước này, gateway trên VPS đã “thấy” laptop như 1 node.
C) Nếu bạn muốn bot điều khiển web trên Chrome laptop (để né anti-bot của VPS)
5) Trên laptop: cài Chrome extension relay
openclaw browser extension install
openclaw browser extension path
Chrome → chrome://extensions → Developer mode → Load unpacked → chọn thư mục ở extension path.
Trong Extension Options:
- Port:
18792(default) - Gateway token: đúng token của gateway
6) Attach tab
Mở tab bạn muốn bot điều khiển → bấm icon extension → badge ON.
7) Ra lệnh từ Telegram
Trong Telegram bạn chỉ cần nói kiểu:
- “Dùng browser profile chrome mở link X và tóm tắt”
- (Nếu bị CAPTCHA) “Dừng lại để tôi bấm CAPTCHA rồi tiếp tục”
Có cần thêm skill/MD gì không?
- Không bắt buộc. Node + browser relay là tool built-in.
- Nhưng để “mặc định luôn xài laptop”, bạn có thể thêm rule trong
AGENTS.md(ví dụ: ưu tiênexec host=nodehoặc ưu tiên browser profilechromekhi gặp Cloudflare).
Bạn muốn gateway “xài laptop” theo hướng nào là chính:
- Chỉ điều khiển web/Chrome để đọc tin (Cloudflare)
hay - Chạy lệnh/automation trên laptop (exec host=node)?
Mình sẽ viết đúng 1 checklist ngắn (copy/paste) theo mục tiêu của bạn để khỏi rối.
Mình muốn cả 2 vừa chạy lệnh trong laptop như tạo file này nọ luôn rồi lướt web hay mở ứng dụng sử dụng ứng dụng đó luôn á như sài opencode antiraviti hay vscode lun á dc ko ta là sử dụng toàn bộ quyền như 1 user sài laptop những siết lại là ko dc tự ý xóa file hay thư mục ko cho có sự cho phép
Làm được gần như đúng ý bạn, nhưng có 1 giới hạn quan trọng cần nói thẳng:
- OpenClaw có thể chạy lệnh trên laptop (tạo file, chạy code, mở app bằng CLI…) qua node host
- OpenClaw có thể lướt web trên Chrome laptop qua Chrome extension relay
- Nhưng “dùng toàn bộ laptop như 1 user” mà vẫn đảm bảo 100% không xoá được gì thì không có 1 cái nút thần. Cách an toàn là dùng exec approvals (hỏi duyệt) + allowlist thật chặt (đặc biệt không allow shell chung chung).
Dưới đây là setup đúng kỹ thuật để đạt mục tiêu “có quyền, nhưng xoá phải xin phép”:
1) Cho VPS dùng laptop để chạy lệnh (tạo file, chạy tool, mở VSCode…)
A) Trên laptop: chạy node host
Bạn đã có flow SSH tunnel / hoặc Tailscale. Sau đó chạy:
$env:OPENCLAW_GATEWAY_TOKEN="TOKEN_CUA_GATEWAY"
openclaw node run --host <gateway-host> --port <gateway-port> --display-name "Win Laptop"
B) Trên VPS: approve node
openclaw devices list
openclaw devices approve <requestId>
openclaw nodes status
Từ giờ agent có thể chạy lệnh trên laptop bằng exec host=node.
Docs nodes: https://docs.openclaw.ai/nodes
2) Siết “không tự ý xoá file/thư mục”
Bạn dùng Exec approvals trên laptop (đây mới là cái “khóa an toàn”):
security: allowlist
ask: always(hoặcon-misskhi ổn rồi)askFallback: deny- Không allow các shell tổng như
powershell.exe,cmd.exe(vì nếu allow nó thì nó có thể xoá bất cứ thứ gì bằng 1 lệnh) - Chỉ allow những binary bạn thật sự cần (vd
code,git,node,python,rg…), và để những lệnh nhạy cảm luôn phải “Ask”.
Docs approvals: https://docs.openclaw.ai/tools/exec-approvals
Mẹo rất hợp yêu cầu của bạn: approvals còn có thể forward về Telegram để bạn duyệt bằng /approve (allow-once/deny). (Trong doc approvals có phần “Approval forwarding to chat channels”.)
3) Lướt web / mở web anti-bot bằng Chrome trên laptop
Dùng Chrome extension relay + node host (remote gateway bắt buộc có node host trên máy chạy Chrome):
- Cài extension:
openclaw browser extension install→ load unpacked - Attach tab (badge ON)
- Agent dùng
browser profile="chrome"
Docs: https://docs.openclaw.ai/tools/chrome-extension
4) “Mở VSCode / mở ứng dụng và dùng luôn” được không?
- Bot có thể launch app (vd mở VSCode bằng
code), và edit file/run build bằng lệnh. - Nhưng bot không “nhìn thấy UI VSCode” để click như người (trừ khi có giải pháp remote desktop/GUI automation riêng). Thực tế dev work vẫn làm được 90% bằng edit file + run command.
Nếu bạn muốn, mình sẽ đưa bạn 1 cấu hình “an toàn mặc định” theo đúng yêu cầu:
- chạy lệnh trên laptop (node host)
- lướt web bằng Chrome relay
- mọi lệnh nguy hiểm (đặc biệt xoá) đều phải duyệt qua Telegram
/approve
Bạn cho mình biết laptop bạn là Windows 10/11 và bạn đang kết nối laptop ↔ VPS bằng SSH tunnel hay bạn muốn cài Tailscale?
Sao tui thấy họ sài cho antiravity lun á là soa hay dị ta
“Antigravity” mà bạn thấy người ta dùng trong OpenClaw không liên quan gì tới bypass anti-bot hay lướt web đâu.
Nó là một provider/auth flow cho model của Google trong OpenClaw:
- Provider:
google-antigravity - Dùng kiểu OAuth login (đăng nhập tài khoản Google) thay vì phải dán API key
- Nó được ship dưới dạng bundled plugin (
google-antigravity-auth, mặc định tắt)
Vì sao nhiều người dùng?
- Họ muốn đăng nhập OAuth cho nhanh (không quản lý key)
- Hoặc họ đang test các provider khác nhau khi OpenAI/Codex bị timeout/rate-limit
- Hoặc vì chi phí/độ tiện (tuỳ thời điểm)
Nhưng có 1 lưu ý quan trọng trong docs:
- Antigravity/Gemini CLI OAuth là unofficial integration, có người report bị hạn chế tài khoản Google → nên nếu dùng, nên dùng tài khoản không quan trọng và tự chịu rủi ro theo ToS.
Nguồn (docs): https://docs.openclaw.ai/concepts/model-providers (mục “Google Vertex, Antigravity, and Gemini CLI”)
Nếu bạn nói rõ bạn muốn dùng Antigravity để giải quyết vấn đề gì (timeout model, không có API key, hay muốn test provider khác), mình sẽ chỉ đúng hướng setup theo docs (không cần đoán key).
Ko họ dùng ide destop lun á
À ý bạn là “AI nó dùng hẳn IDE desktop (VSCode/app) luôn” đúng không?
Hiện tại với OpenClaw + laptop Windows thì:
- ✅ Bot có thể: sửa file, tạo project, chạy lệnh, chạy tool (Codex CLI/Claude Code/etc) → rồi bạn mở VSCode lên xem.
- ✅ Bot có thể điều khiển Chrome (web UI) qua Chrome extension relay.
- ❌ Bot không có kiểu “điều khiển UI desktop” để click/type trong VSCode app như người (Windows chưa có companion app UI automation kiểu đó). Node host trên Windows là headless, chủ yếu để
system.run/exec.
Vậy “người ta dùng IDE desktop” thường là 1 trong các case:
- Họ tự remote desktop vào máy (RDP/AnyDesk) và dùng IDE như bình thường (AI không click).
- Họ chạy coding agent trong terminal (Codex/Claude Code) để sửa code → IDE chỉ để xem.
- Họ dùng plugin riêng trong VSCode (Copilot/khác) — cái đó không phải OpenClaw điều khiển UI.
Nếu bạn muốn workflow gần giống “AI dùng IDE” nhất với OpenClaw, mình khuyên:
- Cho OpenClaw chạy lệnh + sửa file trên laptop (node host)
- Bạn mở VSCode để review (hoặc bật auto-format/test)
Bạn muốn bot làm kiểu: “tạo project → code → chạy test → commit git” trên laptop đúng không? Nếu đúng mình sẽ đưa 1 setup allowlist/approvals an toàn (không cho xoá bừa) + bộ lệnh mẫu để bạn dùng qua Telegram.
Alo bạn sao openclaw của tôi khi /new là 1 seseien mới là ko có tự đọc các file md luôn nên chả nhớ chả biết gì hết á là sao vakay
/new không phải “bot quên hết vì nó không đọc file md”, mà là:
/new= tạo session mới → xóa sạch lịch sử hội thoại của session cũ (context cũ bay)- Nhưng bootstrap files (AGENTS.md / SOUL.md / TOOLS.md / USER.md / MEMORY.md) thì về lý thuyết vẫn được inject mỗi turn, nên bot vẫn phải biết “luật chơi”.
Cái bạn đang cảm giác “nó chả nhớ chả biết gì” thường rơi vào 1 trong 2 case:
Case 1) Nó vẫn inject file, nhưng bạn đang kỳ vọng nó nhớ “chuyện đã nói”
Chuyện đã nói trong session cũ không còn sau /new (đúng thiết kế).
Muốn nhớ qua /new thì phải:
- ghi vào
MEMORY.md(được inject), hoặc - dùng NeuralMemory (
nmem_remember/nmem_context)
Case 2) Bạn lưu trong memory/YYYY-MM-DD.md rồi tưởng nó auto đọc
memory/*.md không auto inject. Nó chỉ đọc khi bot gọi memory_search/memory_get (hoặc bạn ép nmem_context). Nên qua /new nó không tự lục thì bạn thấy “quên”.
✅ Để kiểm tra đúng 5 giây: sau khi /new, bạn gõ tiếp:
/context list
Nếu nó hiện:
AGENTS.md: OK,SOUL.md: OK,MEMORY.md: OK
→ nghĩa là nó vẫn đọc file bình thường. Vấn đề chỉ là bạn chưa ép “recall” từ NeuralMemory/memory_search.
Nếu bạn muốn “vừa /new xong là nó tự recall”, thêm vào AGENTS.md 1 rule:
- “Sau
/new(session fresh), luôn chạynmem_contexttrước khi trả lời.”
Bạn paste /context list của session mới sau /new lên đây là mình chốt chính xác bạn đang dính case nào.
Ko nosnko nhớ tên phong cách nói chuyện hay quy tắc trong agent lun á
Nếu đúng như bạn nói là /new xong nó không nhớ cả tên + phong cách nói chuyện + rule, thì có 2 khả năng hay gặp nhất:
1) Bạn đang nhìn “sub-agent” (nó không được inject SOUL/USER)
OpenClaw đôi khi spawn sub-agent để làm việc nặng. Sub-agent theo docs chỉ được inject AGENTS.md + TOOLS.md, còn SOUL.md / USER.md / MEMORY.md có thể không có → nó sẽ “quên style, quên tên” đúng như bạn mô tả.
✅ Cách fix chắc ăn: đưa mấy rule quan trọng (tên bạn + style miền Tây) vào AGENTS.md luôn, vì AGENTS.md là thứ sub-agent cũng thấy.
Ví dụ, thêm ngay đầu AGENTS.md:
## Identity + style (NON-NEGOTIABLE)
- Always call the user: "anh Huân" (never generic).
- Speak Vietnamese with miền Tây vibe (nè/hen/hông/dzậy), gentle and concise.
- Use emojis for headings only (🔎 ✅ ⚠️ 🧾), no spam.
2) Bạn tưởng nó “nhớ hội thoại”, nhưng /new reset sạch context
/ new sẽ xoá lịch sử chat, nên những gì bạn “dặn miệng” trong chat sẽ mất. Chỉ những gì nằm trong file (AGENTS/SOUL/USER/MEMORY hoặc NeuralMemory) mới còn.
✅ Để bắt đúng case của bạn ngay: sau khi bạn gõ /new trên Telegram, gõ tiếp:
/context list
Nếu trong đó vẫn hiện AGENTS.md: OK nhưng bot vẫn không theo style/tên → gần như chắc là rule của bạn đang nằm ở SOUL/USER, còn sub-agent chỉ thấy AGENTS, nên bạn cần “mirror” rule qua AGENTS như trên.
Bạn paste /context list của ngay sau /new mình chỉ ra chính xác nó đang chạy main hay sub-agent.
🧠 Context breakdown
Workspace: /root/.openclaw/workspace
Bootstrap max/file: 20,000 chars
Bootstrap max/total: 150,000 chars
Sandbox: mode=off sandboxed=false
System prompt (run): 32,810 chars (~8,203 tok) (Project Context 17,821 chars (~4,456 tok))
Injected workspace files:
• AGENTS.md: OK | raw 5,974 chars (~1,494 tok) | injected 5,974 chars (~1,494 tok)
• SOUL.md: OK | raw 1,966 chars (~492 tok) | injected 1,966 chars (~492 tok)
• TOOLS.md: OK | raw 3,974 chars (~994 tok) | injected 3,974 chars (~994 tok)
• IDENTITY.md: OK | raw 591 chars (~148 tok) | injected 591 chars (~148 tok)
• USER.md: OK | raw 1,420 chars (~355 tok) | injected 1,420 chars (~355 tok)
• HEARTBEAT.md: OK | raw 1,602 chars (~401 tok) | injected 1,602 chars (~401 tok)
• BOOTSTRAP.md: MISSING | raw 0 | injected 0
• MEMORY.md: OK | raw 1,687 chars (~422 tok) | injected 1,687 chars (~422 tok)
Skills list (system prompt text): 4,128 chars (~1,032 tok) (9 skills)
Skills: coding-agent, healthcheck, skill-creator, tmux, weather, agent-orchestrator, core-files-startup, core-md-ops-governance, crawl4ai
Tool list (system prompt text): 2,865 chars (~717 tok)
Tool schemas (JSON): 19,155 chars (~4,789 tok) (counts toward context; not shown as text)
Tools: read, edit, write, exec, process, browser, canvas, nodes, message, tts, agents_list, sessions_list, sessions_history, sessions_send, sessions_spawn, subagents, session_status, web_fetch, mcp_websearch_exa, mcp_context7, mcp_grep_app, mcp_mslearn_search, mcp_mslearn_fetch, mcp_playwright_call, mcp_chrome_devtools_call, nmem_remember, nmem_recall, nmem_context, nmem_todo, nmem_stats, … (+1 more)
Session tokens (cached): 15,941 total / ctx=200000
Inline shortcut: a command token inside normal text (e.g. “hey /status”) that runs immediately (allowlisted senders only) and is stripped before the model sees the remaining message. Oke mà thây do nặng quá
Đúng rồi — /context list này chứng minh 2 chuyện:
- /new không hề “mất md”: AGENTS/SOUL/USER/MEMORY đều
OKvà đang được inject. - Nhưng bạn thấy “nặng” là có cơ sở: riêng tool schemas ~4,789 tok + tool list + skills list… mỗi tin nhắn đều phải mang theo → chậm và tốn token hơn.
Vì sao “nặng”?
Trong tool list của bạn có rất nhiều MCP tools (mcp_* như exa/context7/mslearn/playwright/chrome-devtools…). Nếu bạn không dùng mấy cái đó, nó chỉ làm prompt phình ra.
Cách làm nhẹ ngay (không cần gỡ plugin): deny hết mcp_*
Trong /root/.openclaw/openclaw.json thêm:
{
tools: {
deny: ["mcp_*"],
},
}
Rồi restart gateway:
openclaw gateway restart
Nhớ: string phải có dấu
"..."(để khỏi dính lỗi JSON5 như lúc trước).
Sau đó bạn chạy lại /context list sẽ thấy tool schemas giảm rõ, bot trả lời nhanh hơn.
Còn vụ “nó không theo phong cách/tên” dù files OK: cái đó thường do rule của bạn chưa đủ “non‑negotiable”/đặt chưa lên đầu AGENTS.md. Nếu bạn paste 10–20 dòng đầu của AGENTS.md (phần style gọi tên) mình chỉnh cho nó “ăn” chắc hơn.