chore(i18n): refresh vi translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-30 20:11:04 +00:00
parent 9ffba1b1d4
commit 7a664d9a40
6 changed files with 1182 additions and 1395 deletions

View File

@ -1,21 +1,21 @@
---
read_when:
- Bạn gặp sự cố kết nối/xác thực và muốn được hướng dẫn khắc phục
- Bạn đã cập nhật và muốn kiểm tra nhanh tính hợp lý
summary: Tài liệu tham chiếu CLI cho `openclaw doctor` (kiểm tra tình trạng + sửa chữa có hướng dẫn)
title: Trình chẩn đoán
- Bạn gặp sự cố về kết nối/xác thực và muốn được hướng dẫn khắc phục
- Bạn đã cập nhật và muốn kiểm tra sơ bộ
summary: Tham chiếu CLI cho `openclaw doctor` (kiểm tra tình trạng + sửa chữa có hướng dẫn)
title: Chẩn đoán
x-i18n:
generated_at: "2026-04-29T22:31:57Z"
generated_at: "2026-04-30T20:05:35Z"
model: gpt-5.5
provider: openai
source_hash: 9985c84d23861dd9468a4659ee00519573fe6d540c436548da0a68067dbabc4c
source_hash: 265d82a10da086cf89687886e491be018a720b70021e0b26bd8f39b25a907e14
source_path: cli/doctor.md
workflow: 16
---
# `openclaw doctor`
Kiểm tra tình trạng + sửa nhanh cho Gateway và các kênh.
Kiểm tra sức khỏe + sửa nhanh cho Gateway và các kênh.
Liên quan:
@ -34,39 +34,40 @@ openclaw doctor --generate-gateway-token
## Tùy chọn
- `--no-workspace-suggestions`: tắt gợi ý bộ nhớ/tìm kiếm không gian làm việc
- `--no-workspace-suggestions`: tắt gợi ý bộ nhớ/tìm kiếm workspace
- `--yes`: chấp nhận mặc định mà không nhắc
- `--repair`: áp dụng các sửa chữa được khuyến nghị mà không nhắc
- `--fix`: bí danh cho `--repair`
- `--force`: áp dụng sửa chữa mạnh, bao gồm ghi đè cấu hình dịch vụ tùy chỉnh khi cần
- `--non-interactive`: chạy mà không có lời nhắc; chỉ các migration an toàn
- `--force`: áp dụng các sửa chữa mạnh tay, bao gồm ghi đè cấu hình dịch vụ tùy chỉnh khi cần
- `--non-interactive`: chạy không có lời nhắc; chỉ các di chuyển an toàn
- `--generate-gateway-token`: tạo và cấu hình token Gateway
- `--deep`: quét dịch vụ hệ thống để tìm các bản cài Gateway bổ sung
- `--deep`: quét các dịch vụ hệ thống để tìm các bản cài đặt Gateway bổ sung
Ghi chú:
- Lời nhắc tương tác (như sửa keychain/OAuth) chỉ chạy khi stdin là TTY và `--non-interactive` **không** được đặt. Các lần chạy không có terminal (cron, Telegram, không có terminal) sẽ bỏ qua lời nhắc.
- Hiệu năng: các lần chạy `doctor` không tương tác bỏ qua việc tải plugin chủ động để các kiểm tra tình trạng không có terminal luôn nhanh. Phiên tương tác vẫn tải đầy đủ plugin khi một kiểm tra cần đóng góp của chúng.
- Lời nhắc tương tác (như sửa keychain/OAuth) chỉ chạy khi stdin là TTY và **không** đặt `--non-interactive`. Các lần chạy không giao diện (cron, Telegram, không có terminal) sẽ bỏ qua lời nhắc.
- Hiệu năng: các lần chạy `doctor` không tương tác bỏ qua việc tải Plugin sớm để kiểm tra sức khỏe không giao diện vẫn nhanh. Các phiên tương tác vẫn tải đầy đủ Plugin khi một kiểm tra cần phần đóng góp của chúng.
- `--fix` (bí danh cho `--repair`) ghi bản sao lưu vào `~/.openclaw/openclaw.json.bak` và loại bỏ các khóa cấu hình không xác định, liệt kê từng mục bị xóa.
- Kiểm tra tính toàn vẹn trạng thái hiện phát hiện các tệp transcript mồ côi trong thư mục phiên. Lưu trữ chúng dưới dạng `.deleted.<timestamp>` cần xác nhận tương tác; `--fix`, `--yes`, và các lần chạy không có terminal giữ nguyên chúng tại chỗ.
- Kiểm tra tính toàn vẹn trạng thái hiện phát hiện các tệp bản ghi phiên mồ côi trong thư mục phiên. Việc lưu trữ chúng dưới dạng `.deleted.<timestamp>` yêu cầu xác nhận tương tác; `--fix`, `--yes`, và các lần chạy không giao diện sẽ để nguyên chúng.
- Doctor cũng quét `~/.openclaw/cron/jobs.json` (hoặc `cron.store`) để tìm các dạng tác vụ Cron cũ và có thể ghi lại chúng tại chỗ trước khi bộ lập lịch phải tự động chuẩn hóa chúng lúc chạy.
- Doctor sửa các phụ thuộc runtime Plugin đi kèm bị thiếu mà không ghi vào các bản cài global đã đóng gói. Với bản cài npm do root sở hữu hoặc systemd unit được siết chặt, đặt `OPENCLAW_PLUGIN_STAGE_DIR` thành một thư mục có thể ghi như `/var/lib/openclaw/plugin-runtime-deps`; nó cũng có thể là danh sách đường dẫn như `/opt/openclaw/plugin-runtime-deps:/var/lib/openclaw/plugin-runtime-deps`, trong đó các root trước là lớp tra cứu chỉ đọc và root cuối là mục tiêu sửa chữa.
- Doctor sửa cấu hình Plugin cũ bằng cách xóa các id Plugin bị thiếu khỏi `plugins.allow`/`plugins.entries`, cùng với cấu hình kênh treo tương ứng, mục tiêu Heartbeat, và ghi đè mô hình kênh khi phát hiện Plugin đang hoạt động bình thường.
- Doctor cách ly cấu hình Plugin không hợp lệ bằng cách tắt mục `plugins.entries.<id>` bị ảnh hưởng và xóa payload `config` không hợp lệ của mục đó. Khởi động Gateway vốn đã chỉ bỏ qua Plugin lỗi đó để các Plugin và kênh khác có thể tiếp tục chạy.
- Đặt `OPENCLAW_SERVICE_REPAIR_POLICY=external` khi một supervisor khác sở hữu vòng đời Gateway. Doctor vẫn báo cáo tình trạng Gateway/dịch vụ và áp dụng các sửa chữa không liên quan đến dịch vụ, nhưng bỏ qua cài đặt/khởi động/khởi động lại/bootstrap dịch vụ và dọn dẹp dịch vụ cũ.
- Trên Linux, doctor bỏ qua các systemd unit bổ sung giống Gateway nhưng không hoạt động và không ghi lại metadata lệnh/entrypoint cho dịch vụ Gateway systemd đang chạy trong quá trình sửa chữa. Hãy dừng dịch vụ trước hoặc dùng `openclaw gateway install --force` khi bạn cố ý muốn thay thế trình khởi chạy đang hoạt động.
- Doctor tự động migrate cấu hình Talk phẳng cũ (`talk.voiceId`, `talk.modelId`, và các mục liên quan) sang `talk.provider` + `talk.providers.<provider>`.
- Các lần chạy lặp lại `doctor --fix` không còn báo cáo/áp dụng chuẩn hóa Talk khi khác biệt duy nhất là thứ tự khóa object.
- Doctor sửa các phụ thuộc runtime bị thiếu của Plugin đóng gói mà không ghi vào các bản cài đặt global đã đóng gói. Với các bản cài npm thuộc root hoặc các systemd unit được gia cố, đặt `OPENCLAW_PLUGIN_STAGE_DIR` thành một thư mục có thể ghi như `/var/lib/openclaw/plugin-runtime-deps`; nó cũng có thể là một danh sách đường dẫn như `/opt/openclaw/plugin-runtime-deps:/var/lib/openclaw/plugin-runtime-deps`, trong đó các gốc trước là các lớp tra cứu chỉ đọc và gốc cuối cùng là đích sửa chữa.
- Doctor sửa cấu hình Plugin cũ bằng cách xóa các id Plugin bị thiếu khỏi `plugins.allow`/`plugins.entries`, cùng với cấu hình kênh treo, mục tiêu Heartbeat, và các ghi đè mô hình kênh tương ứng khi khám phá Plugin hoạt động bình thường.
- Doctor cách ly cấu hình Plugin không hợp lệ bằng cách tắt mục `plugins.entries.<id>` bị ảnh hưởng và xóa payload `config` không hợp lệ của nó. Quá trình khởi động Gateway vốn đã chỉ bỏ qua Plugin lỗi đó để các Plugin và kênh khác có thể tiếp tục chạy.
- Đặt `OPENCLAW_SERVICE_REPAIR_POLICY=external` khi một supervisor khác sở hữu vòng đời Gateway. Doctor vẫn báo cáo sức khỏe Gateway/dịch vụ và áp dụng các sửa chữa không liên quan đến dịch vụ, nhưng bỏ qua cài đặt/khởi động/khởi động lại/bootstrap dịch vụ và dọn dẹp dịch vụ cũ.
- Trên Linux, doctor bỏ qua các systemd unit bổ sung giống Gateway nhưng không hoạt động và không ghi lại metadata lệnh/entrypoint cho dịch vụ Gateway systemd đang chạy trong khi sửa chữa. Dừng dịch vụ trước hoặc dùng `openclaw gateway install --force` khi bạn chủ ý muốn thay thế trình khởi chạy đang hoạt động.
- Doctor tự động di chuyển cấu hình Talk phẳng cũ (`talk.voiceId`, `talk.modelId`, và các mục liên quan) vào `talk.provider` + `talk.providers.<provider>`.
- Các lần chạy `doctor --fix` lặp lại không còn báo cáo/áp dụng chuẩn hóa Talk khi khác biệt duy nhất là thứ tự khóa của đối tượng.
- Doctor bao gồm kiểm tra mức sẵn sàng tìm kiếm bộ nhớ và có thể khuyến nghị `openclaw configure --section model` khi thiếu thông tin xác thực embedding.
- Doctor cảnh báo khi chưa cấu hình chủ sở hữu lệnh. Chủ sở hữu lệnh là tài khoản người vận hành được phép chạy lệnh chỉ dành cho chủ sở hữu và phê duyệt hành động nguy hiểm. Ghép cặp DM chỉ cho phép ai đó nói chuyện với bot; nếu bạn đã phê duyệt một người gửi trước khi bootstrap chủ sở hữu đầu tiên tồn tại, hãy đặt `commands.ownerAllowFrom` rõ ràng.
- Doctor cảnh báo khi chưa cấu hình chủ sở hữu lệnh. Chủ sở hữu lệnh là tài khoản người vận hành được phép chạy các lệnh chỉ dành cho chủ sở hữu và phê duyệt các hành động nguy hiểm. Ghép đôi DM chỉ cho phép ai đó nói chuyện với bot; nếu bạn đã phê duyệt một người gửi trước khi bootstrap chủ sở hữu đầu tiên tồn tại, hãy đặt `commands.ownerAllowFrom` một cách rõ ràng.
- Doctor cảnh báo khi các agent chế độ Codex được cấu hình và tài nguyên Codex CLI cá nhân tồn tại trong thư mục Codex home của người vận hành. Các lần khởi chạy app-server Codex cục bộ dùng home riêng biệt cho từng agent, vì vậy hãy dùng `openclaw migrate codex --dry-run` để kiểm kê các tài nguyên nên được thăng cấp có chủ ý.
- Nếu chế độ sandbox được bật nhưng Docker không khả dụng, doctor báo cáo cảnh báo tín hiệu cao kèm cách khắc phục (`install Docker` hoặc `openclaw config set agents.defaults.sandbox.mode off`).
- Nếu `gateway.auth.token`/`gateway.auth.password` được SecretRef quản lý và không khả dụng trong đường dẫn lệnh hiện tại, doctor báo cáo cảnh báo chỉ đọc và không ghi thông tin xác thực dự phòng dạng plaintext.
- Nếu kiểm tra SecretRef của kênh thất bại trong đường dẫn sửa lỗi, doctor tiếp tục và báo cáo cảnh báo thay vì thoát sớm.
- Tự động phân giải username Telegram `allowFrom` (`doctor --fix`) yêu cầu token Telegram có thể phân giải trong đường dẫn lệnh hiện tại. Nếu không thể kiểm tra token, doctor báo cáo cảnh báo và bỏ qua tự động phân giải cho lượt chạy đó.
- Nếu `gateway.auth.token`/`gateway.auth.password` được quản lý bằng SecretRef và không khả dụng trong đường dẫn lệnh hiện tại, doctor báo cáo cảnh báo chỉ đọc và không ghi thông tin xác thực plaintext dự phòng.
- Nếu kiểm tra SecretRef của kênh thất bại trong đường dẫn sửa chữa, doctor tiếp tục và báo cáo cảnh báo thay vì thoát sớm.
- Tự động phân giải tên người dùng Telegram `allowFrom` (`doctor --fix`) yêu cầu token Telegram có thể phân giải trong đường dẫn lệnh hiện tại. Nếu không thể kiểm tra token, doctor báo cáo cảnh báo và bỏ qua tự động phân giải cho lần chạy đó.
## macOS: ghi đè env của `launchctl`
## macOS: ghi đè env `launchctl`
Nếu trước đây bạn đã chạy `launchctl setenv OPENCLAW_GATEWAY_TOKEN ...` (hoặc `...PASSWORD`), giá trị đó sẽ ghi đè tệp cấu hình của bạn và có thể gây lỗi “unauthorized” dai dẳng.
Nếu trước đây bạn đã chạy `launchctl setenv OPENCLAW_GATEWAY_TOKEN ...` (hoặc `...PASSWORD`), giá trị đó sẽ ghi đè tệp cấu hình của bạn và có thể gây lỗi “unauthorized” kéo dài.
```bash
launchctl getenv OPENCLAW_GATEWAY_TOKEN

View File

@ -1,24 +1,24 @@
---
read_when:
- Bạn muốn chuyển từ Hermes hoặc một hệ thống tác tử khác sang OpenClaw
- Bạn đang thêm một nhà cung cấp chuyển đổi do Plugin sở hữu
summary: Tham chiếu CLI cho `openclaw migrate` (nhập trạng thái từ một hệ thống tác nhân khác)
- Bạn muốn di chuyển từ Hermes hoặc một hệ thống tác nhân khác sang OpenClaw
- Bạn đang thêm một trình cung cấp di chuyển do Plugin sở hữu
summary: Tài liệu tham chiếu CLI cho `openclaw migrate` (nhập trạng thái từ một hệ thống tác tử khác)
title: Di chuyển
x-i18n:
generated_at: "2026-04-29T22:32:55Z"
generated_at: "2026-04-30T20:05:29Z"
model: gpt-5.5
provider: openai
source_hash: d3db14c16b8f9dcbf86a4f12558cf4e8555aa9a255637034fb804148996a225e
source_hash: ffcd9e874bdaa0a5195e712d4fccd7b3d53034cb362c7f7462e9c7df72477b1a
source_path: cli/migrate.md
workflow: 16
---
# `openclaw migrate`
Nhập trạng thái từ một hệ thống tác tử khác thông qua nhà cung cấp di chuyển do Plugin sở hữu. Các nhà cung cấp được đóng gói sẵn hỗ trợ [Claude](/vi/install/migrating-claude) và [Hermes](/vi/install/migrating-hermes); các Plugin bên thứ ba có thể đăng ký thêm nhà cung cấp.
Nhập trạng thái từ một hệ thống agent khác thông qua nhà cung cấp di chuyển do Plugin sở hữu. Các nhà cung cấp đi kèm bao phủ trạng thái Codex CLI, [Claude](/vi/install/migrating-claude) và [Hermes](/vi/install/migrating-hermes); các Plugin bên thứ ba có thể đăng ký thêm nhà cung cấp.
<Tip>
Để xem hướng dẫn từng bước dành cho người dùng, hãy xem [Di chuyển từ Claude](/vi/install/migrating-claude) và [Di chuyển từ Hermes](/vi/install/migrating-hermes). [Trung tâm di chuyển](/vi/install/migrating) liệt kê tất cả các lộ trình.
Để xem hướng dẫn từng bước dành cho người dùng, hãy xem [Di chuyển từ Claude](/vi/install/migrating-claude) và [Di chuyển từ Hermes](/vi/install/migrating-hermes). [Trung tâm di chuyển](/vi/install/migrating) liệt kê tất cả các đường dẫn.
</Tip>
## Lệnh
@ -26,8 +26,12 @@ Nhập trạng thái từ một hệ thống tác tử khác thông qua nhà cun
```bash
openclaw migrate list
openclaw migrate claude --dry-run
openclaw migrate codex --dry-run
openclaw migrate codex --skill gog-vault77-google-workspace
openclaw migrate hermes --dry-run
openclaw migrate hermes
openclaw migrate apply codex --yes --skill gog-vault77-google-workspace
openclaw migrate apply codex --yes
openclaw migrate apply claude --yes
openclaw migrate apply hermes --yes
openclaw migrate apply hermes --include-secrets --yes
@ -46,22 +50,25 @@ openclaw onboard --import-from hermes --import-source ~/.hermes
Ghi đè thư mục trạng thái nguồn. Hermes mặc định là `~/.hermes`.
</ParamField>
<ParamField path="--include-secrets" type="boolean">
Nhập thông tin xác thực được hỗ trợ. Mặc định tắt.
Nhập thông tin xác thực được hỗ trợ. Mặc định tắt.
</ParamField>
<ParamField path="--overwrite" type="boolean">
Cho phép thao tác áp dụng thay thế các đích hiện có khi kế hoạch báo cáo xung đột.
Cho phép áp dụng thay thế các mục tiêu hiện có khi kế hoạch báo cáo xung đột.
</ParamField>
<ParamField path="--yes" type="boolean">
Bỏ qua lời nhắc xác nhận. Bắt buộc trong chế độ không tương tác.
</ParamField>
<ParamField path="--skill <name>" type="string">
Chọn một mục sao chép Skills theo tên Skills hoặc id mục. Lặp lại cờ này để di chuyển nhiều Skills. Khi bỏ qua, các lần di chuyển Codex tương tác hiển thị bộ chọn hộp kiểm và các lần di chuyển không tương tác giữ lại tất cả Skills đã lên kế hoạch.
</ParamField>
<ParamField path="--no-backup" type="boolean">
Bỏ qua bản sao lưu trước khi áp dụng. Yêu cầu `--force` khi có trạng thái OpenClaw cục bộ.
Bỏ qua bản sao lưu trước khi áp dụng. Yêu cầu `--force` khi trạng thái OpenClaw cục bộ tồn tại.
</ParamField>
<ParamField path="--force" type="boolean">
Bắt buộc dùng cùng `--no-backup` khi thao tác áp dụng nếu không sẽ từ chối bỏ qua sao lưu.
Bắt buộc cùng với `--no-backup` khi thao tác áp dụng nếu không sẽ từ chối bỏ qua sao lưu.
</ParamField>
<ParamField path="--json" type="boolean">
In kế hoạch hoặc kết quả áp dụng dưới dạng JSON. Với `--json` và không có `--yes`, thao tác áp dụng sẽ in kế hoạch và không thay đổi trạng thái.
In kế hoạch hoặc kết quả áp dụng dưới dạng JSON. Với `--json` và không có `--yes`, thao tác áp dụng in kế hoạch và không thay đổi trạng thái.
</ParamField>
## Mô hình an toàn
@ -69,26 +76,26 @@ openclaw onboard --import-from hermes --import-source ~/.hermes
`openclaw migrate` ưu tiên xem trước.
<AccordionGroup>
<Accordion title="Xem trước trước khi áp dụng">
Nhà cung cấp trả về một kế hoạch theo từng mục trước khi bất kỳ thay đổi nào, bao gồm xung đột, mục bị bỏ qua và mục nhạy cảm. Kế hoạch JSON, đầu ra áp dụng và báo cáo di chuyển sẽ che các khóa lồng nhau trông giống bí mật, chẳng hạn như khóa API, token, tiêu đề ủy quyền, cookie và mật khẩu.
<Accordion title="Preview before apply">
Nhà cung cấp trả về một kế hoạch theo từng mục trước khi bất kỳ thứ gì thay đổi, bao gồm xung đột, mục bị bỏ qua và mục nhạy cảm. Kế hoạch JSON, đầu ra áp dụng và báo cáo di chuyển sẽ che các khóa lồng nhau trông giống bí mật như khóa API, token, tiêu đề ủy quyền, cookie và mật khẩu.
`openclaw migrate apply <provider>` xem trước kế hoạch và nhắc xác nhận trước khi thay đổi trạng thái, trừ khi đặt `--yes`. Trong chế độ không tương tác, thao tác áp dụng yêu cầu `--yes`.
`openclaw migrate apply <provider>` xem trước kế hoạch và nhắc trước khi thay đổi trạng thái, trừ khi đã đặt `--yes`. Trong chế độ không tương tác, thao tác áp dụng yêu cầu `--yes`.
</Accordion>
<Accordion title="Bản sao lưu">
Thao tác áp dụng tạo và xác minh một bản sao lưu OpenClaw trước khi áp dụng di chuyển. Nếu chưa có trạng thái OpenClaw cục bộ, bước sao lưu sẽ được bỏ qua và quá trình di chuyển có thể tiếp tục. Để bỏ qua sao lưu khi có trạng thái, hãy truyền cả `--no-backup``--force`.
<Accordion title="Backups">
Thao tác áp dụng tạo và xác minh một bản sao lưu OpenClaw trước khi áp dụng di chuyển. Nếu chưa có trạng thái OpenClaw cục bộ, bước sao lưu được bỏ qua và quá trình di chuyển có thể tiếp tục. Để bỏ qua sao lưu khi trạng thái tồn tại, truyền cả `--no-backup``--force`.
</Accordion>
<Accordion title="Xung đột">
Thao tác áp dụng từ chối tiếp tục khi kế hoạch có xung đột. Xem lại kế hoạch, rồi chạy lại với `--overwrite` nếu bạn cố ý thay thế các đích hiện có. Nhà cung cấp vẫn có thể ghi bản sao lưu cấp mục cho các tệp bị ghi đè trong thư mục báo cáo di chuyển.
<Accordion title="Conflicts">
Thao tác áp dụng từ chối tiếp tục khi kế hoạch có xung đột. Xem lại kế hoạch, sau đó chạy lại với `--overwrite` nếu việc thay thế các mục tiêu hiện có là có chủ đích. Nhà cung cấp vẫn có thể ghi bản sao lưu cấp mục cho các tệp bị ghi đè trong thư mục báo cáo di chuyển.
</Accordion>
<Accordion title="Bí mật">
<Accordion title="Secrets">
Bí mật không bao giờ được nhập theo mặc định. Dùng `--include-secrets` để nhập thông tin xác thực được hỗ trợ.
</Accordion>
</AccordionGroup>
## Nhà cung cấp Claude
Nhà cung cấp Claude được đóng gói sẵn phát hiện trạng thái Claude Code tại `~/.claude` theo mặc định. Dùng `--from <path>` để nhập một thư mục chính Claude Code hoặc gốc dự án cụ thể.
Nhà cung cấp Claude đi kèm mặc định phát hiện trạng thái Claude Code tại `~/.claude`. Dùng `--from <path>` để nhập một thư mục chính Claude Code hoặc thư mục gốc dự án cụ thể.
<Tip>
Để xem hướng dẫn từng bước dành cho người dùng, hãy xem [Di chuyển từ Claude](/vi/install/migrating-claude).
@ -96,30 +103,52 @@ Nhà cung cấp Claude được đóng gói sẵn phát hiện trạng thái Cla
### Claude nhập những gì
- `CLAUDE.md` của dự án và `.claude/CLAUDE.md` vào không gian làm việc tác tử OpenClaw.
- `~/.claude/CLAUDE.md` của người dùng được nối thêm vào `USER.md` của không gian làm việc.
- `CLAUDE.md` của dự án và `.claude/CLAUDE.md` vào workspace agent OpenClaw.
- `~/.claude/CLAUDE.md` của người dùng được nối thêm vào `USER.md` của workspace.
- Định nghĩa máy chủ MCP từ `.mcp.json` của dự án, `~/.claude.json` của Claude Code và `claude_desktop_config.json` của Claude Desktop.
- Các thư mục kỹ năng Claude có chứa `SKILL.md`.
- Các tệp Markdown lệnh Claude được chuyển đổi thành kỹ năng OpenClaw chỉ với lời gọi thủ công.
- Thư mục Skills của Claude có chứa `SKILL.md`.
- Các tệp Markdown lệnh Claude được chuyển đổi thành Skills OpenClaw chỉ với lệnh gọi thủ công.
### Trạng thái lưu trữ và cần xem xét thủ công
Hook, quyền, mặc định môi trường, bộ nhớ cục bộ, quy tắc theo phạm vi đường dẫn, tác tử phụ, bộ đệm, kế hoạch và lịch sử dự án của Claude được giữ trong báo cáo di chuyển hoặc được báo cáo là các mục cần xem xét thủ công. OpenClaw không thực thi hook, sao chép allowlist rộng, hoặc tự động nhập trạng thái thông tin xác thực OAuth/Desktop.
Hook, quyền, mặc định môi trường, bộ nhớ cục bộ, quy tắc theo phạm vi đường dẫn, subagent, bộ nhớ đệm, kế hoạch và lịch sử dự án của Claude được giữ trong báo cáo di chuyển hoặc được báo cáo là các mục cần xem xét thủ công. OpenClaw không tự động thực thi hook, sao chép allowlist rộng hoặc nhập trạng thái thông tin xác thực OAuth/Desktop.
## Nhà cung cấp Codex
Nhà cung cấp Codex đi kèm mặc định phát hiện trạng thái Codex CLI tại `~/.codex`, hoặc tại `CODEX_HOME` khi biến môi trường đó được đặt. Dùng `--from <path>` để kiểm kê một thư mục chính Codex cụ thể.
Dùng nhà cung cấp này khi chuyển sang harness Codex của OpenClaw và bạn muốn chủ động đưa các tài sản Codex CLI cá nhân hữu ích vào. Các lần khởi chạy app-server Codex cục bộ dùng các thư mục `CODEX_HOME``HOME` theo từng agent, vì vậy mặc định chúng không đọc trạng thái Codex CLI cá nhân của bạn.
Chạy `openclaw migrate codex` trong terminal tương tác sẽ xem trước toàn bộ kế hoạch, sau đó mở bộ chọn hộp kiểm cho các mục sao chép Skills trước xác nhận áp dụng cuối cùng. Tất cả Skills ban đầu đều được chọn; bỏ chọn bất kỳ Skills nào bạn không muốn sao chép vào agent này. Đối với các lần chạy theo script hoặc chính xác, truyền `--skill <name>` một lần cho mỗi Skills, ví dụ:
```bash
openclaw migrate codex --dry-run --skill gog-vault77-google-workspace
openclaw migrate apply codex --yes --skill gog-vault77-google-workspace
```
### Codex nhập những gì
- Thư mục Skills của Codex CLI dưới `$CODEX_HOME/skills`, ngoại trừ bộ nhớ đệm `.system` của Codex.
- AgentSkills cá nhân dưới `$HOME/.agents/skills`, được sao chép vào workspace agent OpenClaw hiện tại khi bạn muốn quyền sở hữu theo từng agent.
### Trạng thái Codex cần xem xét thủ công
Plugin gốc của Codex, `config.toml``hooks/hooks.json` gốc không được kích hoạt tự động. Plugin có thể phơi bày máy chủ MCP, ứng dụng, hook hoặc hành vi thực thi khác, vì vậy nhà cung cấp báo cáo chúng để xem xét thay vì tải chúng vào OpenClaw. Các tệp cấu hình và hook được sao chép vào báo cáo di chuyển để xem xét thủ công.
## Nhà cung cấp Hermes
Nhà cung cấp Hermes được đóng gói sẵn phát hiện trạng thái tại `~/.hermes` theo mặc định. Dùng `--from <path>` khi Hermes nằm ở nơi khác.
Nhà cung cấp Hermes đi kèm mặc định phát hiện trạng thái tại `~/.hermes`. Dùng `--from <path>` khi Hermes nằm ở nơi khác.
### Hermes nhập những gì
- Cấu hình mô hình mặc định từ `config.yaml`.
- Các nhà cung cấp mô hình đã cấu hình và endpoint tùy chỉnh tương thích OpenAI từ `providers``custom_providers`.
- Định nghĩa máy chủ MCP từ `mcp_servers` hoặc `mcp.servers`.
- `SOUL.md``AGENTS.md` vào không gian làm việc tác tử OpenClaw.
- `memories/MEMORY.md``memories/USER.md` được nối thêm vào các tệp bộ nhớ của không gian làm việc.
- Mặc định cấu hình bộ nhớ cho bộ nhớ tệp OpenClaw, cộng với các mục lưu trữ hoặc cần xem xét thủ công cho nhà cung cấp bộ nhớ bên ngoài như Honcho.
- Skills có chứa tệp `SKILL.md` trong `skills/<name>/`.
- Giá trị cấu hình theo từng kỹ năng từ `skills.config`.
- `SOUL.md``AGENTS.md` vào workspace agent OpenClaw.
- `memories/MEMORY.md``memories/USER.md` được nối thêm vào các tệp bộ nhớ workspace.
- Mặc định cấu hình bộ nhớ cho bộ nhớ tệp OpenClaw, cùng các mục lưu trữ hoặc cần xem xét thủ công cho nhà cung cấp bộ nhớ bên ngoài như Honcho.
- Skills có chứa tệp `SKILL.md` dưới `skills/<name>/`.
- Giá trị cấu hình theo từng Skills từ `skills.config`.
- Các khóa API được hỗ trợ từ `.env`, chỉ với `--include-secrets`.
### Các khóa `.env` được hỗ trợ
@ -128,7 +157,7 @@ Nhà cung cấp Hermes được đóng gói sẵn phát hiện trạng thái t
### Trạng thái chỉ lưu trữ
Trạng thái Hermes mà OpenClaw không thể diễn giải an toàn sẽ được sao chép vào báo cáo di chuyển để xem xét thủ công, nhưng không được tải vào cấu hình hoặc thông tin xác thực OpenClaw đang hoạt động. Điều này bảo toàn trạng thái mờ hoặc không an toàn mà không giả vờ rằng OpenClaw có thể tự động thực thi hoặc tin cậy trạng thái đó:
Trạng thái Hermes mà OpenClaw không thể diễn giải an toàn được sao chép vào báo cáo di chuyển để xem xét thủ công, nhưng không được tải vào cấu hình hoặc thông tin xác thực OpenClaw đang hoạt động. Điều này bảo toàn trạng thái không rõ hoặc không an toàn mà không giả vờ rằng OpenClaw có thể tự động thực thi hoặc tin cậy nó:
- `plugins/`
- `sessions/`
@ -146,7 +175,7 @@ openclaw doctor
## Hợp đồng Plugin
Nguồn di chuyển là các Plugin. Một Plugin khai báo id nhà cung cấp của nó trong `openclaw.plugin.json`:
Nguồn di chuyển là Plugin. Một Plugin khai báo các id nhà cung cấp của nó trong `openclaw.plugin.json`:
```json
{
@ -156,22 +185,22 @@ Nguồn di chuyển là các Plugin. Một Plugin khai báo id nhà cung cấp c
}
```
Trong thời gian chạy, Plugin gọi `api.registerMigrationProvider(...)`. Nhà cung cấp triển khai `detect`, `plan``apply`. Core sở hữu điều phối CLI, chính sách sao lưu, lời nhắc, đầu ra JSON và kiểm tra trước xung đột. Core truyền kế hoạch đã được xem xét vào `apply(ctx, plan)`, và nhà cung cấp chỉ có thể dựng lại kế hoạch khi thiếu đối số đó để tương thích.
Trong runtime, Plugin gọi `api.registerMigrationProvider(...)`. Nhà cung cấp triển khai `detect`, `plan``apply`. Core sở hữu điều phối CLI, chính sách sao lưu, lời nhắc, đầu ra JSON và kiểm tra trước xung đột. Core truyền kế hoạch đã được xem xét vào `apply(ctx, plan)`, và nhà cung cấp chỉ có thể xây dựng lại kế hoạch khi đối số đó vắng mặt vì lý do tương thích.
Plugin nhà cung cấp có thể dùng `openclaw/plugin-sdk/migration` để tạo mục và đếm tóm tắt, cộng với `openclaw/plugin-sdk/migration-runtime` để sao chép tệp có nhận biết xung đột, sao chép báo cáo chỉ lưu trữ, wrapper config-runtime được lưu đệm và báo cáo di chuyển.
Plugin nhà cung cấp có thể dùng `openclaw/plugin-sdk/migration` để xây dựng mục và đếm tóm tắt, cùng `openclaw/plugin-sdk/migration-runtime` để sao chép tệp có nhận biết xung đột, sao chép báo cáo chỉ lưu trữ, wrapper config-runtime được lưu đệm và báo cáo di chuyển.
## Tích hợp onboarding
Onboarding có thể đề xuất di chuyển khi nhà cung cấp phát hiện một nguồn đã biết. Cả `openclaw onboard --flow import``openclaw setup --wizard --import-from hermes` đều dùng cùng nhà cung cấp di chuyển Plugin và vẫn hiển thị bản xem trước trước khi áp dụng.
Onboarding có thể đề xuất di chuyển khi một nhà cung cấp phát hiện nguồn đã biết. Cả `openclaw onboard --flow import``openclaw setup --wizard --import-from hermes` đều dùng cùng nhà cung cấp di chuyển Plugin và vẫn hiển thị bản xem trước trước khi áp dụng.
<Note>
Nhập bằng onboarding yêu cầu một thiết lập OpenClaw mới. Hãy đặt lại cấu hình, thông tin xác thực, phiên và không gian làm việc trước nếu bạn đã có trạng thái cục bộ. Nhập theo kiểu sao lưu-cộng-ghi đè hoặc hợp nhất được kiểm soát bằng cờ tính năng cho các thiết lập hiện có.
Nhập trong onboarding yêu cầu một thiết lập OpenClaw mới. Hãy đặt lại cấu hình, thông tin xác thực, phiên và workspace trước nếu bạn đã có trạng thái cục bộ. Nhập theo kiểu sao lưu cộng ghi đè hoặc hợp nhất được kiểm soát bằng cờ tính năng cho các thiết lập hiện có.
</Note>
## Liên quan
- [Di chuyển từ Hermes](/vi/install/migrating-hermes): hướng dẫn từng bước dành cho người dùng.
- [Di chuyển từ Claude](/vi/install/migrating-claude): hướng dẫn từng bước dành cho người dùng.
- [Di chuyển](/vi/install/migrating): chuyển OpenClaw sang một máy mới.
- [Doctor](/vi/gateway/doctor): kiểm tra tình trạng sau khi áp dụng di chuyển.
- [Plugins](/vi/tools/plugin): cài đặt và đăng ký Plugin.
- [Di chuyển](/vi/install/migrating): chuyển OpenClaw sang máy mới.
- [Doctor](/vi/gateway/doctor): kiểm tra sức khỏe sau khi áp dụng di chuyển.
- [Plugin](/vi/tools/plugin): cài đặt và đăng ký Plugin.

