Chuyển đến nội dung chính

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

OpenClaw đã chuyển từ một lớp tương thích ngược rộng sang kiến trúc Plugin hiện đại với các import tập trung, có tài liệu. Nếu Plugin của bạn được xây dựng trước kiến trúc mới, hướng dẫn này giúp bạn di chuyển.

Những gì đang thay đổi

Hệ thống Plugin cũ cung cấp hai bề mặt rất rộng mở, cho phép Plugin import bất kỳ thứ gì chúng cần từ một điểm vào duy nhất:
  • openclaw/plugin-sdk/compat — một import duy nhất re-export hàng chục helper. Nó được giới thiệu để giữ cho các Plugin cũ dựa trên hook tiếp tục hoạt động trong khi kiến trúc Plugin mới đang được xây dựng.
  • openclaw/plugin-sdk/infra-runtime — một barrel helper runtime rộng, trộn lẫn sự kiện hệ thống, trạng thái heartbeat, hàng đợi phân phối, helper fetch/proxy, helper tệp, kiểu phê duyệt và các tiện ích không liên quan.
  • openclaw/plugin-sdk/config-runtime — một barrel tương thích cấu hình rộng vẫn còn mang các helper tải/ghi trực tiếp đã lỗi thời trong thời gian di chuyển.
  • openclaw/extension-api — một cầu nối cho Plugin quyền truy cập trực tiếp vào các helper phía host như trình chạy tác tử nhúng.
  • api.registerEmbeddedExtensionFactory(...) — một hook extension đóng gói chỉ dành cho Pi đã bị loại bỏ, có thể quan sát các sự kiện embedded-runner như tool_result.
Các bề mặt import rộng hiện đã bị ngừng khuyến nghị. Chúng vẫn hoạt động ở runtime, nhưng Plugin mới không được sử dụng chúng, và các Plugin hiện có nên di chuyển trước khi bản phát hành major tiếp theo loại bỏ chúng. API đăng ký embedded extension factory chỉ dành cho Pi đã bị loại bỏ; hãy dùng middleware tool-result thay thế. OpenClaw không loại bỏ hoặc diễn giải lại hành vi Plugin đã được ghi tài liệu trong cùng thay đổi giới thiệu phần thay thế. Các thay đổi phá vỡ hợp đồng trước tiên phải đi qua adapter tương thích, chẩn đoán, tài liệu và thời gian ngừng khuyến nghị. Điều đó áp dụng cho import SDK, trường manifest, API thiết lập, hook và hành vi đăng ký runtime.
Lớp tương thích ngược sẽ bị loại bỏ trong một bản phát hành major trong tương lai. Các Plugin vẫn import từ những bề mặt này sẽ bị hỏng khi điều đó xảy ra. Các đăng ký embedded extension factory chỉ dành cho Pi hiện đã không còn được tải.

Vì sao thay đổi này được thực hiện

Cách tiếp cận cũ gây ra các vấn đề:
  • Khởi động chậm — import một helper sẽ tải hàng chục mô-đun không liên quan
  • Phụ thuộc vòng — các re-export rộng khiến việc tạo vòng import trở nên dễ dàng
  • Bề mặt API không rõ ràng — không có cách nào biết export nào ổn định và export nào là nội bộ
SDK Plugin hiện đại khắc phục điều này: mỗi đường dẫn import (openclaw/plugin-sdk/\<subpath\>) là một mô-đun nhỏ, tự chứa, có mục đích rõ ràng và hợp đồng được ghi tài liệu. Các seam tiện ích provider kế thừa cho các kênh đóng gói cũng đã bị loại bỏ. Các seam helper mang thương hiệu kênh là lối tắt riêng trong mono-repo, không phải hợp đồng Plugin ổn định. Hãy dùng các subpath SDK generic hẹp thay thế. Bên trong workspace Plugin đóng gói, giữ các helper do provider sở hữu trong api.ts hoặc runtime-api.ts riêng của Plugin đó. Các ví dụ provider đóng gói hiện tại:
  • Anthropic giữ các helper stream dành riêng cho Claude trong seam api.ts / contract-api.ts của riêng nó
  • OpenAI giữ các builder provider, helper model mặc định và builder provider realtime trong api.ts của riêng nó
  • OpenRouter giữ builder provider và helper onboarding/cấu hình trong api.ts của riêng nó

Chính sách tương thích

Đối với Plugin bên ngoài, công việc tương thích đi theo thứ tự này:
  1. thêm hợp đồng mới
  2. giữ hành vi cũ được nối qua adapter tương thích
  3. phát chẩn đoán hoặc cảnh báo nêu tên đường dẫn cũ và phần thay thế
  4. bao phủ cả hai đường dẫn trong kiểm thử
  5. ghi tài liệu về việc ngừng khuyến nghị và đường dẫn di chuyển
  6. chỉ loại bỏ sau thời gian di chuyển đã công bố, thường là trong một bản phát hành major
Maintainer có thể kiểm tra hàng đợi di chuyển hiện tại bằng pnpm plugins:boundary-report. Dùng pnpm plugins:boundary-report:summary để xem số đếm gọn, --owner <id> cho một Plugin hoặc chủ sở hữu tương thích, và pnpm plugins:boundary-report:ci khi một cổng CI cần thất bại trên các bản ghi tương thích đến hạn, import SDK dành riêng xuyên chủ sở hữu, hoặc subpath SDK dành riêng không dùng đến. Báo cáo nhóm các bản ghi tương thích đã ngừng khuyến nghị theo ngày loại bỏ, đếm tham chiếu code/tài liệu cục bộ, hiển thị import SDK dành riêng xuyên chủ sở hữu, và tóm tắt cầu nối SDK memory-host riêng để việc dọn dẹp tương thích luôn rõ ràng thay vì dựa vào các tìm kiếm ad hoc. Các subpath SDK dành riêng phải có cách dùng của chủ sở hữu được theo dõi; các export helper dành riêng không dùng đến nên được loại bỏ khỏi SDK công khai. Nếu một trường manifest vẫn được chấp nhận, tác giả Plugin có thể tiếp tục dùng nó cho đến khi tài liệu và chẩn đoán nói khác. Code mới nên ưu tiên phần thay thế được ghi tài liệu, nhưng các Plugin hiện có không nên bị hỏng trong các bản phát hành minor thông thường.

Cách di chuyển

1

Di chuyển các helper tải/ghi cấu hình runtime

