Plugin mở rộng OpenClaw với các khả năng mới: kênh, nhà cung cấp mô hình, agent harness, công cụ, Skills, giọng nói, phiên âm thời gian thực, giọng nói thời gian thực, hiểu phương tiện, tạo ảnh, tạo video, lấy nội dung web, tìm kiếm web và nhiều khả năng khác. Một số plugin là lõi (được phát hành cùng OpenClaw), số khác là bên ngoài. Hầu hết plugin bên ngoài được phát hành và khám phá thông qua ClawHub. Npm vẫn được hỗ trợ cho cài đặt trực tiếp và cho một nhóm tạm thời các gói plugin do OpenClaw sở hữu trong khi quá trình di chuyển đó hoàn tất.Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Bắt đầu nhanh
Để xem ví dụ cài đặt, liệt kê, gỡ cài đặt, cập nhật và phát hành có thể sao chép-dán, hãy xem Quản lý plugin.Khởi động lại Gateway
plugins.entries.\<id\>.config trong tệp cấu hình của bạn.Quản lý trực tiếp trong trò chuyện
Trong một Gateway đang chạy,
/plugins enable và /plugins disable chỉ dành
cho chủ sở hữu sẽ kích hoạt bộ nạp lại cấu hình Gateway. Gateway nạp lại các
bề mặt runtime của plugin trong tiến trình, và các lượt agent mới xây dựng
lại danh sách công cụ của chúng từ registry đã được làm mới. /plugins install
thay đổi mã nguồn plugin, vì vậy Gateway yêu cầu khởi động lại thay vì giả
vờ rằng tiến trình hiện tại có thể nạp lại an toàn các mô-đun đã được nhập.commands.plugins: true và dùng:
clawhub:<pkg> tường minh, npm:<pkg> tường minh, npm-pack:<path.tgz> tường
minh, git:<repo> tường minh, hoặc đặc tả gói trần thông qua npm.
Nếu cấu hình không hợp lệ, cài đặt thường sẽ thất bại đóng và chỉ bạn đến
openclaw doctor --fix. Ngoại lệ khôi phục duy nhất là một đường dẫn cài đặt lại
hẹp cho plugin đi kèm dành cho các plugin chọn tham gia
openclaw.install.allowInvalidConfigRecovery.
Trong quá trình khởi động Gateway, cấu hình plugin không hợp lệ sẽ thất bại đóng
như mọi cấu hình không hợp lệ khác. Chạy openclaw doctor --fix để cách ly cấu
hình plugin lỗi bằng cách tắt mục plugin đó và xóa payload cấu hình không hợp lệ
của nó; bản sao lưu cấu hình thông thường giữ lại các giá trị trước đó.
Khi cấu hình kênh tham chiếu một plugin không còn khám phá được nhưng cùng id
plugin cũ vẫn còn trong cấu hình plugin hoặc bản ghi cài đặt, quá trình khởi
động Gateway ghi cảnh báo và bỏ qua kênh đó thay vì chặn mọi kênh khác.
Chạy openclaw doctor --fix để xóa các mục kênh/plugin cũ; các khóa kênh không
xác định mà không có bằng chứng plugin cũ vẫn không vượt qua xác thực để lỗi gõ
nhầm vẫn hiển thị.
Nếu đặt plugins.enabled: false, các tham chiếu plugin cũ được coi là bất hoạt:
quá trình khởi động Gateway bỏ qua công việc khám phá/tải plugin và
openclaw doctor giữ nguyên cấu hình plugin đã tắt thay vì tự động xóa nó. Bật
lại plugin trước khi chạy dọn dẹp doctor nếu bạn muốn xóa các id plugin cũ.
Việc cài đặt phụ thuộc plugin chỉ diễn ra trong các luồng cài đặt/cập nhật tường
minh hoặc sửa chữa bằng doctor. Khởi động Gateway, nạp lại cấu hình và kiểm tra
runtime không chạy trình quản lý gói hoặc sửa cây phụ thuộc. Plugin cục bộ phải
đã cài đặt sẵn các phụ thuộc của chúng, còn plugin npm, git và ClawHub được cài
đặt dưới các gốc plugin do OpenClaw quản lý. Phụ thuộc npm có thể được hoist
trong gốc npm do OpenClaw quản lý; cài đặt/cập nhật quét gốc được quản lý đó
trước khi tin cậy, và gỡ cài đặt xóa các gói do npm quản lý thông qua npm.
Plugin bên ngoài và đường dẫn tải tùy chỉnh vẫn phải được cài đặt thông qua
openclaw plugins install.
Dùng openclaw plugins list --json để xem dependencyStatus tĩnh cho từng
plugin hiển thị mà không nhập mã runtime hoặc sửa phụ thuộc.
Xem Phân giải phụ thuộc plugin để biết vòng
đời tại thời điểm cài đặt.
Quyền sở hữu đường dẫn plugin bị chặn
Nếu chẩn đoán plugin báoblocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)
và xác thực cấu hình tiếp theo bằng plugin present but blocked, OpenClaw đã tìm
thấy các tệp plugin thuộc sở hữu của một người dùng Unix khác với tiến trình
đang tải chúng. Giữ nguyên cấu hình plugin; sửa quyền sở hữu hệ thống tệp hoặc
chạy OpenClaw bằng cùng người dùng sở hữu thư mục trạng thái.
Đối với cài đặt Docker, image chính thức chạy dưới dạng node (uid 1000), vì
vậy các thư mục cấu hình và workspace OpenClaw được bind-mount từ host thường nên
thuộc sở hữu của uid 1000:
openclaw doctor --fix hoặc
openclaw plugins registry --refresh để registry plugin đã lưu khớp với các tệp
đã được sửa.
Đối với cài đặt npm, các selector có thể thay đổi như latest hoặc dist-tag
được phân giải trước khi cài đặt rồi được ghim vào đúng phiên bản đã xác minh
trong gốc npm do OpenClaw quản lý. Sau khi npm hoàn tất, OpenClaw xác minh mục
package-lock.json đã cài đặt vẫn khớp với phiên bản đã phân giải và integrity.
Nếu npm ghi metadata gói khác, quá trình cài đặt thất bại và gói được quản lý sẽ
được rollback thay vì chấp nhận một artifact plugin khác.
Các gốc npm được quản lý cũng kế thừa npm overrides ở cấp gói của OpenClaw, vì
vậy các ghim bảo mật bảo vệ host đã đóng gói cũng áp dụng cho phụ thuộc plugin
bên ngoài được hoist.
Các checkout nguồn là pnpm workspace. Nếu bạn clone OpenClaw để sửa các plugin
đi kèm, hãy chạy pnpm install; sau đó OpenClaw tải plugin đi kèm từ
extensions/<id> để các chỉnh sửa và phụ thuộc cục bộ theo gói được dùng trực
tiếp. Cài đặt gốc npm thuần dành cho OpenClaw đã đóng gói, không dành cho phát
triển từ checkout nguồn.
Loại plugin
OpenClaw nhận diện hai định dạng plugin:| Định dạng | Cách hoạt động | Ví dụ |
|---|---|---|
| Native | openclaw.plugin.json + mô-đun runtime; thực thi trong tiến trình | Plugin chính thức, gói npm cộng đồng |
| Bundle | Bố cục tương thích Codex/Claude/Cursor; ánh xạ tới tính năng OpenClaw | .codex-plugin/, .claude-plugin/, .cursor-plugin/ |
openclaw plugins list. Xem Plugin Bundles để biết chi tiết về bundle.
Nếu bạn đang viết plugin native, hãy bắt đầu với Xây dựng Plugin
và Tổng quan Plugin SDK.
Điểm vào gói
Các gói npm plugin native phải khai báoopenclaw.extensions trong package.json.
Mỗi mục phải nằm bên trong thư mục gói và phân giải đến một tệp runtime có thể
đọc được, hoặc đến một tệp nguồn TypeScript với peer JavaScript đã build được suy
luận, chẳng hạn từ src/index.ts đến dist/index.js.
Các cài đặt đã đóng gói phải phát hành output runtime JavaScript đó. Fallback
nguồn TypeScript dành cho checkout nguồn và đường dẫn phát triển cục bộ, không
dành cho các gói npm được cài vào gốc plugin do OpenClaw quản lý.
Các thư mục chưa được theo dõi được thả vào gốc extension toàn cục được coi là
checkout nguồn cục bộ và có thể tải trực tiếp các entry TypeScript. Các thư mục
vẫn được đặt tên bởi bản ghi cài đặt, bao gồm installPath hoặc sourcePath,
vẫn được quản lý và giữ yêu cầu output đã biên dịch ngay cả khi quét toàn cục
nhìn thấy chúng. Nếu bạn cố ý chuyển một cài đặt được quản lý thành checkout cục
bộ chưa được theo dõi, trước tiên hãy xóa bản ghi cài đặt cũ bằng gỡ cài đặt hoặc
dọn dẹp doctor.
Nếu cảnh báo gói được quản lý nói rằng nó requires compiled runtime output for TypeScript entry ..., gói đã được phát hành mà không có các tệp JavaScript
OpenClaw cần ở runtime. Đó là vấn đề đóng gói plugin, không phải vấn đề cấu hình
cục bộ. Cập nhật hoặc cài đặt lại plugin sau khi nhà phát hành phát hành lại
JavaScript đã biên dịch, hoặc tắt/gỡ cài đặt plugin đó cho đến khi có gói đã sửa.
Dùng openclaw.runtimeExtensions khi các tệp runtime đã phát hành không nằm ở
cùng đường dẫn với các entry nguồn. Khi có mặt, runtimeExtensions phải chứa
đúng một mục cho mỗi mục extensions. Danh sách không khớp làm cài đặt và khám
phá plugin thất bại thay vì âm thầm fallback về đường dẫn nguồn. Nếu bạn cũng
phát hành openclaw.setupEntry, hãy dùng openclaw.runtimeSetupEntry cho peer
JavaScript đã build của nó; tệp đó là bắt buộc khi được khai báo.
Plugin chính thức
Các gói npm do OpenClaw sở hữu trong quá trình di chuyển
ClawHub là đường dẫn phân phối chính cho hầu hết plugin. Các bản phát hành OpenClaw đã đóng gói hiện tại đã gói kèm nhiều plugin chính thức, nên chúng không cần cài đặt npm riêng trong thiết lập thông thường. Cho đến khi mọi plugin do OpenClaw sở hữu đã chuyển sang ClawHub, OpenClaw vẫn phát hành một số gói plugin@openclaw/* trên npm cho các cài đặt cũ/tùy chỉnh và luồng npm trực tiếp.
Nếu npm báo một gói plugin @openclaw/* là deprecated, phiên bản gói đó đến từ
một nhánh gói bên ngoài cũ hơn. Dùng plugin đi kèm từ OpenClaw hiện tại hoặc
checkout cục bộ cho đến khi có gói npm mới hơn được phát hành.
| Plugin | Gói | Tài liệu |
|---|---|---|
| Discord | @openclaw/discord | Discord |
| Feishu | @openclaw/feishu | Feishu |
| Matrix | @openclaw/matrix | Matrix |
| Mattermost | @openclaw/mattermost | Mattermost |
| Microsoft Teams | @openclaw/msteams | Microsoft Teams |
| Nextcloud Talk | @openclaw/nextcloud-talk | Nextcloud Talk |
| Nostr | @openclaw/nostr | Nostr |
| Synology Chat | @openclaw/synology-chat | Synology Chat |
| Tlon | @openclaw/tlon | Tlon |
@openclaw/whatsapp | ||
| Zalo | @openclaw/zalo | Zalo |
| Zalo Personal | @openclaw/zalouser | Zalo Personal |
Lõi (phát hành cùng OpenClaw)
Nhà cung cấp mô hình (được bật theo mặc định)
Nhà cung cấp mô hình (được bật theo mặc định)
anthropic, byteplus, cloudflare-ai-gateway, github-copilot, google,
huggingface, kilocode, kimi-coding, minimax, mistral, qwen,
moonshot, nvidia, openai, opencode, opencode-go, openrouter,
qianfan, synthetic, together, venice,
vercel-ai-gateway, volcengine, xiaomi, zaiPlugin bộ nhớ
Plugin bộ nhớ
memory-core- tìm kiếm bộ nhớ đi kèm (mặc định quaplugins.slots.memory)memory-lancedb- bộ nhớ dài hạn dựa trên LanceDB với tự động nhớ lại/ghi nhận (đặtplugins.slots.memory = "memory-lancedb")
Nhà cung cấp giọng nói (được bật theo mặc định)
Nhà cung cấp giọng nói (được bật theo mặc định)
elevenlabs, microsoftKhác
Khác
browser- Plugin trình duyệt đi kèm cho công cụ trình duyệt, CLIopenclaw browser, phương thức Gatewaybrowser.request, runtime trình duyệt và dịch vụ điều khiển trình duyệt mặc định (được bật theo mặc định; hãy tắt trước khi thay thế)copilot-proxy- cầu nối VS Code Copilot Proxy (bị tắt theo mặc định)
Cấu hình
| Trường | Mô tả |
|---|---|
enabled | Công tắc chính (mặc định: true) |
allow | Danh sách cho phép Plugin (không bắt buộc) |
bundledDiscovery | Chế độ khám phá Plugin đi kèm (mặc định là allowlist) |
deny | Danh sách chặn Plugin (không bắt buộc; chặn được ưu tiên) |
load.paths | Tệp/thư mục Plugin bổ sung |
slots | Bộ chọn khe độc quyền (ví dụ: memory, contextEngine) |
entries.\<id\> | Công tắc + cấu hình theo từng Plugin |
plugins.allow có tính độc quyền. Khi nó không trống, chỉ các Plugin được liệt kê mới có thể tải
hoặc hiển thị công cụ, ngay cả khi tools.allow chứa "*" hoặc một tên công cụ
cụ thể do Plugin sở hữu. Nếu danh sách cho phép công cụ tham chiếu đến công cụ của Plugin, hãy thêm id Plugin sở hữu
vào plugins.allow hoặc xóa plugins.allow; openclaw doctor sẽ cảnh báo về
dạng cấu hình này.
plugins.bundledDiscovery mặc định là "allowlist" cho cấu hình mới, nên một
kho plugins.allow hạn chế cũng chặn các Plugin nhà cung cấp đi kèm bị bỏ qua,
bao gồm cả khám phá nhà cung cấp tìm kiếm web runtime. Doctor đóng dấu các
cấu hình danh sách cho phép hạn chế cũ bằng "compat" trong quá trình di chuyển để các bản nâng cấp giữ
hành vi nhà cung cấp đi kèm cũ cho đến khi người vận hành chọn chế độ nghiêm ngặt hơn.
plugins.allow trống vẫn được xem là chưa đặt/mở.
Các thay đổi cấu hình được thực hiện qua /plugins enable hoặc /plugins disable sẽ kích hoạt
tải lại Plugin Gateway trong tiến trình. Các lượt agent mới dựng lại danh sách công cụ của chúng từ
registry Plugin đã được làm mới. Các thao tác thay đổi nguồn như cài đặt,
cập nhật và gỡ cài đặt vẫn khởi động lại tiến trình Gateway vì các module
Plugin đã được import không thể được thay thế an toàn tại chỗ.
openclaw plugins list là ảnh chụp nhanh registry/cấu hình Plugin cục bộ. Một
Plugin enabled ở đó nghĩa là registry đã lưu và cấu hình hiện tại cho phép
Plugin tham gia. Điều đó không chứng minh rằng một Gateway từ xa đang chạy
đã tải lại hoặc khởi động lại vào cùng mã Plugin. Trên các thiết lập VPS/container
có tiến trình wrapper, hãy gửi lệnh khởi động lại hoặc ghi kích hoạt tải lại đến đúng
tiến trình openclaw gateway run, hoặc dùng openclaw gateway restart với
Gateway đang chạy khi việc tải lại báo lỗi.
Trạng thái Plugin: bị tắt so với thiếu so với không hợp lệ
Trạng thái Plugin: bị tắt so với thiếu so với không hợp lệ
- Bị tắt: Plugin tồn tại nhưng quy tắc bật đã tắt nó. Cấu hình được giữ nguyên.
- Thiếu: cấu hình tham chiếu đến một id Plugin mà quá trình khám phá không tìm thấy.
- Không hợp lệ: Plugin tồn tại nhưng cấu hình của nó không khớp với schema đã khai báo. Khởi động Gateway chỉ bỏ qua Plugin đó;
openclaw doctor --fixcó thể cách ly mục không hợp lệ bằng cách tắt nó và xóa payload cấu hình của nó.
Khám phá và thứ tự ưu tiên
OpenClaw quét Plugin theo thứ tự này (kết quả khớp đầu tiên được dùng):Đường dẫn cấu hình
plugins.load.paths - đường dẫn tệp hoặc thư mục rõ ràng. Các đường dẫn trỏ
ngược về thư mục Plugin đi kèm đã đóng gói của chính OpenClaw sẽ bị bỏ qua;
chạy openclaw doctor --fix để xóa các bí danh cũ đó.Plugin trong workspace
\<workspace\>/.openclaw/<plugin-root>/*.ts và \<workspace\>/.openclaw/<plugin-root>/*/index.ts.dist/extensions đã biên dịch. Nếu một thư mục nguồn Plugin đi kèm được
bind-mount đè lên đường dẫn nguồn đóng gói tương ứng, ví dụ
/app/extensions/synology-chat, OpenClaw xem thư mục nguồn đã mount đó
như một lớp phủ nguồn đi kèm và khám phá nó trước bundle
/app/dist/extensions/synology-chat đã đóng gói. Điều này giữ cho các vòng lặp container
của maintainer hoạt động mà không cần chuyển mọi Plugin đi kèm về nguồn TypeScript.
Đặt OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS=1 để buộc dùng các bundle dist đã đóng gói
ngay cả khi có mount lớp phủ nguồn.
Quy tắc bật
plugins.enabled: falsetắt tất cả Plugin và bỏ qua công việc khám phá/tải Pluginplugins.denyluôn thắng allowplugins.entries.\<id\>.enabled: falsetắt Plugin đó- Plugin có nguồn gốc từ workspace bị tắt theo mặc định (phải được bật rõ ràng)
- Plugin đi kèm tuân theo tập mặc định bật sẵn tích hợp trừ khi bị ghi đè
- Các khe độc quyền có thể buộc bật Plugin được chọn cho khe đó
- Một số Plugin đi kèm dạng chọn tham gia được bật tự động khi cấu hình nêu tên một bề mặt do Plugin sở hữu, chẳng hạn như ref mô hình nhà cung cấp, cấu hình kênh hoặc runtime harness
- Cấu hình Plugin cũ được giữ lại trong khi
plugins.enabled: falseđang hoạt động; bật lại Plugin trước khi chạy dọn dẹp doctor nếu bạn muốn xóa các id cũ - Các tuyến Codex thuộc họ OpenAI giữ ranh giới Plugin riêng:
openai-codex/*thuộc về Plugin OpenAI, trong khi Plugin app-server Codex đi kèm được chọn bởi các ref agentopenai/*chuẩn,agentRuntime.id: "codex"dạng provider/model rõ ràng, hoặc các ref mô hìnhcodex/*cũ
Xử lý sự cố hook runtime
Nếu một Plugin xuất hiện trongplugins list nhưng hiệu ứng phụ hoặc hook
register(api) không chạy trong lưu lượng chat trực tiếp, hãy kiểm tra các mục này trước:
- Chạy
openclaw gateway status --deep --require-rpcvà xác nhận URL Gateway, profile, đường dẫn cấu hình và tiến trình đang hoạt động là những thứ bạn đang chỉnh sửa. - Khởi động lại Gateway trực tiếp sau các thay đổi cài đặt/cấu hình/mã Plugin. Trong các container
wrapper, PID 1 có thể chỉ là supervisor; hãy khởi động lại hoặc gửi tín hiệu cho tiến trình con
openclaw gateway run. - Dùng
openclaw plugins inspect <id> --runtime --jsonđể xác nhận đăng ký hook và chẩn đoán. Các hook hội thoại không đi kèm nhưbefore_model_resolve,before_agent_reply,before_agent_run,llm_input,llm_output,before_agent_finalizevàagent_endcầnplugins.entries.<id>.hooks.allowConversationAccess=true. - Với chuyển đổi mô hình, ưu tiên
before_model_resolve. Nó chạy trước quá trình phân giải mô hình cho các lượt agent;llm_outputchỉ chạy sau khi một lần thử mô hình tạo ra đầu ra assistant. - Để chứng minh mô hình phiên hiệu dụng, hãy dùng
openclaw sessionshoặc các bề mặt phiên/trạng thái Gateway và, khi gỡ lỗi payload nhà cung cấp, khởi động Gateway với--raw-stream --raw-stream-path <path>.
Thiết lập công cụ Plugin chậm
Nếu các lượt agent có vẻ bị treo khi chuẩn bị công cụ, hãy bật ghi log trace và kiểm tra các dòng thời gian factory công cụ Plugin:Quyền sở hữu kênh hoặc công cụ trùng lặp
Triệu chứng:channel already registered: <channel-id> (<plugin-id>)channel setup already registered: <channel-id> (<plugin-id>)plugin tool name conflict (<plugin-id>): <tool-name>
- Chạy
openclaw plugins list --enabled --verboseđể xem mọi Plugin đã bật và nguồn gốc. - Chạy
openclaw plugins inspect <id> --runtime --jsoncho từng Plugin nghi ngờ và so sánhchannels,channelConfigs,toolsvà chẩn đoán. - Chạy
openclaw plugins registry --refreshsau khi cài đặt hoặc gỡ bỏ các gói Plugin để metadata đã lưu phản ánh bản cài đặt hiện tại. - Khởi động lại Gateway sau các thay đổi cài đặt, registry hoặc cấu hình.
- Nếu một Plugin cố ý thay thế Plugin khác cho cùng id kênh, Plugin
được ưu tiên nên khai báo
channelConfigs.<channel-id>.preferOvervới id Plugin có độ ưu tiên thấp hơn. Xem /plugins/manifest#replacing-another-channel-plugin. - Nếu trùng lặp là vô tình, hãy tắt một bên bằng
plugins.entries.<plugin-id>.enabled: falsehoặc gỡ bản cài đặt Plugin cũ. - Nếu bạn đã bật rõ ràng cả hai Plugin, OpenClaw giữ yêu cầu đó và báo cáo xung đột. Chọn một chủ sở hữu cho kênh hoặc đổi tên các công cụ do Plugin sở hữu để bề mặt runtime không mơ hồ.
Khe Plugin (danh mục độc quyền)
Một số danh mục là độc quyền (chỉ một mục hoạt động tại một thời điểm):| Khe | Nội dung kiểm soát | Mặc định |
|---|---|---|
memory | Plugin Active memory | memory-core |
contextEngine | Công cụ ngữ cảnh đang hoạt động | legacy (tích hợp) |
Tham chiếu CLI
openclaw plugins enable <id>.
--force ghi đè tại chỗ lên một Plugin đã cài đặt hoặc gói hook hiện có. Dùng
openclaw plugins update <id-or-npm-spec> cho các nâng cấp thường lệ của Plugin npm
được theo dõi. Tùy chọn này không được hỗ trợ với --link, vì tùy chọn đó dùng lại đường dẫn nguồn thay vì
sao chép đè lên mục tiêu cài đặt được quản lý.
Khi plugins.allow đã được đặt, openclaw plugins install thêm id
Plugin đã cài đặt vào allowlist đó trước khi bật Plugin. Nếu cùng id Plugin
có trong plugins.deny, quá trình cài đặt sẽ xóa mục deny đã lỗi thời đó để
lần cài đặt rõ ràng có thể được tải ngay sau khi khởi động lại.
OpenClaw giữ một registry Plugin cục bộ được lưu bền vững làm mô hình đọc nguội cho
kho Plugin, quyền sở hữu đóng góp, và lập kế hoạch khởi động. Các luồng cài đặt, cập nhật,
gỡ cài đặt, bật, và tắt sẽ làm mới registry đó sau khi thay đổi trạng thái Plugin. Cùng tệp
plugins/installs.json giữ siêu dữ liệu cài đặt bền vững trong
installRecords cấp cao nhất và siêu dữ liệu manifest có thể dựng lại trong plugins. Nếu
registry bị thiếu, lỗi thời, hoặc không hợp lệ, openclaw plugins registry --refresh dựng lại góc nhìn manifest của nó từ bản ghi cài đặt, chính sách cấu hình, và
siêu dữ liệu manifest/package mà không tải các module runtime của Plugin.
Ở chế độ Nix (OPENCLAW_NIX_MODE=1), các thao tác thay đổi vòng đời Plugin bị tắt.
Thay vào đó, quản lý lựa chọn package Plugin và cấu hình thông qua nguồn Nix cho bản
cài đặt; với nix-openclaw, hãy bắt đầu bằng
Khởi đầu nhanh theo hướng agent trước.
openclaw plugins update <id-or-npm-spec> áp dụng cho các bản cài đặt được theo dõi. Việc truyền
một spec package npm có dist-tag hoặc phiên bản chính xác sẽ phân giải tên package
về bản ghi Plugin được theo dõi và ghi lại spec mới cho các lần cập nhật sau.
Việc truyền tên package không có phiên bản sẽ chuyển một bản cài đặt được ghim chính xác về lại
dòng phát hành mặc định của registry. Nếu Plugin npm đã cài đặt đã khớp
với phiên bản được phân giải và danh tính artifact đã ghi, OpenClaw bỏ qua cập nhật
mà không tải xuống, cài đặt lại, hoặc ghi lại cấu hình.
Khi openclaw update chạy trên kênh beta, các bản ghi Plugin npm và ClawHub
theo dòng mặc định sẽ thử @beta trước và quay về mặc định/latest khi không có bản phát hành
beta của Plugin. Các phiên bản chính xác và tag rõ ràng vẫn được ghim.
--pin chỉ dành cho npm. Tùy chọn này không được hỗ trợ với --marketplace, vì
các bản cài đặt marketplace lưu bền vững siêu dữ liệu nguồn marketplace thay vì một spec npm.
--dangerously-force-unsafe-install là ghi đè phá kính cho các kết quả dương tính giả
từ bộ quét mã nguy hiểm tích hợp. Nó cho phép các bản cài đặt Plugin
và cập nhật Plugin tiếp tục sau các phát hiện critical tích hợp, nhưng vẫn
không bỏ qua các chặn chính sách before_install của Plugin hoặc chặn do lỗi quét.
Các lần quét cài đặt bỏ qua các tệp và thư mục kiểm thử phổ biến như tests/,
__tests__/, *.test.*, và *.spec.* để tránh chặn mock kiểm thử đã đóng gói;
các entrypoint runtime Plugin đã khai báo vẫn được quét ngay cả khi chúng dùng một trong
các tên đó.
Cờ CLI này chỉ áp dụng cho các luồng cài đặt/cập nhật Plugin. Các bản cài đặt phụ thuộc
Skills được Gateway hậu thuẫn dùng ghi đè yêu cầu dangerouslyForceUnsafeInstall
tương ứng, trong khi openclaw skills install vẫn là luồng tải xuống/cài đặt Skills
ClawHub riêng biệt.
Nếu một Plugin bạn đã xuất bản trên ClawHub bị ẩn hoặc bị chặn bởi một lần quét, hãy mở
dashboard ClawHub hoặc chạy clawhub package rescan <name> để yêu cầu ClawHub kiểm tra
lại. --dangerously-force-unsafe-install chỉ ảnh hưởng đến các bản cài đặt trên máy của bạn;
nó không yêu cầu ClawHub quét lại Plugin hoặc công khai một bản phát hành bị chặn.
Các bundle tương thích tham gia cùng luồng liệt kê/kiểm tra/bật/tắt Plugin.
Hỗ trợ runtime hiện tại bao gồm Skills trong bundle, command-skills của Claude,
mặc định settings.json của Claude, mặc định lspServers được khai báo trong manifest và
.lsp.json của Claude, command-skills của Cursor, và các thư mục hook
Codex tương thích.
openclaw plugins inspect <id> cũng báo cáo các khả năng bundle được phát hiện cùng
các mục server MCP và LSP được hỗ trợ hoặc không được hỗ trợ cho Plugin dựa trên bundle.
Nguồn marketplace có thể là tên known-marketplace của Claude từ
~/.claude/plugins/known_marketplaces.json, một root marketplace cục bộ hoặc
đường dẫn marketplace.json, dạng viết tắt GitHub như owner/repo, URL repo
GitHub, hoặc URL git. Với marketplace từ xa, các mục Plugin phải nằm bên trong
repo marketplace đã clone và chỉ dùng nguồn đường dẫn tương đối.
Xem tham chiếu CLI openclaw plugins để biết đầy đủ chi tiết.
Tổng quan API Plugin
Plugin native xuất một đối tượng entry cung cấpregister(api). Các
Plugin cũ hơn vẫn có thể dùng activate(api) làm alias cũ, nhưng Plugin mới nên
dùng register.
register(api) trong quá trình kích hoạt
Plugin. Loader vẫn quay về activate(api) cho các Plugin cũ hơn,
nhưng Plugin đi kèm và Plugin bên ngoài mới nên xem register là
hợp đồng công khai.
api.registrationMode cho một Plugin biết vì sao entry của nó đang được tải:
| Chế độ | Ý nghĩa |
|---|---|
full | Kích hoạt runtime. Đăng ký công cụ, hook, dịch vụ, lệnh, route, và các tác dụng phụ live khác. |
discovery | Khám phá khả năng chỉ đọc. Đăng ký nhà cung cấp và siêu dữ liệu; mã entry Plugin đáng tin cậy có thể tải, nhưng bỏ qua tác dụng phụ live. |
setup-only | Tải siêu dữ liệu thiết lập kênh thông qua một entry thiết lập nhẹ. |
setup-runtime | Tải thiết lập kênh cũng cần entry runtime. |
cli-metadata | Chỉ thu thập siêu dữ liệu lệnh CLI. |
api.registrationMode === "full".
Các lần tải khám phá được cache tách biệt khỏi các lần tải kích hoạt và không thay thế
registry Gateway đang chạy. Khám phá là không kích hoạt, không phải không import:
OpenClaw có thể đánh giá entry Plugin đáng tin cậy hoặc module Plugin kênh để xây dựng
snapshot. Giữ phần top level của module nhẹ và không có tác dụng phụ, đồng thời chuyển
client mạng, subprocess, listener, lượt đọc thông tin xác thực, và khởi động dịch vụ
sau các đường dẫn full-runtime.
Các phương thức đăng ký phổ biến:
| Phương thức | Nội dung đăng ký |
|---|---|
registerProvider | Nhà cung cấp mô hình (LLM) |
registerChannel | Kênh chat |
registerTool | Công cụ agent |
registerHook / on(...) | Hook vòng đời |
registerSpeechProvider | Text-to-speech / STT |
registerRealtimeTranscriptionProvider | STT phát trực tuyến |
registerRealtimeVoiceProvider | Giọng nói realtime song công |
registerMediaUnderstandingProvider | Phân tích hình ảnh/âm thanh |
registerImageGenerationProvider | Tạo hình ảnh |
registerMusicGenerationProvider | Tạo nhạc |
registerVideoGenerationProvider | Tạo video |
registerWebFetchProvider | Nhà cung cấp web fetch / scrape |
registerWebSearchProvider | Tìm kiếm web |
registerHttpRoute | Endpoint HTTP |
registerCommand / registerCli | Lệnh CLI |
registerContextEngine | Công cụ ngữ cảnh |
registerService | Dịch vụ nền |
before_tool_call:{ block: true }là kết thúc; các handler có độ ưu tiên thấp hơn bị bỏ qua.before_tool_call:{ block: false }là no-op và không xóa một block trước đó.before_install:{ block: true }là kết thúc; các handler có độ ưu tiên thấp hơn bị bỏ qua.before_install:{ block: false }là no-op và không xóa một block trước đó.message_sending:{ cancel: true }là kết thúc; các handler có độ ưu tiên thấp hơn bị bỏ qua.message_sending:{ cancel: false }là no-op và không xóa một cancel trước đó.
before_tool_call, quan sát kết quả thông qua after_tool_call, và tham gia phê duyệt PermissionRequest của Codex. Cầu nối hiện chưa viết lại các đối số công cụ gốc của Codex. Ranh giới hỗ trợ runtime Codex chính xác nằm trong
hợp đồng hỗ trợ Codex harness v1.
Để biết đầy đủ hành vi hook có kiểu, hãy xem tổng quan SDK.
Liên quan
- Xây dựng Plugin - tạo Plugin của riêng bạn
- Gói Plugin - khả năng tương thích gói Codex/Claude/Cursor
- Manifest Plugin - schema manifest
- Đăng ký công cụ - thêm công cụ agent trong một Plugin
- Nội bộ Plugin - mô hình capability và pipeline tải
- ClawHub - khám phá Plugin bên thứ ba