View File

@ -1,33 +1,33 @@
---
read_when:
- Bạn cần giải thích không gian làm việc của tác nhân hoặc bố cục tệp của nó
- Bạn muốn sao lưu hoặc di chuyển không gian làm việc của tác tử
- Bạn cần giải thích không gian làm việc của tác tử hoặc cấu trúc tệp của nó
- Bạn muốn sao lưu hoặc di chuyển một không gian làm việc của tác nhân
sidebarTitle: Agent workspace
summary: 'Không gian làm việc của tác tử: vị trí, bố cục và chiến lược sao lưu'
summary: 'Không gian làm việc của tác nhân: vị trí, bố cục và chiến lược sao lưu'
title: Không gian làm việc của tác nhân
x-i18n:
generated_at: "2026-04-29T22:35:55Z"
generated_at: "2026-04-30T20:05:33Z"
model: gpt-5.5
provider: openai
source_hash: 35d59d1f0dec05db30f9166a43bfa519d7299b08d093bbeb905d8f83e5cd022a
source_hash: b1ccf74cbec3ff20f4c1c1ce52f099a7ca3365b2536b0aad6ff1d3a5fafcca0a
source_path: concepts/agent-workspace.md
workflow: 16
---
Không gian làm việc là nhà của agent. Đây là thư mục làm việc duy nhất được dùng cho các công cụ tệp và ngữ cảnh không gian làm việc. Hãy giữ nó riêng tư và xem nó như bộ nhớ.
Vùng làm việc là nhà của agent. Đây là thư mục làm việc duy nhất được dùng cho các công cụ tệp và ngữ cảnh vùng làm việc. Hãy giữ riêng tư và xem nó như bộ nhớ.
Điều này tách biệt với `~/.openclaw/`, nơi lưu cấu hình, thông tin xác thực và phiên.
<Warning>
Không gian làm việc là **cwd mặc định**, không phải sandbox cứng. Các công cụ phân giải đường dẫn tương đối theo không gian làm việc, nhưng đường dẫn tuyệt đối vẫn có thể truy cập nơi khác trên máy chủ trừ khi sandboxing được bật. Nếu bạn cần cô lập, hãy dùng [`agents.defaults.sandbox`](/vi/gateway/sandboxing) (và/hoặc cấu hình sandbox theo từng agent).
Vùng làm việc là **cwd mặc định**, không phải sandbox cứng. Các công cụ phân giải đường dẫn tương đối theo vùng làm việc, nhưng đường dẫn tuyệt đối vẫn có thể truy cập nơi khác trên máy chủ trừ khi sandboxing được bật. Nếu bạn cần cô lập, hãy dùng [`agents.defaults.sandbox`](/vi/gateway/sandboxing) (và/hoặc cấu hình sandbox theo từng agent).
Khi sandboxing được bật và `workspaceAccess` không phải `"rw"`, các công cụ hoạt động bên trong một không gian làm việc sandbox dưới `~/.openclaw/sandboxes`, không phải không gian làm việc trên máy chủ của bạn.
Khi sandboxing được bật và `workspaceAccess` không phải `"rw"`, các công cụ hoạt động bên trong một vùng làm việc sandbox dưới `~/.openclaw/sandboxes`, không phải vùng làm việc máy chủ của bạn.
</Warning>
## Vị trí mặc định
- Mặc định: `~/.openclaw/workspace`
- Nếu `OPENCLAW_PROFILE` được đặt và không phải `"default"`, mặc định trở thành `~/.openclaw/workspace-<profile>`.
- Nếu `OPENCLAW_PROFILE` được đặt và không phải `"default"`, mặc định sẽ trở thành `~/.openclaw/workspace-<profile>`.
- Ghi đè trong `~/.openclaw/openclaw.json`:
```json5
@ -40,96 +40,97 @@ Khi sandboxing được bật và `workspaceAccess` không phải `"rw"`, các c
}
```
`openclaw onboard`, `openclaw configure`, hoặc `openclaw setup` sẽ tạo không gian làm việc và thêm các tệp bootstrap nếu chúng bị thiếu.
`openclaw onboard`, `openclaw configure`, hoặc `openclaw setup` sẽ tạo vùng làm việc và thêm các tệp khởi tạo nếu chúng bị thiếu.
<Note>
Bản sao seed sandbox chỉ chấp nhận các tệp thông thường nằm trong không gian làm việc; các alias symlink/hardlink phân giải ra ngoài không gian làm việc nguồn sẽ bị bỏ qua.
Bản sao gieo sandbox chỉ chấp nhận các tệp thông thường nằm trong vùng làm việc; các bí danh symlink/hardlink phân giải ra ngoài vùng làm việc nguồn sẽ bị bỏ qua.
</Note>
Nếu bạn đã tự quản lý các tệp không gian làm việc, bạn có thể tắt việc tạo tệp bootstrap:
Nếu bạn đã tự quản lý các tệp vùng làm việc, bạn có thể tắt việc tạo tệp khởi tạo:
```json5
{ agents: { defaults: { skipBootstrap: true } } }
```
## Thư mục không gian làm việc bổ sung
## Thư mục vùng làm việc bổ sung
Các bản cài đặt cũ hơn có thể đã tạo `~/openclaw`. Giữ nhiều thư mục không gian làm việc có thể gây trôi trạng thái hoặc xác thực khó hiểu, vì mỗi lần chỉ có một không gian làm việc hoạt động.
Các bản cài đặt cũ hơn có thể đã tạo `~/openclaw`. Giữ nhiều thư mục vùng làm việc có thể gây nhầm lẫn về xác thực hoặc trôi lệch trạng thái, vì mỗi thời điểm chỉ có một vùng làm việc đang hoạt động.
<Note>
**Khuyến nghị:** giữ một không gian làm việc hoạt động duy nhất. Nếu bạn không còn dùng các thư mục bổ sung, hãy lưu trữ hoặc chuyển chúng vào Thùng rác (ví dụ `trash ~/openclaw`). Nếu bạn cố ý giữ nhiều không gian làm việc, hãy bảo đảm `agents.defaults.workspace` trỏ đến không gian làm việc đang hoạt động.
**Khuyến nghị:** chỉ giữ một vùng làm việc hoạt động. Nếu bạn không còn dùng các thư mục bổ sung, hãy lưu trữ hoặc chuyển chúng vào Thùng rác (ví dụ `trash ~/openclaw`). Nếu bạn cố ý giữ nhiều vùng làm việc, hãy đảm bảo `agents.defaults.workspace` trỏ tới vùng đang hoạt động.
`openclaw doctor` cảnh báo khi phát hiện các thư mục không gian làm việc bổ sung.
`openclaw doctor` cảnh báo khi phát hiện các thư mục vùng làm việc bổ sung.
</Note>
## Bản đồ tệp không gian làm việc
## Bản đồ tệp vùng làm việc
Đây là các tệp chuẩn mà OpenClaw mong đợi bên trong không gian làm việc:
Đây là các tệp chuẩn mà OpenClaw kỳ vọng bên trong vùng làm việc:
<AccordionGroup>
<Accordion title="AGENTS.md — operating instructions">
Hướng dẫn vận hành cho agent và cách agent nên sử dụng bộ nhớ. Được tải khi bắt đầu mọi phiên. Đây là nơi phù hợp cho quy tắc, ưu tiên và chi tiết về "cách hành xử".
Hướng dẫn vận hành cho agent và cách agent nên sử dụng bộ nhớ. Được tải khi bắt đầu mọi phiên. Đây là nơi phù hợp cho quy tắc, ưu tiên và các chi tiết về "cách hành xử".
</Accordion>
<Accordion title="SOUL.md — persona and tone">
Persona, giọng điệu và ranh giới. Được tải trong mọi phiên. Hướng dẫn: [hướng dẫn tính cách SOUL.md](/vi/concepts/soul).
Chân dung, giọng điệu và ranh giới. Được tải trong mọi phiên. Hướng dẫn: [hướng dẫn tính cách SOUL.md](/vi/concepts/soul).
</Accordion>
<Accordion title="USER.md — who the user is">
Người dùng là ai và cách xưng hô với họ. Được tải trong mọi phiên.
</Accordion>
<Accordion title="IDENTITY.md — name, vibe, emoji">
Tên, phong cách và emoji của agent. Được tạo/cập nhật trong nghi thức bootstrap.
Tên, phong thái và emoji của agent. Được tạo/cập nhật trong nghi thức khởi tạo.
</Accordion>
<Accordion title="TOOLS.md — local tool conventions">
Ghi chú về các công cụ cục bộ và quy ước của bạn. Không kiểm soát khả dụng của công cụ; chỉ là hướng dẫn.
Ghi chú về các công cụ cục bộ và quy ước của bạn. Không kiểm soát tính khả dụng của công cụ; chỉ là hướng dẫn.
</Accordion>
<Accordion title="HEARTBEAT.md — heartbeat checklist">
Checklist nhỏ tùy chọn cho các lần chạy Heartbeat. Giữ ngắn để tránh tốn token.
Danh sách kiểm tra nhỏ tùy chọn cho các lượt Heartbeat. Giữ ngắn để tránh tiêu tốn token.
</Accordion>
<Accordion title="BOOT.md — startup checklist">
Checklist khởi động tùy chọn được chạy tự động khi Gateway khởi động lại (khi [hook nội bộ](/vi/automation/hooks) được bật). Giữ ngắn; dùng công cụ message cho các lần gửi ra ngoài.
Danh sách kiểm tra khởi động tùy chọn chạy tự động khi Gateway khởi động lại (khi [hook nội bộ](/vi/automation/hooks) được bật). Giữ ngắn; dùng công cụ tin nhắn để gửi ra ngoài.
</Accordion>
<Accordion title="BOOTSTRAP.md — first-run ritual">
Nghi thức chạy lần đầu một lần duy nhất. Chỉ được tạo cho không gian làm việc hoàn toàn mới. Xóa nó sau khi nghi thức hoàn tất.
Nghi thức chạy lần đầu một lần duy nhất. Chỉ được tạo cho vùng làm việc hoàn toàn mới. Xóa sau khi nghi thức hoàn tất.
</Accordion>
<Accordion title="memory/YYYY-MM-DD.md — daily memory log">
Nhật ký bộ nhớ hằng ngày (một tệp mỗi ngày). Khuyến nghị đọc hôm nay + hôm qua khi bắt đầu phiên.
Nhật ký bộ nhớ hằng ngày (mỗi ngày một tệp). Khuyến nghị đọc hôm nay + hôm qua khi bắt đầu phiên.
</Accordion>
<Accordion title="MEMORY.md — curated long-term memory (optional)">
Bộ nhớ dài hạn đã tuyển chọn. Chỉ tải trong phiên chính, riêng tư (không phải ngữ cảnh chia sẻ/nhóm). Xem [Bộ nhớ](/vi/concepts/memory) để biết quy trình và việc xả bộ nhớ tự động.
Bộ nhớ dài hạn được tuyển chọn. Chỉ tải trong phiên chính, riêng tư (không phải ngữ cảnh chia sẻ/nhóm). Xem [Bộ nhớ](/vi/concepts/memory) để biết quy trình và thao tác xả bộ nhớ tự động.
</Accordion>
<Accordion title="skills/ — workspace skills (optional)">
Skills dành riêng cho không gian làm việc. Vị trí skill có độ ưu tiên cao nhất cho không gian làm việc đó. Ghi đè Skills của agent dự án, Skills của agent cá nhân, Skills được quản lý, Skills đi kèm và `skills.load.extraDirs` khi tên trùng nhau.
Skills dành riêng cho vùng làm việc. Vị trí skill có độ ưu tiên cao nhất cho vùng làm việc đó. Ghi đè Skills agent của dự án, Skills agent cá nhân, Skills được quản lý, Skills đi kèm và `skills.load.extraDirs` khi tên trùng nhau.
</Accordion>
<Accordion title="canvas/ — Canvas UI files (optional)">
Các tệp giao diện Canvas cho hiển thị node (ví dụ `canvas/index.html`).
Tệp Canvas UI cho hiển thị node (ví dụ `canvas/index.html`).
</Accordion>
</AccordionGroup>
<Note>
Nếu thiếu bất kỳ tệp bootstrap nào, OpenClaw chèn marker "tệp bị thiếu" vào phiên và tiếp tục. Các tệp bootstrap lớn bị cắt ngắn khi được chèn; điều chỉnh giới hạn bằng `agents.defaults.bootstrapMaxChars` (mặc định: 12000) và `agents.defaults.bootstrapTotalMaxChars` (mặc định: 60000). `openclaw setup` có thể tạo lại mặc định bị thiếu mà không ghi đè các tệp hiện có.
Nếu thiếu bất kỳ tệp khởi tạo nào, OpenClaw sẽ chèn một dấu hiệu "thiếu tệp" vào phiên và tiếp tục. Các tệp khởi tạo lớn sẽ bị cắt ngắn khi chèn; điều chỉnh giới hạn bằng `agents.defaults.bootstrapMaxChars` (mặc định: 12000) và `agents.defaults.bootstrapTotalMaxChars` (mặc định: 60000). `openclaw setup` có thể tạo lại các mặc định bị thiếu mà không ghi đè tệp hiện có.
</Note>
## Những gì KHÔNG nằm trong không gian làm việc
## Những gì KHÔNG nằm trong vùng làm việc
Những mục này nằm dưới `~/.openclaw/` và KHÔNG nên được commit vào repo không gian làm việc:
Các mục này nằm dưới `~/.openclaw/` và KHÔNG nên được commit vào repo vùng làm việc:
- `~/.openclaw/openclaw.json` (cấu hình)
- `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (hồ sơ xác thực mô hình: OAuth + API key)
- `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (hồ sơ xác thực mô hình: OAuth + khóa API)
- `~/.openclaw/agents/<agentId>/agent/codex-home/` (tài khoản runtime Codex theo từng agent, cấu hình, Skills, plugins và trạng thái luồng gốc)
- `~/.openclaw/credentials/` (trạng thái kênh/nhà cung cấp cộng với dữ liệu nhập OAuth cũ)
- `~/.openclaw/agents/<agentId>/sessions/` (bản ghi phiên + metadata)
- `~/.openclaw/agents/<agentId>/sessions/` (bản ghi phiên + siêu dữ liệu)
- `~/.openclaw/skills/` (Skills được quản lý)
Nếu bạn cần di chuyển phiên hoặc cấu hình, hãy sao chép chúng riêng và giữ chúng ngoài kiểm soát phiên bản.
## Sao lưu Git (khuyến nghị, riêng tư)
Xem không gian làm việc như bộ nhớ riêng tư. Đưa nó vào một repo git **riêng tư** để được sao lưu và có thể khôi phục.
Xem vùng làm việc như bộ nhớ riêng tư. Đặt nó trong một repo git **riêng tư** để được sao lưu và có thể khôi phục.
Chạy các bước này trên máy nơi Gateway chạy (đó là nơi không gian làm việc tồn tại).
Chạy các bước này trên máy nơi Gateway chạy (đó là nơi vùng làm việc tồn tại).
<Steps>
<Step title="Initialize the repo">
Nếu git đã được cài đặt, các không gian làm việc hoàn toàn mới được khởi tạo tự động. Nếu không gian làm việc này chưa phải là repo, hãy chạy:
Nếu git đã được cài đặt, các vùng làm việc hoàn toàn mới sẽ được khởi tạo tự động. Nếu vùng làm việc này chưa phải là repo, hãy chạy:
```bash
cd ~/.openclaw/workspace
@ -142,7 +143,7 @@ Chạy các bước này trên máy nơi Gateway chạy (đó là nơi không gi
<Step title="Add a private remote">
<Tabs>
<Tab title="GitHub web UI">
1. Tạo một repository **riêng tư** mới trên GitHub.
1. Tạo một kho lưu trữ **riêng tư** mới trên GitHub.
2. Không khởi tạo với README (tránh xung đột merge).
3. Sao chép URL remote HTTPS.
4. Thêm remote và push:
@ -160,7 +161,7 @@ Chạy các bước này trên máy nơi Gateway chạy (đó là nơi không gi
```
</Tab>
<Tab title="GitLab web UI">
1. Tạo một repository **riêng tư** mới trên GitLab.
1. Tạo một kho lưu trữ **riêng tư** mới trên GitLab.
2. Không khởi tạo với README (tránh xung đột merge).
3. Sao chép URL remote HTTPS.
4. Thêm remote và push:
@ -187,16 +188,16 @@ Chạy các bước này trên máy nơi Gateway chạy (đó là nơi không gi
## Không commit bí mật
<Warning>
Ngay cả trong repo riêng tư, hãy tránh lưu bí mật trong không gian làm việc:
Ngay cả trong repo riêng tư, hãy tránh lưu trữ bí mật trong vùng làm việc:
- API key, token OAuth, mật khẩu hoặc thông tin xác thực riêng tư.
- Khóa API, token OAuth, mật khẩu hoặc thông tin xác thực riêng tư.
- Bất kỳ thứ gì dưới `~/.openclaw/`.
- Bản dump thô của cuộc trò chuyện hoặc tệp đính kèm nhạy cảm.
Nếu bạn phải lưu tham chiếu nhạy cảm, hãy dùng placeholder và giữ bí mật thật ở nơi khác (trình quản lý mật khẩu, biến môi trường hoặc `~/.openclaw/`).
Nếu bạn phải lưu trữ tham chiếu nhạy cảm, hãy dùng placeholder và giữ bí mật thật ở nơi khác (trình quản lý mật khẩu, biến môi trường hoặc `~/.openclaw/`).
</Warning>
Mẫu khởi đầu `.gitignore` được đề xuất:
Mẫu `.gitignore` khởi đầu được đề xuất:
```gitignore
.DS_Store
@ -206,17 +207,17 @@ Mẫu khởi đầu `.gitignore` được đề xuất:
**/secrets*
```
## Di chuyển không gian làm việc sang máy mới
## Di chuyển vùng làm việc sang máy mới
<Steps>
<Step title="Clone the repo">
Clone repo đến đường dẫn mong muốn (mặc định `~/.openclaw/workspace`).
Clone repo tới đường dẫn mong muốn (mặc định `~/.openclaw/workspace`).
</Step>
<Step title="Update config">
Đặt `agents.defaults.workspace` thành đường dẫn đó trong `~/.openclaw/openclaw.json`.
</Step>
<Step title="Seed missing files">
Chạy `openclaw setup --workspace <path>` để seed bất kỳ tệp nào bị thiếu.
Chạy `openclaw setup --workspace <path>` để gieo bất kỳ tệp nào còn thiếu.
</Step>
<Step title="Copy sessions (optional)">
Nếu bạn cần phiên, hãy sao chép riêng `~/.openclaw/agents/<agentId>/sessions/` từ máy cũ.
@ -225,12 +226,12 @@ Mẫu khởi đầu `.gitignore` được đề xuất:
## Ghi chú nâng cao
- Định tuyến đa agent có thể dùng các không gian làm việc khác nhau cho mỗi agent. Xem [Định tuyến kênh](/vi/channels/channel-routing) để biết cấu hình định tuyến.
- Nếu `agents.defaults.sandbox` được bật, các phiên không phải phiên chính có thể dùng không gian làm việc sandbox theo từng phiên dưới `agents.defaults.sandbox.workspaceRoot`.
- Định tuyến đa agent có thể dùng các vùng làm việc khác nhau cho từng agent. Xem [Định tuyến kênh](/vi/channels/channel-routing) để biết cấu hình định tuyến.
- Nếu `agents.defaults.sandbox` được bật, các phiên không phải chính có thể dùng vùng làm việc sandbox theo từng phiên dưới `agents.defaults.sandbox.workspaceRoot`.
## Liên quan
- [Heartbeat](/vi/gateway/heartbeat) — tệp không gian làm việc HEARTBEAT.md
- [Sandboxing](/vi/gateway/sandboxing) — quyền truy cập không gian làm việc trong môi trường sandbox
- [Heartbeat](/vi/gateway/heartbeat) — tệp vùng làm việc HEARTBEAT.md
- [Sandboxing](/vi/gateway/sandboxing) — quyền truy cập vùng làm việc trong môi trường sandbox
- [Phiên](/vi/concepts/session) — đường dẫn lưu trữ phiên
- [Lệnh thường trực](/vi/automation/standing-orders) — hướng dẫn bền vững trong các tệp không gian làm việc
- [Lệnh thường trực](/vi/automation/standing-orders) — hướng dẫn bền vững trong các tệp vùng làm việc

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,57 +2,55 @@
read_when:
- Thêm hoặc sửa đổi Skills
- Thay đổi cơ chế kiểm soát Skills, danh sách cho phép hoặc quy tắc tải
- Tìm hiểu thứ tự ưu tiên của Skills và hành vi ảnh chụp nhanh
- Tìm hiểu về thứ tự ưu tiên của kỹ năng và hành vi ảnh chụp trạng thái
sidebarTitle: Skills
summary: 'Skills: được quản lý so với không gian làm việc, quy tắc kiểm soát, danh sách cho phép tác nhân và đấu nối cấu hình'
summary: 'Skills: dạng được quản lý so với dạng không gian làm việc, quy tắc kiểm soát, danh sách cho phép agent và kết nối cấu hình'
title: Skills
x-i18n:
generated_at: "2026-04-30T09:40:15Z"
generated_at: "2026-04-30T20:05:44Z"
model: gpt-5.5
provider: openai
source_hash: d7dd17f52119bf0a0bb197025070abb68f7667a7d22c3d5fa6ef2f666110a45a
source_hash: b58d690786756bd3539940aae9f2abcb8a497798ed7b6afeb5e6d6e255fcf257
source_path: tools/skills.md
workflow: 16
---
OpenClaw sử dụng các thư mục kỹ năng **tương thích với [AgentSkills](https://agentskills.io)** để dạy agent cách sử dụng công cụ. Mỗi kỹ năng là một thư mục chứa `SKILL.md` với YAML frontmatter và hướng dẫn. OpenClaw tải các kỹ năng đi kèm cùng các ghi đè cục bộ tùy chọn, rồi lọc chúng tại thời điểm tải dựa trên môi trường, cấu hình và sự hiện diện của binary.
OpenClaw dùng các thư mục skill **tương thích [AgentSkills](https://agentskills.io)** để dạy agent cách dùng công cụ. Mỗi skill là một thư mục chứa `SKILL.md` với YAML frontmatter và hướng dẫn. OpenClaw tải các skill đi kèm cùng các ghi đè cục bộ tùy chọn, rồi lọc chúng tại thời điểm tải dựa trên môi trường, cấu hình và sự hiện diện của binary.
## Vị trí và thứ tự ưu tiên
OpenClaw tải kỹ năng từ các nguồn này, **ưu tiên cao nhất trước**:
OpenClaw tải skill từ các nguồn này, **ưu tiên cao nhất trước**:
| # | Nguồn | Đường dẫn |
| # | Nguồn | Đường dẫn |
| --- | --------------------- | -------------------------------- |
| 1 | Kỹ năng workspace | `<workspace>/skills` |
| 2 | Kỹ năng agent dự án | `<workspace>/.agents/skills` |
| 3 | Kỹ năng agent cá nhân | `~/.agents/skills` |
| 4 | Kỹ năng quản lý/cục bộ | `~/.openclaw/skills` |
| 5 | Kỹ năng đi kèm | đi kèm với bản cài đặt |
| 6 | Thư mục kỹ năng bổ sung | `skills.load.extraDirs` (cấu hình) |
| 1 | Skill workspace | `<workspace>/skills` |
| 2 | Skill agent dự án | `<workspace>/.agents/skills` |
| 3 | Skill agent cá nhân | `~/.agents/skills` |
| 4 | Skill quản lý/cục bộ | `~/.openclaw/skills` |
| 5 | Skill đi kèm | đi kèm bản cài đặt |
| 6 | Thư mục skill bổ sung | `skills.load.extraDirs` (config) |
Nếu tên kỹ năng xung đột, nguồn có ưu tiên cao nhất sẽ thắng.
Nếu tên skill xung đột, nguồn cao nhất sẽ thắng.
## Kỹ năng riêng từng agent và kỹ năng dùng chung
Thư mục `$CODEX_HOME/skills` gốc của Codex CLI không nằm trong các gốc skill OpenClaw này. Trong chế độ harness Codex, các lần khởi chạy app-server cục bộ dùng các home Codex tách biệt theo từng agent, nên skill Codex CLI cá nhân không được tải ngầm định. Dùng `openclaw migrate codex --dry-run` để kiểm kê chúng và `openclaw migrate codex` để chọn thư mục skill bằng lời nhắc checkbox tương tác trước khi sao chép chúng vào workspace agent OpenClaw hiện tại. Với các lần chạy không tương tác, lặp lại `--skill <name>` cho đúng các skill cần sao chép.
Trong các thiết lập **multi-agent**, mỗi agent có workspace riêng:
## Skill theo từng agent so với skill dùng chung
| Phạm vi | Đường dẫn | Hiển thị với |
| -------------------- | ------------------------------------------- | --------------------------- |
| Riêng từng agent | `<workspace>/skills` | Chỉ agent đó |
| Agent dự án | `<workspace>/.agents/skills` | Chỉ agent của workspace đó |
| Agent cá nhân | `~/.agents/skills` | Tất cả agent trên máy đó |
| Dùng chung quản lý/cục bộ | `~/.openclaw/skills` | Tất cả agent trên máy đó |
Trong các thiết lập **đa agent**, mỗi agent có workspace riêng:
| Phạm vi | Đường dẫn | Hiển thị với |
| --------------------- | ------------------------------------------ | ---------------------------- |
| Theo từng agent | `<workspace>/skills` | Chỉ agent đó |
| Agent dự án | `<workspace>/.agents/skills` | Chỉ agent của workspace đó |
| Agent cá nhân | `~/.agents/skills` | Tất cả agent trên máy đó |
| Quản lý/cục bộ dùng chung | `~/.openclaw/skills` | Tất cả agent trên máy đó |
| Thư mục bổ sung dùng chung | `skills.load.extraDirs` (ưu tiên thấp nhất) | Tất cả agent trên máy đó |
Cùng tên ở nhiều nơi → nguồn có ưu tiên cao nhất sẽ thắng. Workspace thắng
agent dự án, thắng agent cá nhân, thắng quản lý/cục bộ, thắng đi kèm,
thắng thư mục bổ sung.
Cùng tên ở nhiều nơi → nguồn cao nhất sẽ thắng. Workspace thắng agent dự án, thắng agent cá nhân, thắng quản lý/cục bộ, thắng đi kèm, thắng thư mục bổ sung.
## Danh sách cho phép kỹ năng của agent
## Danh sách cho phép skill của agent
**Vị trí** kỹ năng và **khả năng hiển thị** kỹ năng là hai điều khiển riêng biệt.
Vị trí/thứ tự ưu tiên quyết định bản sao nào của kỹ năng cùng tên sẽ thắng; danh sách
cho phép của agent quyết định agent thực sự có thể dùng kỹ năng nào.
**Vị trí** skill và **khả năng hiển thị** skill là các cơ chế kiểm soát riêng biệt. Vị trí/thứ tự ưu tiên quyết định bản sao nào của skill cùng tên sẽ thắng; danh sách cho phép của agent quyết định agent thực sự có thể dùng skill nào.
```json5
{
@ -71,90 +69,56 @@ cho phép của agent quyết định agent thực sự có thể dùng kỹ nă
<AccordionGroup>
<Accordion title="Quy tắc danh sách cho phép">
- Bỏ qua `agents.defaults.skills` để mặc định không giới hạn kỹ năng.
- Bỏ qua `agents.defaults.skills` để mặc định không hạn chế skill.
- Bỏ qua `agents.list[].skills` để kế thừa `agents.defaults.skills`.
- Đặt `agents.list[].skills: []` để không có kỹ năng nào.
- Danh sách `agents.list[].skills` không rỗng là tập **cuối cùng** cho agent đó — danh sách này không hợp nhất với mặc định.
- Danh sách cho phép hiệu lực áp dụng trên việc dựng prompt, khám phá slash-command kỹ năng, đồng bộ sandbox và snapshot kỹ năng.
- Đặt `agents.list[].skills: []` để không có skill nào.
- Danh sách `agents.list[].skills` không rỗng là tập hợp **cuối cùng** cho agent đó — nó không hợp nhất với mặc định.
- Danh sách cho phép hiệu lực áp dụng trên việc tạo prompt, khám phá slash-command của skill, đồng bộ sandbox và snapshot skill.
</Accordion>
</AccordionGroup>
## Plugin và kỹ năng
## Plugin và skill
Plugin có thể đi kèm kỹ năng riêng bằng cách liệt kê các thư mục `skills` trong
`openclaw.plugin.json` (đường dẫn tương đối với gốc Plugin). Kỹ năng Plugin
được tải khi Plugin được bật. Đây là nơi phù hợp cho các hướng dẫn vận hành
theo công cụ quá dài so với mô tả công cụ nhưng cần có sẵn bất cứ khi nào
Plugin được cài đặt — ví dụ, Plugin trình duyệt đi kèm một kỹ năng
`browser-automation` cho điều khiển trình duyệt nhiều bước.
Plugin có thể cung cấp skill riêng bằng cách liệt kê các thư mục `skills` trong `openclaw.plugin.json` (đường dẫn tương đối với gốc Plugin). Skill của Plugin tải khi Plugin được bật. Đây là nơi phù hợp cho các hướng dẫn vận hành theo công cụ quá dài để đưa vào mô tả công cụ nhưng nên có sẵn bất cứ khi nào Plugin được cài đặt — ví dụ, Plugin trình duyệt cung cấp skill `browser-automation` cho điều khiển trình duyệt nhiều bước.
Thư mục kỹ năng Plugin được hợp nhất vào cùng đường dẫn ưu tiên thấp như
`skills.load.extraDirs`, nên kỹ năng đi kèm, được quản lý, của agent hoặc
workspace có cùng tên sẽ ghi đè chúng. Bạn có thể chặn theo điều kiện bằng
`metadata.openclaw.requires.config` trên mục cấu hình của Plugin.
Thư mục skill của Plugin được hợp nhất vào cùng đường dẫn ưu tiên thấp như `skills.load.extraDirs`, nên skill đi kèm, được quản lý, của agent hoặc workspace cùng tên sẽ ghi đè chúng. Bạn có thể chặn theo điều kiện qua `metadata.openclaw.requires.config` trên mục cấu hình của Plugin.
Xem [Plugin](/vi/tools/plugin) để biết khám phá/cấu hình và [Công cụ](/vi/tools) để biết
bề mặt công cụ mà các kỹ năng đó hướng dẫn.
Xem [Plugin](/vi/tools/plugin) để biết khám phá/cấu hình và [Công cụ](/vi/tools) để biết bề mặt công cụ mà các skill đó hướng dẫn.
## Skill Workshop
Plugin **Skill Workshop** tùy chọn, thử nghiệm có thể tạo hoặc cập nhật
kỹ năng workspace từ các quy trình tái sử dụng được quan sát trong quá trình agent làm việc. Plugin này
bị tắt theo mặc định và phải được bật rõ ràng qua
`plugins.entries.skill-workshop`.
Plugin **Skill Workshop** tùy chọn, thử nghiệm có thể tạo hoặc cập nhật skill workspace từ các quy trình tái sử dụng được quan sát trong quá trình agent làm việc. Plugin này bị tắt theo mặc định và phải được bật rõ ràng qua `plugins.entries.skill-workshop`.
Skill Workshop chỉ ghi vào `<workspace>/skills`, quét nội dung đã tạo,
hỗ trợ phê duyệt chờ xử lý hoặc ghi an toàn tự động, cách ly các đề xuất
không an toàn và làm mới snapshot kỹ năng sau khi ghi thành công để kỹ năng mới
khả dụng mà không cần khởi động lại Gateway.
Skill Workshop chỉ ghi vào `<workspace>/skills`, quét nội dung được tạo, hỗ trợ phê duyệt đang chờ hoặc ghi an toàn tự động, cách ly các đề xuất không an toàn, và làm mới snapshot skill sau khi ghi thành công để skill mới khả dụng mà không cần khởi động lại Gateway.
Dùng nó cho các sửa chữa như _"lần sau, xác minh ghi công GIF"_ hoặc
các quy trình rút ra từ kinh nghiệm như danh sách kiểm tra QA phương tiện. Bắt đầu với phê duyệt chờ xử lý;
chỉ dùng ghi tự động trong workspace đáng tin cậy sau khi xem xét
các đề xuất của nó. Hướng dẫn đầy đủ: [Plugin Skill Workshop](/vi/plugins/skill-workshop).
Dùng nó cho các sửa chỉnh như _"lần sau, xác minh ghi công GIF"_ hoặc các quy trình khó đúc kết như checklist QA media. Hãy bắt đầu với phê duyệt đang chờ; chỉ dùng ghi tự động trong workspace đáng tin cậy sau khi xem xét các đề xuất của nó. Hướng dẫn đầy đủ: [Plugin Skill Workshop](/vi/plugins/skill-workshop).
## ClawHub (cài đặt và đồng bộ)
[ClawHub](https://clawhub.ai) là registry kỹ năng công khai cho OpenClaw.
Dùng các lệnh `openclaw skills` gốc để khám phá/cài đặt/cập nhật, hoặc
CLI `clawhub` riêng cho quy trình xuất bản/đồng bộ. Hướng dẫn đầy đủ:
[ClawHub](/vi/tools/clawhub).
[ClawHub](https://clawhub.ai) là registry skill công khai cho OpenClaw. Dùng các lệnh `openclaw skills` gốc để khám phá/cài đặt/cập nhật, hoặc CLI `clawhub` riêng cho quy trình phát hành/đồng bộ. Hướng dẫn đầy đủ: [ClawHub](/vi/tools/clawhub).
| Hành động | Lệnh |
| ---------------------------------- | -------------------------------------- |
| Cài đặt kỹ năng vào workspace | `openclaw skills install <skill-slug>` |
| Cập nhật tất cả kỹ năng đã cài đặt | `openclaw skills update --all` |
| Đồng bộ (quét + xuất bản cập nhật) | `clawhub sync --all` |
| Hành động | Lệnh |
| ------------------------------------------ | -------------------------------------- |
| Cài đặt skill vào workspace | `openclaw skills install <skill-slug>` |
| Cập nhật tất cả skill đã cài đặt | `openclaw skills update --all` |
| Đồng bộ (quét + phát hành bản cập nhật) | `clawhub sync --all` |
`openclaw skills install` gốc cài đặt vào thư mục `skills/` của workspace
đang hoạt động. CLI `clawhub` riêng cũng cài đặt vào `./skills` trong thư mục
làm việc hiện tại của bạn (hoặc dự phòng về workspace OpenClaw đã cấu hình).
OpenClaw nhận phần đó dưới dạng `<workspace>/skills` trong phiên tiếp theo.
Các gốc kỹ năng đã cấu hình cũng hỗ trợ một cấp nhóm, chẳng hạn như
`skills/<group>/<skill>/SKILL.md`, để các kỹ năng bên thứ ba liên quan có thể
được giữ trong một thư mục chung mà không cần quét đệ quy rộng.
`openclaw skills install` gốc cài đặt vào thư mục `skills/` của workspace đang hoạt động. CLI `clawhub` riêng cũng cài đặt vào `./skills` trong thư mục làm việc hiện tại của bạn (hoặc quay về workspace OpenClaw đã cấu hình). OpenClaw nhận thư mục đó là `<workspace>/skills` trong phiên tiếp theo. Các gốc skill đã cấu hình cũng hỗ trợ một cấp nhóm, chẳng hạn `skills/<group>/<skill>/SKILL.md`, để các skill bên thứ ba liên quan có thể được giữ trong một thư mục dùng chung mà không cần quét đệ quy rộng.
Các trang kỹ năng ClawHub hiển thị trạng thái quét bảo mật mới nhất trước khi cài đặt,
với các trang chi tiết bộ quét cho VirusTotal, ClawScan và phân tích tĩnh.
`openclaw skills install <slug>` vẫn chỉ là đường dẫn cài đặt; nhà xuất bản
khôi phục dương tính giả qua dashboard ClawHub hoặc
`clawhub skill rescan <slug>`.
Các trang skill ClawHub hiển thị trạng thái quét bảo mật mới nhất trước khi cài đặt, cùng các trang chi tiết scanner cho VirusTotal, ClawScan và phân tích tĩnh. `openclaw skills install <slug>` vẫn chỉ là đường dẫn cài đặt; nhà phát hành xử lý kết quả dương tính giả qua bảng điều khiển ClawHub hoặc `clawhub skill rescan <slug>`.
## Bảo mật
<Warning>
Hãy xem kỹ năng bên thứ ba là **mã không đáng tin cậy**. Đọc chúng trước khi bật.
Ưu tiên chạy trong sandbox cho đầu vào không đáng tin cậy và công cụ rủi ro. Xem
[Sandboxing](/vi/gateway/sandboxing) để biết các điều khiển phía agent.
Hãy xem skill bên thứ ba là **mã không đáng tin cậy**. Đọc chúng trước khi bật. Ưu tiên chạy trong sandbox cho đầu vào không đáng tin cậy và công cụ rủi ro. Xem [Sandboxing](/vi/gateway/sandboxing) để biết các kiểm soát phía agent.
</Warning>
- Khám phá kỹ năng workspace và thư mục bổ sung chỉ chấp nhận gốc kỹ năng và tệp `SKILL.md` có realpath đã phân giải vẫn nằm trong gốc đã cấu hình.
- Cài đặt phụ thuộc kỹ năng do Gateway hỗ trợ (`skills.install`, onboarding và giao diện cài đặt Skills) chạy bộ quét mã nguy hiểm tích hợp sẵn trước khi thực thi metadata trình cài đặt. Phát hiện `critical` mặc định sẽ chặn trừ khi bên gọi đặt rõ ghi đè nguy hiểm; các phát hiện đáng ngờ vẫn chỉ cảnh báo.
- `openclaw skills install <slug>` thì khác — lệnh này tải một thư mục kỹ năng ClawHub vào workspace và không dùng đường dẫn metadata trình cài đặt ở trên.
- `skills.entries.*.env``skills.entries.*.apiKey` tiêm bí mật vào tiến trình **host** cho lượt agent đó (không phải sandbox). Giữ bí mật khỏi prompt và log.
- Khám phá skill workspace và thư mục bổ sung chỉ chấp nhận các gốc skill và tệp `SKILL.md` có realpath đã phân giải vẫn nằm trong gốc đã cấu hình.
- Các cài đặt phụ thuộc skill được Gateway hỗ trợ (`skills.install`, onboarding và giao diện cài đặt Skills) chạy scanner mã nguy hiểm tích hợp trước khi thực thi metadata trình cài đặt. Các phát hiện `critical` bị chặn theo mặc định trừ khi caller đặt rõ ghi đè nguy hiểm; các phát hiện đáng ngờ vẫn chỉ cảnh báo.
- `openclaw skills install <slug>` thì khác — nó tải một thư mục skill ClawHub vào workspace và không dùng đường dẫn metadata trình cài đặt ở trên.
- `skills.entries.*.env``skills.entries.*.apiKey` tiêm secret vào tiến trình **host** cho lượt agent đó (không phải sandbox). Không đưa secret vào prompt và log.
Để có mô hình đe dọa và danh sách kiểm tra rộng hơn, xem [Bảo mật](/vi/gateway/security).
Để có mô hình đe dọa và checklist rộng hơn, xem [Bảo mật](/vi/gateway/security).
## Định dạng SKILL.md
@ -167,10 +131,7 @@ description: Generate or edit images via a provider-backed image workflow
---
```
OpenClaw tuân theo đặc tả AgentSkills về bố cục/mục đích. Trình phân tích cú pháp được dùng
bởi agent nhúng chỉ hỗ trợ khóa frontmatter **một dòng**;
`metadata` nên là **đối tượng JSON một dòng**. Dùng `{baseDir}` trong
hướng dẫn để tham chiếu đường dẫn thư mục kỹ năng.
OpenClaw tuân theo đặc tả AgentSkills về bố cục/mục đích. Parser được agent nhúng sử dụng chỉ hỗ trợ các khóa frontmatter **một dòng**; `metadata` nên là **đối tượng JSON một dòng**. Dùng `{baseDir}` trong hướng dẫn để tham chiếu đường dẫn thư mục skill.
### Khóa frontmatter tùy chọn
@ -178,24 +139,24 @@ hướng dẫn để tham chiếu đường dẫn thư mục kỹ năng.
URL hiển thị dưới dạng "Trang web" trong giao diện macOS Skills. Cũng được hỗ trợ qua `metadata.openclaw.homepage`.
</ParamField>
<ParamField path="user-invocable" type="boolean" default="true">
Khi `true`, kỹ năng được hiển thị dưới dạng slash command của người dùng.
Khi `true`, skill được hiển thị như slash command của người dùng.
</ParamField>
<ParamField path="disable-model-invocation" type="boolean" default="false">
Khi `true`, kỹ năng bị loại khỏi prompt mô hình (vẫn khả dụng qua lời gọi của người dùng).
Khi `true`, skill bị loại khỏi prompt của model (vẫn khả dụng qua lời gọi của người dùng).
</ParamField>
<ParamField path="command-dispatch" type='"tool"'>
Khi đặt thành `tool`, slash command bỏ qua mô hình và chuyển trực tiếp đến công cụ.
Khi đặt thành `tool`, slash command bỏ qua model và dispatch trực tiếp đến một công cụ.
</ParamField>
<ParamField path="command-tool" type="string">
Tên công cụ cần gọi khi đặt `command-dispatch: tool`.
Tên công cụ để gọi khi `command-dispatch: tool` được đặt.
</ParamField>
<ParamField path="command-arg-mode" type='"raw"' default="raw">
Với điều phối công cụ, chuyển tiếp chuỗi đối số thô đến công cụ (không phân tích cú pháp trong core). Công cụ được gọi với `{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }`.
Với dispatch công cụ, chuyển tiếp chuỗi args thô đến công cụ (không có phân tích cú pháp lõi). Công cụ được gọi với `{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }`.
</ParamField>
## Chặn theo điều kiện (bộ lọc tại thời điểm tải)
## Điều kiện cổng (bộ lọc lúc tải)
OpenClaw lọc kỹ năng tại thời điểm tải bằng `metadata` (JSON một dòng):
OpenClaw lọc skill tại thời điểm tải bằng `metadata` (JSON một dòng):
```markdown
---
@ -215,16 +176,16 @@ metadata:
Các trường dưới `metadata.openclaw`:
<ParamField path="always" type="boolean">
Khi `true`, luôn bao gồm kỹ năng (bỏ qua các cổng khác).
Khi `true`, luôn bao gồm skill (bỏ qua các cổng khác).
</ParamField>
<ParamField path="emoji" type="string">
Emoji tùy chọn được dùng bởi giao diện macOS Skills.
Emoji tùy chọn được giao diện macOS Skills dùng.
</ParamField>
<ParamField path="homepage" type="string">
URL tùy chọn hiển thị dưới dạng "Trang web" trong giao diện macOS Skills.
</ParamField>
<ParamField path="os" type='"darwin" | "linux" | "win32"' >
Danh sách nền tảng tùy chọn. Nếu đặt, kỹ năng chỉ đủ điều kiện trên các OS đó.
Danh sách nền tảng tùy chọn. Nếu được đặt, skill chỉ đủ điều kiện trên các hệ điều hành đó.
</ParamField>
<ParamField path="requires.bins" type="string[]">
Mỗi mục phải tồn tại trên `PATH`.
@ -233,33 +194,29 @@ Các trường dưới `metadata.openclaw`:
Ít nhất một mục phải tồn tại trên `PATH`.
</ParamField>
<ParamField path="requires.env" type="string[]">
Biến môi trường phải tồn tại hoặc được cung cấp trong cấu hình.
Env var phải tồn tại hoặc được cung cấp trong config.
</ParamField>
<ParamField path="requires.config" type="string[]">
Danh sách đường dẫn `openclaw.json` phải có giá trị truthy.
Danh sách các đường dẫn `openclaw.json` phải có giá trị truthy.
</ParamField>
<ParamField path="primaryEnv" type="string">
Tên biến môi trường liên kết với `skills.entries.<name>.apiKey`.
Tên env var được liên kết với `skills.entries.<name>.apiKey`.
</ParamField>
<ParamField path="install" type="object[]">
Đặc tả trình cài đặt tùy chọn được dùng bởi giao diện macOS Skills (brew/node/go/uv/download).
Đặc tả trình cài đặt tùy chọn được giao diện macOS Skills dùng (brew/node/go/uv/download).
</ParamField>
Nếu không có `metadata.openclaw`, kỹ năng luôn đủ điều kiện (trừ khi
bị tắt trong cấu hình hoặc bị chặn bởi `skills.allowBundled` đối với kỹ năng đi kèm).
Nếu không có `metadata.openclaw`, skill luôn đủ điều kiện (trừ khi bị tắt trong config hoặc bị `skills.allowBundled` chặn đối với skill đi kèm).
<Note>
Các khối `metadata.clawdbot` cũ vẫn được chấp nhận khi
không có `metadata.openclaw`, nên các kỹ năng cũ đã cài đặt vẫn giữ
cổng phụ thuộc và gợi ý trình cài đặt của chúng. Kỹ năng mới và được cập nhật nên dùng
`metadata.openclaw`.
Các khối `metadata.clawdbot` cũ vẫn được chấp nhận khi không có `metadata.openclaw`, để các skill đã cài đặt cũ giữ nguyên cổng phụ thuộc và gợi ý trình cài đặt. Skill mới và đã cập nhật nên dùng `metadata.openclaw`.
</Note>
### Ghi chú sandbox
### Ghi chú về sandboxing
- `requires.bins` được kiểm tra trên **host** tại thời điểm tải kỹ năng.
- Nếu một agent chạy trong sandbox, binary cũng phải tồn tại **bên trong container**. Cài đặt nó qua `agents.defaults.sandbox.docker.setupCommand` (hoặc một image tùy chỉnh). `setupCommand` chạy một lần sau khi container được tạo. Cài đặt package cũng yêu cầu network egress, root FS có thể ghi và người dùng root trong sandbox.
- Ví dụ: kỹ năng `summarize` (`skills/summarize/SKILL.md`) cần CLI `summarize` trong container sandbox để chạy ở đó.
- `requires.bins` được kiểm tra trên **host** tại thời điểm tải skill.
- Nếu agent chạy trong sandbox, binary cũng phải tồn tại **bên trong container**. Cài đặt nó qua `agents.defaults.sandbox.docker.setupCommand` (hoặc image tùy chỉnh). `setupCommand` chạy một lần sau khi container được tạo. Cài đặt gói cũng yêu cầu network egress, root FS có thể ghi và root user trong sandbox.
- Ví dụ: skill `summarize` (`skills/summarize/SKILL.md`) cần CLI `summarize` trong container sandbox để chạy ở đó.
### Đặc tả trình cài đặt
@ -291,15 +248,15 @@ metadata:
<AccordionGroup>
<Accordion title="Quy tắc chọn trình cài đặt">
- Nếu có nhiều trình cài đặt được liệt kê, gateway chọn một tùy chọn ưu tiên duy nhất (brew khi có sẵn, nếu không thì node).
- Nếu tất cả trình cài đặt đều là `download`, OpenClaw liệt kê từng mục để bạn có thể xem các artifact có sẵn.
- Thông số trình cài đặt có thể bao gồm `os: ["darwin"|"linux"|"win32"]` để lọc tùy chọn theo nền tảng.
- Cài đặt Node tuân theo `skills.install.nodeManager` trong `openclaw.json` (mặc định: npm; tùy chọn: npm/pnpm/yarn/bun). Điều này chỉ ảnh hưởng đến việc cài đặt skill; runtime Gateway vẫn nên là Node — Bun không được khuyến nghị cho WhatsApp/Telegram.
- Lựa chọn trình cài đặt dựa trên Gateway được điều khiển theo ưu tiên: khi thông số cài đặt trộn nhiều loại, OpenClaw ưu tiên Homebrew khi `skills.install.preferBrew` được bật và `brew` tồn tại, sau đó `uv`, rồi trình quản lý node đã cấu hình, rồi các phương án dự phòng khác như `go` hoặc `download`.
- Nếu mọi thông số cài đặt đều là `download`, OpenClaw hiển thị tất cả tùy chọn tải xuống thay vì gộp lại thành một trình cài đặt ưu tiên.
- Nếu tất cả trình cài đặt đều là `download`, OpenClaw liệt kê từng mục để bạn có thể thấy các artifact hiện có.
- Đặc tả trình cài đặt có thể bao gồm `os: ["darwin"|"linux"|"win32"]` để lọc tùy chọn theo nền tảng.
- Các bản cài đặt Node tuân theo `skills.install.nodeManager` trong `openclaw.json` (mặc định: npm; tùy chọn: npm/pnpm/yarn/bun). Điều này chỉ ảnh hưởng đến cài đặt skill; runtime Gateway vẫn nên là Node — Bun không được khuyến nghị cho WhatsApp/Telegram.
- Việc chọn trình cài đặt do Gateway hỗ trợ được điều khiển theo ưu tiên: khi các đặc tả cài đặt trộn nhiều loại, OpenClaw ưu tiên Homebrew khi `skills.install.preferBrew` được bật và `brew` tồn tại, sau đó đến `uv`, rồi trình quản lý node đã cấu hình, rồi các phương án dự phòng khác như `go` hoặc `download`.
- Nếu mọi đặc tả cài đặt đều là `download`, OpenClaw hiển thị tất cả tùy chọn tải xuống thay vì thu gọn thành một trình cài đặt ưu tiên.
</Accordion>
<Accordion title="Chi tiết theo từng trình cài đặt">
- **Cài đặt Go:** nếu thiếu `go` và có sẵn `brew`, gateway cài đặt Go qua Homebrew trước và đặt `GOBIN` thành `bin` của Homebrew khi có thể.
- **Cài đặt Go:** nếu thiếu `go` và có sẵn `brew`, gateway cài Go qua Homebrew trước và đặt `GOBIN` thành `bin` của Homebrew khi có thể.
- **Cài đặt tải xuống:** `url` (bắt buộc), `archive` (`tar.gz` | `tar.bz2` | `zip`), `extract` (mặc định: tự động khi phát hiện archive), `stripComponents`, `targetDir` (mặc định: `~/.openclaw/tools/<skillKey>`).
</Accordion>
@ -308,7 +265,7 @@ metadata:
## Ghi đè cấu hình
Các skill đi kèm và được quản lý có thể được bật/tắt và cung cấp giá trị env
trong `skills.entries` `~/.openclaw/openclaw.json`:
trong `skills.entries` trong `~/.openclaw/openclaw.json`:
```json5
{
@ -333,37 +290,37 @@ trong `skills.entries` ở `~/.openclaw/openclaw.json`:
```
<ParamField path="enabled" type="boolean">
`false` vô hiệu hóa skill ngay cả khi nó được đi kèm hoặc đã cài đặt.
`false` vô hiệu hóa skill ngay cả khi skill đó được đi kèm hoặc đã cài đặt.
Skill `coding-agent` đi kèm là tùy chọn bật thủ công: đặt
`skills.entries.coding-agent.enabled: true` trước khi cho agent thấy nó,
rồi đảm bảo một trong `claude`, `codex`, `opencode`, hoặc `pi` đã được cài đặt và
`skills.entries.coding-agent.enabled: true` trước khi hiển thị skill đó cho agent,
rồi đảm bảo một trong các CLI `claude`, `codex`, `opencode`, hoặc `pi` đã được cài đặt và
xác thực cho CLI riêng của nó.
</ParamField>
<ParamField path="apiKey" type='string | { source, provider, id }'>
Tiện ích cho các skill khai báo `metadata.openclaw.primaryEnv`. Hỗ trợ văn bản thuần hoặc SecretRef.
</ParamField>
<ParamField path="env" type="Record<string, string>">
Chỉ được chèn nếu biến chưa được đặt trong process.
Chỉ được chèn nếu biến chưa được đặt trong tiến trình.
</ParamField>
<ParamField path="config" type="object">
Túi tùy chọn cho các trường tùy chỉnh theo từng skill. Khóa tùy chỉnh phải nằm ở đây.
Túi tùy chọn cho các trường tùy chỉnh theo từng skill. Các khóa tùy chỉnh phải nằm ở đây.
</ParamField>
<ParamField path="allowBundled" type="string[]">
Danh sách cho phép tùy chọn chỉ dành cho skill **đi kèm**. Nếu được đặt, chỉ các skill đi kèm trong danh sách mới đủ điều kiện (skill được quản lý/workspace không bị ảnh hưởng).
Danh sách cho phép tùy chọn chỉ dành cho các skill **đi kèm**. Nếu được đặt, chỉ các skill đi kèm trong danh sách mới đủ điều kiện (không ảnh hưởng đến skill được quản lý/không gian làm việc).
</ParamField>
Nếu tên skill chứa dấu gạch nối, hãy đặt khóa trong dấu ngoặc kép (JSON5 cho phép
khóa có ngoặc kép). Khóa cấu hình mặc định khớp với **tên skill** — nếu một skill
khóa được đặt trong dấu ngoặc kép). Các khóa cấu hình mặc định khớp với **tên skill** — nếu một skill
định nghĩa `metadata.openclaw.skillKey`, hãy dùng khóa đó trong `skills.entries`.
<Note>
Để tạo/chỉnh sửa ảnh có sẵn trong OpenClaw, dùng công cụ lõi
Để tạo/chỉnh sửa ảnh stock bên trong OpenClaw, hãy dùng công cụ lõi
`image_generate` với `agents.defaults.imageGenerationModel` thay vì
một skill đi kèm. Các ví dụ skill ở đây dành cho quy trình tùy chỉnh hoặc bên thứ ba.
Để phân tích ảnh gốc, dùng công cụ `image` với
một skill đi kèm. Các ví dụ về skill ở đây dành cho quy trình tùy chỉnh hoặc bên thứ ba.
Để phân tích ảnh gốc, hãy dùng công cụ `image` với
`agents.defaults.imageModel`. Nếu bạn chọn `openai/*`, `google/*`,
`fal/*`, hoặc một model ảnh dành riêng cho nhà cung cấp khác, hãy thêm cả khóa
auth/API của nhà cung cấp đó.
`fal/*`, hoặc một mô hình ảnh dành riêng cho nhà cung cấp khác, hãy thêm cả
khóa xác thực/API của nhà cung cấp đó.
</Note>
## Chèn môi trường
@ -375,36 +332,36 @@ Khi một lượt chạy agent bắt đầu, OpenClaw:
3. Xây dựng system prompt với các skill **đủ điều kiện**.
4. Khôi phục môi trường ban đầu sau khi lượt chạy kết thúc.
Việc chèn môi trường được **giới hạn trong lượt chạy agent**, không phải môi trường
shell toàn cục.
Việc chèn môi trường được **giới hạn trong lượt chạy agent**, không phải môi trường shell
toàn cục.
Đối với backend `claude-cli` đi kèm, OpenClaw cũng hiện thực hóa cùng
snapshot đủ điều kiện thành một Plugin Claude Code tạm thời và truyền nó bằng
`--plugin-dir`. Claude Code sau đó có thể dùng trình phân giải skill gốc của nó trong khi
OpenClaw vẫn sở hữu thứ tự ưu tiên, danh sách cho phép theo từng agent, gating, và
việc chèn env/khóa API `skills.entries.*`. Các backend CLI khác chỉ dùng
snapshot đủ điều kiện dưới dạng một plugin Claude Code tạm thời và truyền nó bằng
`--plugin-dir`. Claude Code sau đó có thể dùng bộ phân giải skill gốc của nó trong khi
OpenClaw vẫn sở hữu thứ tự ưu tiên, danh sách cho phép theo agent, gating, và
việc chèn khóa env/API `skills.entries.*`. Các backend CLI khác chỉ dùng
danh mục prompt.
## Snapshot và làm mới
OpenClaw snapshot các skill đủ điều kiện **khi một phiên bắt đầu**
tái sử dụng danh sách đó cho các lượt tiếp theo trong cùng phiên. Thay đổi đối với
skill hoặc cấu hình có hiệu lực ở phiên mới tiếp theo.
OpenClaw chụp snapshot các skill đủ điều kiện **khi một phiên bắt đầu**
tái sử dụng danh sách đó cho các lượt tiếp theo trong cùng phiên. Các thay đổi đối với
skill hoặc cấu hình có hiệu lực ở phiên mới kế tiếp.
Skills có thể làm mới giữa phiên trong hai trường hợp:
- Trình theo dõi Skills được bật.
- Một node từ xa mới đủ điều kiện xuất hiện.
- Trình theo dõi skills được bật.
- Một remote node đủ điều kiện mới xuất hiện.
Hãy xem đây **hot reload**: danh sách đã làm mới được sử dụng ở
lượt agent tiếp theo. Nếu danh sách cho phép skill hiệu lực của agent thay đổi cho
Hãy xem đây như một **hot reload**: danh sách đã làm mới được dùng ở
lượt agent kế tiếp. Nếu danh sách cho phép skill hiệu dụng của agent thay đổi cho
phiên đó, OpenClaw làm mới snapshot để các skill hiển thị luôn khớp
với agent hiện tại.
### Trình theo dõi Skills
Theo mặc định, OpenClaw theo dõi các thư mục skill và tăng snapshot Skills
khi tệp `SKILL.md` thay đổi. Cấu hình trong `skills.load`:
Theo mặc định, OpenClaw theo dõi các thư mục skill và tăng snapshot skills
khi các tệp `SKILL.md` thay đổi. Cấu hình trong `skills.load`:
```json5
{
@ -417,27 +374,27 @@ khi tệp `SKILL.md` thay đổi. Cấu hình trong `skills.load`:
}
```
### Node macOS từ xa (Gateway Linux)
### Remote node macOS (gateway Linux)
Nếu Gateway chạy trên Linux nhưng một **node macOS** được kết nối với
`system.run` được cho phép (bảo mật phê duyệt Exec không đặt thành `deny`),
OpenClaw có thể xem các skill chỉ dành cho macOS là đủ điều kiện khi các
binary bắt buộc có mặt trên node đó. Agent nên thực thi các skill đó
OpenClaw có thể coi các skill chỉ dành cho macOS là đủ điều kiện khi các
binary bắt buộc có trên node đó. Agent nên thực thi các skill đó
qua công cụ `exec` với `host=node`.
Điều này dựa vào việc node báo cáo hỗ trợ lệnh của nó và vào một lần dò bin
qua `system.which` hoặc `system.run`. Node ngoại tuyến **không** làm cho
skill chỉ từ xa hiển thị. Nếu một node đã kết nối ngừng phản hồi các lần
dò bin, OpenClaw xóa các kết quả khớp bin đã lưu trong cache của nó để agent không còn thấy
Điều này dựa vào việc node báo cáo khả năng hỗ trợ lệnh của nó và vào một lần dò bin
qua `system.which` hoặc `system.run`. Các node ngoại tuyến **không** làm cho
skill chỉ chạy từ xa hiển thị. Nếu một node đã kết nối ngừng phản hồi các lần dò bin,
OpenClaw xóa các kết quả khớp bin đã lưu trong bộ nhớ đệm để agent không còn thấy
những skill hiện không thể chạy ở đó.
## Tác động token
Khi skill đủ điều kiện, OpenClaw chèn một danh sách XML nhỏ gọn các
skill có sẵn vào system prompt (qua `formatSkillsForPrompt` trong
Khi các skill đủ điều kiện, OpenClaw chèn một danh sách XML gọn về các
skill hiện có vào system prompt (qua `formatSkillsForPrompt` trong
`pi-coding-agent`). Chi phí là xác định:
- **Phần cố định cơ bản** (chỉ khi có ≥1 skill): 195 ký tự.
- **Chi phí cơ sở** (chỉ khi có ≥1 skill): 195 ký tự.
- **Mỗi skill:** 97 ký tự + độ dài của các giá trị `<name>`, `<description>`, và `<location>` đã escape XML.
Công thức (ký tự):
@ -446,18 +403,18 @@ Công thức (ký tự):
total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))
```
Escape XML mở rộng `& < > " '` thành entity (`&amp;`, `&lt;`, v.v.),
làm tăng độ dài. Số lượng token thay đổi theo tokenizer của model. Một ước tính kiểu
OpenAI sơ bộ là ~4 ký tự/token, nên **97 ký tự ≈ 24 token** cho mỗi
XML escaping mở rộng `& < > " '` thành entity (`&amp;`, `&lt;`, v.v.),
làm tăng độ dài. Số lượng token thay đổi theo tokenizer của mô hình. Một ước tính
kiểu OpenAI sơ bộ là ~4 ký tự/token, nên **97 ký tự ≈ 24 token** cho mỗi
skill cộng với độ dài trường thực tế của bạn.
## Vòng đời skill được quản lý
OpenClaw cung cấp một bộ skill cơ sở dưới dạng **skill đi kèm** cùng với
bản cài đặt (gói npm hoặc OpenClaw.app). `~/.openclaw/skills` tồn tại cho
các ghi đè cục bộ — ví dụ, ghim hoặc vá một skill mà không
thay đổi bản sao đi kèm. Skill workspace thuộc sở hữu người dùng và ghi đè
cả hai khi xung đột tên.
OpenClaw phát hành một bộ skill cơ sở dưới dạng **skill đi kèm** với bản
cài đặt (gói npm hoặc OpenClaw.app). `~/.openclaw/skills` tồn tại để
ghi đè cục bộ — ví dụ, ghim hoặc vá một skill mà không
thay đổi bản sao đi kèm. Skill trong không gian làm việc do người dùng sở hữu và ghi đè
cả hai khi xung đột tên.
## Tìm thêm skill?
@ -468,7 +425,7 @@ Duyệt [https://clawhub.ai](https://clawhub.ai). Schema cấu hình đầy đ
- [ClawHub](/vi/tools/clawhub) — registry skill công khai
- [Tạo skill](/vi/tools/creating-skills) — xây dựng skill tùy chỉnh
- [Plugins](/vi/tools/plugin) — tổng quan hệ thống Plugin
- [Plugins](/vi/tools/plugin) — tổng quan hệ thống plugin
- [Plugin Skill Workshop](/vi/plugins/skill-workshop) — tạo skill từ công việc của agent
- [Cấu hình Skills](/vi/tools/skills-config) — tài liệu tham khảo cấu hình skill
- [Lệnh slash](/vi/tools/slash-commands) — tất cả lệnh slash có sẵn
- [Lệnh slash](/vi/tools/slash-commands) — tất cả lệnh slash hiện