Các Plugin đóng gói nên dừng gọi trực tiếp api.runtime.config.loadConfig()api.runtime.config.writeConfigFile(...). Ưu tiên cấu hình đã được truyền vào đường dẫn gọi đang hoạt động. Các handler tồn tại lâu cần snapshot tiến trình hiện tại có thể dùng api.runtime.config.current(). Các công cụ tác tử tồn tại lâu nên dùng ctx.getRuntimeConfig() của ngữ cảnh công cụ bên trong execute để một công cụ được tạo trước một lần ghi cấu hình vẫn thấy cấu hình runtime đã được làm mới.Việc ghi cấu hình phải đi qua các helper giao dịch và chọn một chính sách sau ghi:
await api.runtime.config.mutateConfigFile({
  afterWrite: { mode: "auto" },
  mutate(draft) {
    draft.plugins ??= {};
  },
});
Dùng afterWrite: { mode: "restart", reason: "..." } khi caller biết thay đổi cần một lần khởi động lại Gateway sạch, và afterWrite: { mode: "none", reason: "..." } chỉ khi caller sở hữu bước tiếp theo và cố ý muốn tắt reload planner. Kết quả mutation bao gồm một tóm tắt followUp có kiểu cho kiểm thử và logging; Gateway vẫn chịu trách nhiệm áp dụng hoặc lên lịch khởi động lại. loadConfigwriteConfigFile vẫn là các helper tương thích đã ngừng khuyến nghị cho Plugin bên ngoài trong thời gian di chuyển và cảnh báo một lần với mã tương thích runtime-config-load-write. Các Plugin đóng gói và code runtime trong repo được bảo vệ bằng guardrail scanner trong pnpm check:deprecated-internal-config-apipnpm check:no-runtime-action-load-config: cách dùng Plugin production mới sẽ thất bại ngay, ghi cấu hình trực tiếp thất bại, các phương thức server Gateway phải dùng snapshot runtime của yêu cầu, các helper runtime gửi/hành động/client của kênh phải nhận cấu hình từ ranh giới của chúng, và các mô-đun runtime tồn tại lâu có đúng không lần gọi loadConfig() ambient nào được phép.Code Plugin mới cũng nên tránh import barrel tương thích rộng openclaw/plugin-sdk/config-runtime. Dùng subpath SDK hẹp khớp với công việc:
Nhu cầuImport
Kiểu cấu hình như OpenClawConfigopenclaw/plugin-sdk/config-types
Assertion cấu hình đã tải và tra cứu cấu hình plugin-entryopenclaw/plugin-sdk/plugin-config-runtime
Đọc snapshot runtime hiện tạiopenclaw/plugin-sdk/runtime-config-snapshot
Ghi cấu hìnhopenclaw/plugin-sdk/config-mutation
Helper session storeopenclaw/plugin-sdk/session-store-runtime
Cấu hình bảng Markdownopenclaw/plugin-sdk/markdown-table-runtime
Helper runtime chính sách nhómopenclaw/plugin-sdk/runtime-group-policy
Phân giải secret inputopenclaw/plugin-sdk/secret-input-runtime
Ghi đè model/sessionopenclaw/plugin-sdk/model-session-runtime
Các Plugin đóng gói và kiểm thử của chúng được scanner bảo vệ khỏi barrel rộng để import và mock luôn cục bộ với hành vi chúng cần. Barrel rộng vẫn tồn tại để tương thích bên ngoài, nhưng code mới không nên phụ thuộc vào nó.
2

Di chuyển extension tool-result của Pi sang middleware

Các Plugin đóng gói phải thay handler tool-result api.registerEmbeddedExtensionFactory(...) chỉ dành cho Pi bằng middleware trung lập với runtime.
// Pi and Codex runtime dynamic tools
api.registerAgentToolResultMiddleware(async (event) => {
  return compactToolResult(event);
}, {
  runtimes: ["pi", "codex"],
});
Đồng thời cập nhật manifest Plugin:
{
  "contracts": {
    "agentToolResultMiddleware": ["pi", "codex"]
  }
}
Plugin bên ngoài không thể đăng ký middleware tool-result vì nó có thể ghi lại đầu ra công cụ có độ tin cậy cao trước khi model thấy nó.
3

Di chuyển handler native approval sang capability fact

Các Plugin kênh có khả năng phê duyệt hiện hiển thị hành vi phê duyệt native thông qua approvalCapability.nativeRuntime cùng registry runtime-context dùng chung.Các thay đổi chính:
  • Thay approvalCapability.handler.loadRuntime(...) bằng approvalCapability.nativeRuntime
  • Chuyển auth/delivery dành riêng cho phê duyệt khỏi wiring plugin.auth / plugin.approvals kế thừa và đưa vào approvalCapability
  • ChannelPlugin.approvals đã bị loại khỏi hợp đồng channel-plugin công khai; chuyển các trường delivery/native/render vào approvalCapability
  • plugin.auth chỉ còn dành cho các luồng đăng nhập/đăng xuất kênh; các hook auth phê duyệt ở đó không còn được core đọc
  • Đăng ký các đối tượng runtime do kênh sở hữu như client, token hoặc ứng dụng Bolt thông qua openclaw/plugin-sdk/channel-runtime-context
  • Không gửi thông báo định tuyến lại do Plugin sở hữu từ handler phê duyệt native; core hiện sở hữu thông báo đã định tuyến nơi khác từ kết quả phân phối thực tế
  • Khi truyền channelRuntime vào createChannelManager(...), hãy cung cấp bề mặt createPluginRuntime().channel thật. Stub một phần bị từ chối.
Xem /plugins/sdk-channel-plugins để biết bố cục approval capability hiện tại.
4

Kiểm tra hành vi fallback wrapper Windows

Nếu Plugin của bạn dùng openclaw/plugin-sdk/windows-spawn, các wrapper .cmd/.bat Windows chưa phân giải hiện sẽ thất bại đóng trừ khi bạn truyền rõ ràng allowShellFallback: true.
// Before
const program = applyWindowsSpawnProgramPolicy({ candidate });

// After
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Only set this for trusted compatibility callers that intentionally
  // accept shell-mediated fallback.
  allowShellFallback: true,
});
Nếu caller của bạn không cố ý dựa vào shell fallback, đừng đặt allowShellFallback và hãy xử lý lỗi được ném ra thay thế.
5

Tìm các import đã ngừng khuyến nghị

Tìm trong Plugin của bạn các import từ một trong hai bề mặt đã ngừng khuyến nghị:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "plugin-sdk/infra-runtime" my-plugin/
grep -r "plugin-sdk/config-runtime" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
6

Thay bằng các import tập trung

Mỗi export từ bề mặt cũ ánh xạ tới một đường dẫn import hiện đại cụ thể:
// Before (deprecated backwards-compatibility layer)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// After (modern focused imports)
import { createChannelReplyPipeline } from "openclaw/plugin-sdk/channel-reply-pipeline";
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
Đối với các helper phía host, dùng runtime Plugin được inject thay vì import trực tiếp:
// Before (deprecated extension-api bridge)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// After (injected runtime)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
Mẫu tương tự áp dụng cho các helper cầu nối cũ khác:
Import cũTương đương hiện đại
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
helper kho lưu trữ phiênapi.runtime.agent.session.*
7

Thay thế các import infra-runtime phạm vi rộng

openclaw/plugin-sdk/infra-runtime vẫn tồn tại để tương thích bên ngoài, nhưng mã mới nên import bề mặt helper tập trung mà nó thực sự cần:
Nhu cầuImport
Helper hàng đợi sự kiện hệ thốngopenclaw/plugin-sdk/system-event-runtime
Helper sự kiện Heartbeat và khả năng hiển thịopenclaw/plugin-sdk/heartbeat-runtime
Xả hàng đợi phân phối đang chờopenclaw/plugin-sdk/delivery-queue-runtime
Đo từ xa hoạt động kênhopenclaw/plugin-sdk/channel-activity-runtime
Bộ nhớ đệm khử trùng lặp trong bộ nhớopenclaw/plugin-sdk/dedupe-runtime
Helper đường dẫn tệp/phương tiện cục bộ an toànopenclaw/plugin-sdk/file-access-runtime
Fetch nhận biết dispatcheropenclaw/plugin-sdk/runtime-fetch
Helper proxy và fetch được bảo vệopenclaw/plugin-sdk/fetch-runtime
Kiểu chính sách dispatcher SSRFopenclaw/plugin-sdk/ssrf-dispatcher
Kiểu yêu cầu/phân giải phê duyệtopenclaw/plugin-sdk/approval-runtime
Helper payload phản hồi phê duyệt và lệnhopenclaw/plugin-sdk/approval-reply-runtime
Helper định dạng lỗiopenclaw/plugin-sdk/error-runtime
Chờ trạng thái sẵn sàng của transportopenclaw/plugin-sdk/transport-ready-runtime
Helper token bảo mậtopenclaw/plugin-sdk/secure-random-runtime
Đồng thời tác vụ bất đồng bộ có giới hạnopenclaw/plugin-sdk/concurrency-runtime
Ép kiểu sốopenclaw/plugin-sdk/number-runtime
Khóa bất đồng bộ cục bộ theo tiến trìnhopenclaw/plugin-sdk/async-lock-runtime
Khóa tệpopenclaw/plugin-sdk/file-lock
Các plugin đóng gói được scanner bảo vệ khỏi infra-runtime, nên mã trong repo không thể thoái lui về barrel phạm vi rộng.
8

Di chuyển các helper định tuyến kênh

Mã định tuyến kênh mới nên dùng openclaw/plugin-sdk/channel-route. Các tên route-key và comparable-target cũ vẫn tồn tại dưới dạng bí danh tương thích trong khoảng thời gian di chuyển, nhưng plugin mới nên dùng các tên route mô tả trực tiếp hành vi:
Helper cũHelper hiện đại
channelRouteIdentityKey(...)channelRouteDedupeKey(...)
channelRouteKey(...)channelRouteCompactKey(...)
ComparableChannelTargetChannelRouteParsedTarget
resolveComparableTargetForChannel(...)resolveRouteTargetForChannel(...)
resolveComparableTargetForLoadedChannel(...)resolveRouteTargetForLoadedChannel(...)
comparableChannelTargetsMatch(...)channelRouteTargetsMatchExact(...)
comparableChannelTargetsShareRoute(...)channelRouteTargetsShareConversation(...)
Các helper định tuyến hiện đại chuẩn hóa { channel, to, accountId, threadId } nhất quán trên phê duyệt gốc, chặn phản hồi, khử trùng lặp đầu vào, phân phối cron và định tuyến phiên. Nếu plugin của bạn sở hữu ngữ pháp target tùy chỉnh, hãy dùng resolveChannelRouteTargetWithParser(...) để điều chỉnh parser đó vào cùng hợp đồng target định tuyến.
9

Build và kiểm thử

pnpm build
pnpm test -- my-plugin/

Tham chiếu đường dẫn import

Đường dẫn importMục đíchExport chính
plugin-sdk/plugin-entryTrình hỗ trợ điểm vào plugin chuẩndefinePluginEntry
plugin-sdk/coreRe-export bao quát kế thừa cho định nghĩa/trình dựng điểm vào kênhdefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaExport schema cấu hình gốcOpenClawSchema
plugin-sdk/provider-entryTrình hỗ trợ điểm vào một nhà cung cấpdefineSingleProviderPluginEntry
plugin-sdk/channel-coreĐịnh nghĩa và trình dựng điểm vào kênh tập trungdefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupTrình hỗ trợ wizard thiết lập dùng chungPrompt danh sách cho phép, trình dựng trạng thái thiết lập
plugin-sdk/setup-runtimeTrình hỗ trợ runtime trong lúc thiết lậpAdapter vá thiết lập an toàn khi import, trình hỗ trợ ghi chú tra cứu, promptResolvedAllowFrom, splitSetupEntries, proxy thiết lập được ủy quyền
plugin-sdk/setup-adapter-runtimeTrình hỗ trợ adapter thiết lậpcreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsTrình hỗ trợ công cụ thiết lậpformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreTrình hỗ trợ đa tài khoảnTrình hỗ trợ danh sách tài khoản/cấu hình/cổng hành động
plugin-sdk/account-idTrình hỗ trợ account-idDEFAULT_ACCOUNT_ID, chuẩn hóa account-id
plugin-sdk/account-resolutionTrình hỗ trợ tra cứu tài khoảnTrình hỗ trợ tra cứu tài khoản + dự phòng mặc định
plugin-sdk/account-helpersTrình hỗ trợ tài khoản phạm vi hẹpTrình hỗ trợ danh sách tài khoản/hành động tài khoản
plugin-sdk/channel-setupAdapter wizard thiết lậpcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, cùng với DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingPrimitive ghép cặp DMcreateChannelPairingController
plugin-sdk/channel-reply-pipelineNối dây tiền tố trả lời, trạng thái đang nhập và gửi nguồncreateChannelReplyPipeline, resolveChannelSourceReplyDeliveryMode
plugin-sdk/channel-config-helpersFactory adapter cấu hình và trình hỗ trợ truy cập DMcreateHybridChannelConfigAdapter, resolveChannelDmAccess, resolveChannelDmAllowFrom, resolveChannelDmPolicy, normalizeChannelDmPolicy, normalizeLegacyDmAliases
plugin-sdk/channel-config-schemaTrình dựng schema cấu hìnhChỉ các primitive schema cấu hình kênh dùng chung và trình dựng chung
plugin-sdk/bundled-channel-config-schemaSchema cấu hình đi kèmChỉ các plugin đi kèm do OpenClaw duy trì; plugin mới phải định nghĩa schema cục bộ của plugin
plugin-sdk/channel-config-schema-legacySchema cấu hình đi kèm đã ngừng dùngChỉ là bí danh tương thích; dùng plugin-sdk/bundled-channel-config-schema cho các plugin đi kèm được duy trì
plugin-sdk/telegram-command-configTrình hỗ trợ cấu hình lệnh TelegramChuẩn hóa tên lệnh, cắt mô tả, xác thực trùng lặp/xung đột
plugin-sdk/channel-policyPhân giải chính sách nhóm/DMresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleTrình hỗ trợ trạng thái tài khoản và vòng đời luồng bản nhápcreateAccountStatusSink, trình hỗ trợ hoàn tất bản xem trước nháp
plugin-sdk/inbound-envelopeTrình hỗ trợ phong bì gửi đếnTrình hỗ trợ tuyến dùng chung + trình dựng phong bì
plugin-sdk/inbound-reply-dispatchTrình hỗ trợ trả lời gửi đếnTrình hỗ trợ ghi nhận và điều phối dùng chung
plugin-sdk/messaging-targetsPhân tích đích nhắn tinTrình hỗ trợ phân tích/so khớp đích
plugin-sdk/outbound-mediaTrình hỗ trợ media gửi điTải media gửi đi dùng chung
plugin-sdk/outbound-send-depsTrình hỗ trợ phụ thuộc gửi điTra cứu resolveOutboundSendDep gọn nhẹ mà không import toàn bộ outbound runtime
plugin-sdk/outbound-runtimeTrình hỗ trợ outbound runtimeTrình hỗ trợ gửi đi, ủy quyền định danh/gửi, phiên, định dạng và lập kế hoạch payload
plugin-sdk/thread-bindings-runtimeTrình hỗ trợ ràng buộc luồngTrình hỗ trợ vòng đời ràng buộc luồng và adapter
plugin-sdk/agent-media-payloadTrình hỗ trợ payload media kế thừaTrình dựng payload media của agent cho bố cục trường kế thừa
plugin-sdk/channel-runtimeShim tương thích đã ngừng dùngChỉ tiện ích channel runtime kế thừa
plugin-sdk/channel-send-resultKiểu kết quả gửiKiểu kết quả trả lời
plugin-sdk/runtime-storeBộ lưu trữ plugin bền vữngcreatePluginRuntimeStore
plugin-sdk/runtimeTrình hỗ trợ runtime bao quátTrình hỗ trợ runtime/ghi log/sao lưu/cài đặt plugin
plugin-sdk/runtime-envTrình hỗ trợ env runtime phạm vi hẹpLogger/env runtime, timeout, retry và backoff
plugin-sdk/plugin-runtimeTrình hỗ trợ plugin runtime dùng chungTrình hỗ trợ lệnh/hook/http/tương tác của plugin
plugin-sdk/hook-runtimeTrình hỗ trợ pipeline hookTrình hỗ trợ pipeline webhook/hook nội bộ dùng chung
plugin-sdk/lazy-runtimeTrình hỗ trợ lazy runtimecreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeTrình hỗ trợ tiến trìnhTrình hỗ trợ exec dùng chung
plugin-sdk/cli-runtimeTrình hỗ trợ CLI runtimeĐịnh dạng lệnh, chờ, trình hỗ trợ phiên bản
plugin-sdk/gateway-runtimeTrình hỗ trợ GatewayClient Gateway, trình hỗ trợ khởi động sẵn sàng event-loop và trình hỗ trợ vá trạng thái kênh
plugin-sdk/config-runtimeShim tương thích cấu hình đã ngừng dùngƯu tiên config-types, plugin-config-runtime, runtime-config-snapshotconfig-mutation
plugin-sdk/telegram-command-configTrình hỗ trợ lệnh TelegramTrình hỗ trợ xác thực lệnh Telegram ổn định khi dự phòng khi bề mặt hợp đồng Telegram đi kèm không khả dụng
plugin-sdk/approval-runtimeTrình hỗ trợ prompt phê duyệtPayload phê duyệt exec/plugin, trình hỗ trợ khả năng/hồ sơ phê duyệt, trình hỗ trợ định tuyến/runtime phê duyệt native và định dạng đường dẫn hiển thị phê duyệt có cấu trúc
plugin-sdk/approval-auth-runtimeTrình hỗ trợ auth phê duyệtPhân giải người phê duyệt, auth hành động cùng cuộc trò chuyện
plugin-sdk/approval-client-runtimeTrình hỗ trợ client phê duyệtTrình hỗ trợ hồ sơ/bộ lọc phê duyệt exec native
plugin-sdk/approval-delivery-runtimeTrình hỗ trợ gửi phê duyệtAdapter khả năng/gửi phê duyệt native
plugin-sdk/approval-gateway-runtimeTrình hỗ trợ gateway phê duyệtTrình hỗ trợ phân giải gateway phê duyệt dùng chung
plugin-sdk/approval-handler-adapter-runtimeTrình hỗ trợ adapter phê duyệtTrình hỗ trợ tải adapter phê duyệt native gọn nhẹ cho điểm vào kênh nóng
plugin-sdk/approval-handler-runtimeTrình hỗ trợ handler phê duyệtTrình hỗ trợ runtime handler phê duyệt rộng hơn; ưu tiên seam adapter/gateway hẹp hơn khi chúng đã đủ
plugin-sdk/approval-native-runtimeTrình hỗ trợ đích phê duyệtTrình hỗ trợ ràng buộc đích/tài khoản phê duyệt native
plugin-sdk/approval-reply-runtimeTrình hỗ trợ trả lời phê duyệtTrình hỗ trợ payload trả lời phê duyệt exec/plugin
plugin-sdk/channel-runtime-contextTrình hỗ trợ runtime-context của kênhTrình hỗ trợ đăng ký/lấy/theo dõi runtime-context kênh chung
plugin-sdk/security-runtimeTrình hỗ trợ bảo mậtTrình hỗ trợ dùng chung cho tin cậy, cổng DM, nội dung bên ngoài và thu thập bí mật
plugin-sdk/ssrf-policyTrình hỗ trợ chính sách SSRFTrình hỗ trợ danh sách cho phép host và chính sách mạng riêng
plugin-sdk/ssrf-runtimeTrình hỗ trợ SSRF runtimePinned-dispatcher, guarded fetch, trình hỗ trợ chính sách SSRF
plugin-sdk/system-event-runtimeTrình hỗ trợ sự kiện hệ thốngenqueueSystemEvent, peekSystemEventEntries
plugin-sdk/heartbeat-runtimeTrình hỗ trợ HeartbeatTrình hỗ trợ sự kiện Heartbeat và khả năng hiển thị
plugin-sdk/delivery-queue-runtimeTrình hỗ trợ hàng đợi gửidrainPendingDeliveries
plugin-sdk/channel-activity-runtimeTrình hỗ trợ hoạt động kênhrecordChannelActivity
plugin-sdk/dedupe-runtimeTrình hỗ trợ chống trùng lặpCache chống trùng lặp trong bộ nhớ
plugin-sdk/file-access-runtimeTrình hỗ trợ truy cập tệpTrình hỗ trợ đường dẫn tệp/media cục bộ an toàn
plugin-sdk/transport-ready-runtimeTrình hỗ trợ sẵn sàng transportwaitForTransportReady
plugin-sdk/collection-runtimeTrình hỗ trợ cache giới hạnpruneMapToMaxSize
plugin-sdk/diagnostic-runtimeTrình hỗ trợ cổng chẩn đoánisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeTrình hỗ trợ định dạng lỗiformatUncaughtError, isApprovalNotFoundError, trình hỗ trợ đồ thị lỗi
plugin-sdk/fetch-runtimeTrình hỗ trợ fetch/proxy được bọcresolveFetch, trình hỗ trợ proxy, trình hỗ trợ tùy chọn EnvHttpProxyAgent
plugin-sdk/host-runtimeTrình hỗ trợ chuẩn hóa hostnormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeTrình hỗ trợ retryRetryConfig, retryAsync, trình chạy chính sách
plugin-sdk/allow-fromĐịnh dạng danh sách cho phépformatAllowFromLowercase
plugin-sdk/allowlist-resolutionÁnh xạ đầu vào danh sách cho phépmapAllowlistResolutionInputs
plugin-sdk/command-authCổng lệnh và trình hỗ trợ bề mặt lệnhresolveControlCommandGate, trình hỗ trợ ủy quyền người gửi, trình hỗ trợ registry lệnh bao gồm định dạng menu đối số động
plugin-sdk/command-statusTrình kết xuất trạng thái/trợ giúp lệnhbuildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage
plugin-sdk/secret-inputPhân tích đầu vào bí mậtTrình hỗ trợ đầu vào bí mật
plugin-sdk/webhook-ingressTrình hỗ trợ yêu cầu WebhookTiện ích đích Webhook
plugin-sdk/webhook-request-guardsTrình hỗ trợ guard body WebhookTrình hỗ trợ đọc/giới hạn body yêu cầu
plugin-sdk/reply-runtimeReply runtime dùng chungĐiều phối gửi đến, heartbeat, trình lập kế hoạch trả lời, chia nhỏ
plugin-sdk/reply-dispatch-runtimeTrình hỗ trợ điều phối trả lời phạm vi hẹpHoàn tất, điều phối provider và trình hỗ trợ nhãn cuộc trò chuyện
plugin-sdk/reply-historyTrình hỗ trợ lịch sử trả lờibuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referenceLập kế hoạch tham chiếu trả lờicreateReplyReferencePlanner
plugin-sdk/reply-chunkingTrình hỗ trợ chia khúc trả lờiTrình hỗ trợ chia khúc văn bản/markdown
plugin-sdk/session-store-runtimeTrình hỗ trợ kho phiênTrình hỗ trợ đường dẫn kho + updated-at
plugin-sdk/state-pathsTrình hỗ trợ đường dẫn trạng tháiTrình hỗ trợ thư mục trạng thái và OAuth
plugin-sdk/routingTrình hỗ trợ định tuyến/session-keyresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, trình hỗ trợ chuẩn hóa session-key
plugin-sdk/status-helpersTrình hỗ trợ trạng thái kênhTrình dựng tóm tắt trạng thái kênh/tài khoản, mặc định trạng thái runtime, trình hỗ trợ metadata vấn đề
plugin-sdk/target-resolver-runtimeTrình hỗ trợ bộ phân giải đíchTrình hỗ trợ bộ phân giải đích dùng chung
plugin-sdk/string-normalization-runtimeTrình hỗ trợ chuẩn hóa chuỗiTrình hỗ trợ chuẩn hóa slug/chuỗi
plugin-sdk/request-urlTrình hỗ trợ URL yêu cầuTrích xuất URL chuỗi từ đầu vào giống yêu cầu
plugin-sdk/run-commandTrình hỗ trợ lệnh có thời hạnTrình chạy lệnh có thời hạn với stdout/stderr đã chuẩn hóa
plugin-sdk/param-readersTrình đọc tham sốTrình đọc tham số công cụ/CLI phổ biến
plugin-sdk/tool-payloadTrích xuất payload của công cụTrích xuất payload đã chuẩn hóa từ các đối tượng kết quả công cụ
plugin-sdk/tool-sendTrích xuất gửi công cụTrích xuất các trường đích gửi chuẩn từ đối số công cụ
plugin-sdk/temp-pathTrình trợ giúp đường dẫn tạmTrình trợ giúp đường dẫn tải xuống tạm dùng chung
plugin-sdk/logging-coreTrình trợ giúp ghi logTrình trợ giúp logger hệ thống con và biên tập che giấu
plugin-sdk/markdown-table-runtimeTrình trợ giúp bảng MarkdownTrình trợ giúp chế độ bảng Markdown
plugin-sdk/reply-payloadKiểu trả lời tin nhắnKiểu payload trả lời
plugin-sdk/provider-setupTrình trợ giúp thiết lập nhà cung cấp cục bộ/tự lưu trữ được tuyển chọnTrình trợ giúp phát hiện/cấu hình nhà cung cấp tự lưu trữ
plugin-sdk/self-hosted-provider-setupTrình trợ giúp thiết lập nhà cung cấp tự lưu trữ tương thích OpenAI có trọng tâmCùng trình trợ giúp phát hiện/cấu hình nhà cung cấp tự lưu trữ
plugin-sdk/provider-auth-runtimeTrình trợ giúp xác thực thời gian chạy của nhà cung cấpTrình trợ giúp phân giải khóa API thời gian chạy
plugin-sdk/provider-auth-api-keyTrình trợ giúp thiết lập khóa API của nhà cung cấpTrình trợ giúp onboarding/ghi hồ sơ khóa API
plugin-sdk/provider-auth-resultTrình trợ giúp kết quả xác thực nhà cung cấpBộ dựng kết quả xác thực OAuth tiêu chuẩn
plugin-sdk/provider-auth-loginTrình trợ giúp đăng nhập tương tác của nhà cung cấpTrình trợ giúp đăng nhập tương tác dùng chung
plugin-sdk/provider-selection-runtimeTrình trợ giúp chọn nhà cung cấpChọn nhà cung cấp đã cấu hình hoặc tự động và hợp nhất cấu hình nhà cung cấp thô
plugin-sdk/provider-env-varsTrình trợ giúp biến môi trường nhà cung cấpTrình trợ giúp tra cứu biến môi trường xác thực nhà cung cấp
plugin-sdk/provider-model-sharedTrình trợ giúp mô hình/phát lại nhà cung cấp dùng chungProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, bộ dựng chính sách phát lại dùng chung, trình trợ giúp endpoint nhà cung cấp và trình trợ giúp chuẩn hóa mã định danh mô hình
plugin-sdk/provider-catalog-sharedTrình trợ giúp danh mục nhà cung cấp dùng chungfindCatalogTemplate, buildSingleProviderApiKeyCatalog, buildManifestModelProviderConfig, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardBản vá onboarding nhà cung cấpTrình trợ giúp cấu hình onboarding
plugin-sdk/provider-httpTrình trợ giúp HTTP của nhà cung cấpTrình trợ giúp năng lực HTTP/endpoint chung cho nhà cung cấp, bao gồm trình trợ giúp biểu mẫu multipart cho phiên âm âm thanh
plugin-sdk/provider-web-fetchTrình trợ giúp web-fetch của nhà cung cấpTrình trợ giúp đăng ký/bộ nhớ đệm nhà cung cấp web-fetch
plugin-sdk/provider-web-search-config-contractTrình trợ giúp cấu hình web-search của nhà cung cấpTrình trợ giúp cấu hình/thông tin xác thực web-search hẹp cho các nhà cung cấp không cần dây nối bật Plugin
plugin-sdk/provider-web-search-contractTrình trợ giúp hợp đồng web-search của nhà cung cấpTrình trợ giúp hợp đồng cấu hình/thông tin xác thực web-search hẹp như createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig và setter/getter thông tin xác thực theo phạm vi
plugin-sdk/provider-web-searchTrình trợ giúp web-search của nhà cung cấpTrình trợ giúp đăng ký/bộ nhớ đệm/thời gian chạy nhà cung cấp web-search
plugin-sdk/provider-toolsTrình trợ giúp tương thích công cụ/schema của nhà cung cấpProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, dọn dẹp schema Gemini + chẩn đoán và trình trợ giúp tương thích xAI như resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageTrình trợ giúp mức sử dụng nhà cung cấpfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage và các trình trợ giúp mức sử dụng nhà cung cấp khác
plugin-sdk/provider-streamTrình trợ giúp wrapper luồng của nhà cung cấpProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, kiểu wrapper luồng và trình trợ giúp wrapper dùng chung Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/provider-transport-runtimeTrình trợ giúp transport của nhà cung cấpTrình trợ giúp transport nhà cung cấp gốc như fetch có bảo vệ, biến đổi thông điệp transport và luồng sự kiện transport có thể ghi
plugin-sdk/keyed-async-queueHàng đợi async có thứ tựKeyedAsyncQueue
plugin-sdk/media-runtimeTrình trợ giúp media dùng chungTrình trợ giúp fetch/biến đổi/lưu trữ media, dò kích thước video dựa trên ffprobe và bộ dựng payload media
plugin-sdk/media-generation-runtimeTrình trợ giúp tạo media dùng chungTrình trợ giúp failover dùng chung, chọn ứng viên và thông báo thiếu mô hình cho tạo hình ảnh/video/nhạc
plugin-sdk/media-understandingTrình trợ giúp hiểu mediaKiểu nhà cung cấp hiểu media cùng các export trợ giúp hình ảnh/âm thanh hướng nhà cung cấp
plugin-sdk/text-runtimeTrình trợ giúp văn bản dùng chungTước văn bản hiển thị với assistant, trình trợ giúp render/chia đoạn/bảng Markdown, trình trợ giúp biên tập che giấu, trình trợ giúp thẻ chỉ thị, tiện ích văn bản an toàn và các trình trợ giúp văn bản/ghi log liên quan
plugin-sdk/text-chunkingTrình trợ giúp chia đoạn văn bảnTrình trợ giúp chia đoạn văn bản gửi đi
plugin-sdk/speechTrình trợ giúp giọng nóiKiểu nhà cung cấp giọng nói cùng các trình trợ giúp chỉ thị, registry, xác thực hướng nhà cung cấp và bộ dựng TTS tương thích OpenAI
plugin-sdk/speech-coreLõi giọng nói dùng chungKiểu nhà cung cấp giọng nói, registry, chỉ thị, chuẩn hóa
plugin-sdk/realtime-transcriptionTrình trợ giúp phiên âm thời gian thựcKiểu nhà cung cấp, trình trợ giúp registry và trình trợ giúp phiên WebSocket dùng chung
plugin-sdk/realtime-voiceTrình trợ giúp giọng nói thời gian thựcKiểu nhà cung cấp, trình trợ giúp registry/phân giải và trình trợ giúp phiên cầu nối
plugin-sdk/image-generationTrình trợ giúp tạo hình ảnhKiểu nhà cung cấp tạo hình ảnh cùng trình trợ giúp URL dữ liệu/tài sản hình ảnh và bộ dựng nhà cung cấp hình ảnh tương thích OpenAI
plugin-sdk/image-generation-coreLõi tạo hình ảnh dùng chungKiểu tạo hình ảnh, failover, xác thực và trình trợ giúp registry
plugin-sdk/music-generationTrình trợ giúp tạo nhạcKiểu nhà cung cấp/yêu cầu/kết quả tạo nhạc
plugin-sdk/music-generation-coreLõi tạo nhạc dùng chungKiểu tạo nhạc, trình trợ giúp failover, tra cứu nhà cung cấp và phân tích model-ref
plugin-sdk/video-generationTrình trợ giúp tạo videoKiểu nhà cung cấp/yêu cầu/kết quả tạo video
plugin-sdk/video-generation-coreLõi tạo video dùng chungKiểu tạo video, trình trợ giúp failover, tra cứu nhà cung cấp và phân tích model-ref
plugin-sdk/interactive-runtimeTrình trợ giúp trả lời tương tácChuẩn hóa/rút gọn payload trả lời tương tác
plugin-sdk/channel-config-primitivesNguyên tố cấu hình kênhNguyên tố schema cấu hình kênh hẹp
plugin-sdk/channel-config-writesTrình trợ giúp ghi cấu hình kênhTrình trợ giúp ủy quyền ghi cấu hình kênh
plugin-sdk/channel-plugin-commonPrelude kênh dùng chungExport prelude Plugin kênh dùng chung
plugin-sdk/channel-statusTrình trợ giúp trạng thái kênhTrình trợ giúp snapshot/tóm tắt trạng thái kênh dùng chung
plugin-sdk/allowlist-config-editTrình trợ giúp cấu hình danh sách cho phépTrình trợ giúp chỉnh sửa/đọc cấu hình danh sách cho phép
plugin-sdk/group-accessTrình trợ giúp quyền truy cập nhómTrình trợ giúp quyết định quyền truy cập nhóm dùng chung
plugin-sdk/direct-dmTrình trợ giúp DM trực tiếpTrình trợ giúp xác thực/bảo vệ DM trực tiếp dùng chung
plugin-sdk/extension-sharedTrình trợ giúp extension dùng chungNguyên tố trình trợ giúp proxy ambient và trạng thái/kênh thụ động
plugin-sdk/webhook-targetsTrình trợ giúp đích WebhookRegistry đích Webhook và trình trợ giúp cài đặt route
plugin-sdk/webhook-pathTrình trợ giúp đường dẫn WebhookTrình trợ giúp chuẩn hóa đường dẫn Webhook
plugin-sdk/web-mediaTrình trợ giúp media web dùng chungTrình trợ giúp tải media từ xa/cục bộ
plugin-sdk/zodTái xuất Zodzod được tái xuất cho người dùng plugin SDK
plugin-sdk/memory-coreTrình trợ giúp memory-core được đóng góiBề mặt trình trợ giúp trình quản lý/cấu hình/tệp/CLI bộ nhớ
plugin-sdk/memory-core-engine-runtimeFacade thời gian chạy engine bộ nhớFacade thời gian chạy lập chỉ mục/tìm kiếm bộ nhớ
plugin-sdk/memory-core-host-engine-foundationEngine nền tảng host bộ nhớExport engine nền tảng host bộ nhớ
plugin-sdk/memory-core-host-engine-embeddingsEngine embedding host bộ nhớHợp đồng embedding bộ nhớ, quyền truy cập registry, nhà cung cấp cục bộ và trình trợ giúp batch/từ xa chung; các nhà cung cấp từ xa cụ thể nằm trong các Plugin sở hữu chúng
plugin-sdk/memory-core-host-engine-qmdEngine QMD host bộ nhớExport engine QMD host bộ nhớ
plugin-sdk/memory-core-host-engine-storageEngine lưu trữ host bộ nhớExport engine lưu trữ host bộ nhớ
plugin-sdk/memory-core-host-multimodalTrình trợ giúp đa phương thức host bộ nhớTrình trợ giúp đa phương thức host bộ nhớ
plugin-sdk/memory-core-host-queryTrình trợ giúp truy vấn host bộ nhớTrình trợ giúp truy vấn host bộ nhớ
plugin-sdk/memory-core-host-secretTrình trợ giúp bí mật host bộ nhớTrình trợ giúp bí mật host bộ nhớ
plugin-sdk/memory-core-host-eventsTrình trợ giúp nhật ký sự kiện host bộ nhớTrình trợ giúp nhật ký sự kiện host bộ nhớ
plugin-sdk/memory-core-host-statusTrình trợ giúp trạng thái host bộ nhớTrình trợ giúp trạng thái host bộ nhớ
plugin-sdk/memory-core-host-runtime-cliThời gian chạy CLI host bộ nhớTrình trợ giúp thời gian chạy CLI host bộ nhớ
plugin-sdk/memory-core-host-runtime-coreThời gian chạy lõi host bộ nhớTrình trợ giúp thời gian chạy lõi host bộ nhớ
plugin-sdk/memory-core-host-runtime-filesTrình trợ giúp tệp/thời gian chạy host bộ nhớTrình trợ giúp tệp/thời gian chạy host bộ nhớ
plugin-sdk/memory-host-coreBí danh thời gian chạy lõi host bộ nhớBí danh trung lập nhà cung cấp cho trình trợ giúp thời gian chạy lõi host bộ nhớ
plugin-sdk/memory-host-eventsBí danh nhật ký sự kiện host bộ nhớBí danh trung lập nhà cung cấp cho trình trợ giúp nhật ký sự kiện host bộ nhớ
plugin-sdk/memory-host-filesBí danh tệp/thời gian chạy host bộ nhớBí danh trung lập nhà cung cấp cho trình trợ giúp tệp/thời gian chạy host bộ nhớ
plugin-sdk/memory-host-markdownTrình trợ giúp Markdown được quản lýTrình trợ giúp Markdown được quản lý dùng chung cho các Plugin liền kề bộ nhớ
plugin-sdk/memory-host-searchFacade tìm kiếm Active MemoryFacade thời gian chạy trình quản lý tìm kiếm active-memory tải lười
plugin-sdk/memory-host-statusBí danh trạng thái host bộ nhớBí danh trung lập nhà cung cấp cho trình trợ giúp trạng thái host bộ nhớ
plugin-sdk/testingTiện ích kiểm thửBarrel tương thích rộng cũ; ưu tiên các subpath kiểm thử có trọng tâm như plugin-sdk/plugin-test-runtime, plugin-sdk/channel-test-helpers, plugin-sdk/channel-target-testing, plugin-sdk/test-envplugin-sdk/test-fixtures
Bảng này cố ý chỉ là tập hợp con di chuyển chung, không phải toàn bộ bề mặt SDK. Danh sách đầy đủ hơn 200 điểm vào nằm trong scripts/lib/plugin-sdk-entrypoints.json. Các seam trợ giúp dành riêng cho Plugin tích hợp đã được loại khỏi bản đồ export SDK công khai, ngoại trừ các facade tương thích được ghi tài liệu rõ ràng, chẳng hạn như shim plugin-sdk/discord đã ngừng khuyến nghị nhưng vẫn được giữ cho gói đã phát hành @openclaw/discord@2026.3.13. Các helper dành riêng cho chủ sở hữu nằm bên trong gói Plugin sở hữu chúng; hành vi host dùng chung nên đi qua các hợp đồng SDK chung như plugin-sdk/gateway-runtime, plugin-sdk/security-runtimeplugin-sdk/plugin-config-runtime. Hãy dùng import hẹp nhất phù hợp với công việc. Nếu bạn không tìm thấy một export, hãy kiểm tra mã nguồn tại src/plugin-sdk/ hoặc hỏi maintainer hợp đồng chung nào nên sở hữu nó.

Các API đang bị ngừng khuyến nghị

Các mục ngừng khuyến nghị hẹp hơn áp dụng trên plugin SDK, hợp đồng provider, bề mặt runtime và manifest. Mỗi mục hiện vẫn hoạt động nhưng sẽ bị gỡ bỏ trong một bản phát hành major trong tương lai. Mục bên dưới mỗi phần ánh xạ API cũ sang phần thay thế chuẩn của nó.
Cũ (openclaw/plugin-sdk/command-auth): buildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage.Mới (openclaw/plugin-sdk/command-status): cùng chữ ký, cùng export — chỉ được import từ subpath hẹp hơn. command-auth re-export chúng dưới dạng stub tương thích.
// Before
import { buildHelpMessage } from "openclaw/plugin-sdk/command-auth";

// After
import { buildHelpMessage } from "openclaw/plugin-sdk/command-status";
: resolveInboundMentionRequirement({ facts, policy })shouldDropInboundForMention(...) từ openclaw/plugin-sdk/channel-inbound hoặc openclaw/plugin-sdk/channel-mention-gating.Mới: resolveInboundMentionDecision({ facts, policy }) — trả về một đối tượng quyết định duy nhất thay vì hai lời gọi tách riêng.Các Plugin kênh phía dưới (Slack, Discord, Matrix, MS Teams) đã chuyển đổi.
openclaw/plugin-sdk/channel-runtime là shim tương thích cho các Plugin kênh cũ hơn. Không import nó từ mã mới; hãy dùng openclaw/plugin-sdk/channel-runtime-context để đăng ký các đối tượng runtime.Các helper channelActions* trong openclaw/plugin-sdk/channel-actions bị ngừng khuyến nghị cùng với các export kênh “actions” thô. Thay vào đó, hãy bộc lộ năng lực thông qua bề mặt presentation có ngữ nghĩa — các Plugin kênh khai báo những gì chúng hiển thị (thẻ, nút, danh sách chọn) thay vì tên action thô mà chúng chấp nhận.
: factory tool() từ openclaw/plugin-sdk/provider-web-search.Mới: triển khai createTool(...) trực tiếp trên Plugin provider. OpenClaw không còn cần helper SDK để đăng ký wrapper công cụ.
: formatInboundEnvelope(...) (và ChannelMessageForAgent.channelEnvelope) để xây dựng envelope prompt plaintext phẳng từ các tin nhắn kênh inbound.Mới: BodyForAgent cùng với các khối ngữ cảnh người dùng có cấu trúc. Các Plugin kênh gắn metadata định tuyến (luồng, chủ đề, trả lời đến, phản ứng) dưới dạng trường có kiểu thay vì nối chúng vào một chuỗi prompt. Helper formatAgentEnvelope(...) vẫn được hỗ trợ cho các envelope tổng hợp hướng đến assistant, nhưng các envelope plaintext inbound đang dần bị loại bỏ.Khu vực bị ảnh hưởng: inbound_claim, message_received và mọi Plugin kênh tùy chỉnh đã hậu xử lý văn bản channelEnvelope.
Bốn bí danh kiểu khám phá hiện là wrapper mỏng trên các kiểu thời kỳ danh mục:
Bí danh cũKiểu mới
ProviderDiscoveryOrderProviderCatalogOrder
ProviderDiscoveryContextProviderCatalogContext
ProviderDiscoveryResultProviderCatalogResult
ProviderPluginDiscoveryProviderPluginCatalog
Cùng với túi tĩnh ProviderCapabilities cũ — các Plugin provider nên dùng hook provider rõ ràng như buildReplayPolicy, normalizeToolSchemaswrapStreamFn thay vì một đối tượng tĩnh.
(ba hook riêng biệt trên ProviderThinkingPolicy): isBinaryThinking(ctx), supportsXHighThinking(ctx)resolveDefaultThinkingLevel(ctx).Mới: một resolveThinkingProfile(ctx) duy nhất trả về ProviderThinkingProfile với id chuẩn, label tùy chọn và danh sách cấp độ được xếp hạng. OpenClaw tự động hạ cấp các giá trị đã lưu cũ theo thứ hạng hồ sơ.Hãy triển khai một hook thay vì ba. Các hook cũ vẫn hoạt động trong giai đoạn ngừng khuyến nghị nhưng không được kết hợp với kết quả hồ sơ.
: triển khai resolveExternalOAuthProfiles(...) mà không khai báo provider trong manifest Plugin.Mới: khai báo contracts.externalAuthProviders trong manifest Plugin triển khai resolveExternalAuthProfiles(...). Đường dẫn “auth fallback” cũ phát cảnh báo ở runtime và sẽ bị gỡ bỏ.
{
  "contracts": {
    "externalAuthProviders": ["anthropic", "openai"]
  }
}
Trường manifest : providerAuthEnvVars: { anthropic: ["ANTHROPIC_API_KEY"] }.Mới: phản chiếu cùng tra cứu biến môi trường đó vào setup.providers[].envVars trên manifest. Điều này hợp nhất metadata môi trường thiết lập/trạng thái vào một nơi và tránh khởi động runtime Plugin chỉ để trả lời các tra cứu biến môi trường.providerAuthEnvVars vẫn được hỗ trợ thông qua adapter tương thích cho đến khi giai đoạn ngừng khuyến nghị kết thúc.
: ba lời gọi riêng biệt — api.registerMemoryPromptSection(...), api.registerMemoryFlushPlan(...), api.registerMemoryRuntime(...).Mới: một lời gọi trên API trạng thái bộ nhớ — registerMemoryCapability(pluginId, { promptBuilder, flushPlanResolver, runtime }).Cùng các slot, một lời gọi đăng ký duy nhất. Các helper bộ nhớ bổ sung (registerMemoryPromptSupplement, registerMemoryCorpusSupplement, registerMemoryEmbeddingProvider) không bị ảnh hưởng.
Hai bí danh kiểu cũ vẫn được export từ src/plugins/runtime/types.ts:
Mới
SubagentReadSessionParamsSubagentGetSessionMessagesParams
SubagentReadSessionResultSubagentGetSessionMessagesResult
Phương thức runtime readSession bị ngừng khuyến nghị để chuyển sang getSessionMessages. Cùng chữ ký; phương thức cũ gọi chuyển tiếp sang phương thức mới.
: runtime.tasks.flow (số ít) trả về một accessor task-flow trực tiếp.Mới: runtime.tasks.managedFlows giữ runtime đột biến TaskFlow được quản lý cho các Plugin tạo, cập nhật, hủy hoặc chạy tác vụ con từ một flow. Dùng runtime.tasks.flows khi Plugin chỉ cần đọc dựa trên DTO.
// Before
const flow = api.runtime.tasks.flow.fromToolContext(ctx);
// After
const flow = api.runtime.tasks.managedFlows.fromToolContext(ctx);
Được đề cập trong “Cách di chuyển → Di chuyển tiện ích mở rộng kết quả công cụ Pi sang middleware” ở trên. Đưa vào đây cho đầy đủ: đường dẫn chỉ dành cho Pi api.registerEmbeddedExtensionFactory(...) đã bị gỡ bỏ được thay thế bằng api.registerAgentToolResultMiddleware(...) với danh sách runtime rõ ràng trong contracts.agentToolResultMiddleware.
OpenClawSchemaType được re-export từ openclaw/plugin-sdk hiện là một bí danh một dòng cho OpenClawConfig. Hãy ưu tiên tên chuẩn.
// Before
import type { OpenClawSchemaType } from "openclaw/plugin-sdk";
// After
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-schema";
Các mục ngừng khuyến nghị ở cấp tiện ích mở rộng (bên trong các Plugin kênh/provider tích hợp dưới extensions/) được theo dõi trong các barrel api.tsruntime-api.ts riêng của chúng. Chúng không ảnh hưởng đến hợp đồng Plugin bên thứ ba và không được liệt kê ở đây. Nếu bạn dùng trực tiếp barrel cục bộ của một Plugin tích hợp, hãy đọc các chú thích ngừng khuyến nghị trong barrel đó trước khi nâng cấp.

Lịch trình gỡ bỏ

KhiĐiều xảy ra
Hiện tạiCác bề mặt bị ngừng khuyến nghị phát cảnh báo runtime
Bản phát hành major tiếp theoCác bề mặt bị ngừng khuyến nghị sẽ bị gỡ bỏ; Plugin vẫn dùng chúng sẽ lỗi
Tất cả Plugin lõi đã được di chuyển. Các Plugin bên ngoài nên di chuyển trước bản phát hành major tiếp theo.

Tạm thời tắt các cảnh báo

Đặt các biến môi trường này trong khi bạn thực hiện di chuyển:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Đây là một lối thoát tạm thời, không phải giải pháp lâu dài.

Liên quan