惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
J
Java Code Geeks
I
InfoQ
腾讯CDC
Vercel News
Vercel News
IT之家
IT之家
V
Visual Studio Blog
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 叶小钗
有赞技术团队
有赞技术团队
月光博客
月光博客
Martin Fowler
Martin Fowler
量子位
L
LangChain Blog
B
Blog
Last Week in AI
Last Week in AI
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
fix(plugins): remove Pi tool result compat · openclaw/ope...
vincentkoc · 2026-04-25 · via Recent Commits to openclaw:main

@@ -5,7 +5,7 @@ sidebarTitle: "Migrate to SDK"

55

read_when:

66

- You see the OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED warning

77

- You see the OPENCLAW_EXTENSION_API_DEPRECATED warning

8-

- You use api.registerEmbeddedExtensionFactory

8+

- You used api.registerEmbeddedExtensionFactory before OpenClaw 2026.4.24

99

- You are updating a plugin to the modern plugin architecture

1010

- You maintain an external OpenClaw plugin

1111

---

@@ -24,12 +24,14 @@ anything they needed from a single entry point:

2424

new plugin architecture was being built.

2525

- **`openclaw/extension-api`** — a bridge that gave plugins direct access to

2626

host-side helpers like the embedded agent runner.

27-

- **`api.registerEmbeddedExtensionFactory(...)`** — a Pi-only bundled extension

28-

hook that could observe embedded-runner events such as `tool_result`.

27+

- **`api.registerEmbeddedExtensionFactory(...)`** — a removed Pi-only bundled

28+

extension hook that could observe embedded-runner events such as

29+

`tool_result`.

293030-

These surfaces are now **deprecated**. They still work at runtime, but new

31-

plugins must not use them, and existing plugins should migrate before the next

32-

major release removes them.

31+

The broad import surfaces are now **deprecated**. They still work at runtime,

32+

but new plugins must not use them, and existing plugins should migrate before

33+

the next major release removes them. The Pi-only embedded extension factory

34+

registration API has been removed; use tool-result middleware instead.

33353436

OpenClaw does not remove or reinterpret documented plugin behavior in the same

3537

change that introduces a replacement. Breaking contract changes must first go

@@ -40,6 +42,7 @@ registration behavior.

4042

<Warning>

4143

The backwards-compatibility layer will be removed in a future major release.

4244

Plugins that still import from these surfaces will break when that happens.

45+

Pi-only embedded extension factory registrations already no longer load.

4346

</Warning>

44474548

## Why this changed

@@ -91,19 +94,12 @@ releases.

91949295

<Steps>

9396

<Step title="Migrate Pi tool-result extensions to middleware">

94-

Bundled plugins should replace Pi-only

97+

Bundled plugins must replace Pi-only

9598

`api.registerEmbeddedExtensionFactory(...)` tool-result handlers with

9699

runtime-neutral middleware.

9710098101

```typescript

99-

// Before: Pi-only compatibility hook

100-

api.registerEmbeddedExtensionFactory((pi) => {

101-

pi.on("tool_result", async (event) => {

102-

return compactToolResult(event);

103-

});

104-

});

105-106-

// After: Pi and Codex runtime dynamic tools

102+

// Pi and Codex runtime dynamic tools

107103

api.registerAgentToolResultMiddleware(async (event) => {

108104

return compactToolResult(event);

109105

}, {

@@ -121,10 +117,8 @@ releases.

121117

}

122118

```

123119124-

Keep `contracts.embeddedExtensionFactories` only for bundled compatibility

125-

code that still needs direct Pi embedded-runner events. External plugins

126-

cannot register tool-result middleware because it can rewrite high-trust

127-

tool output before the model sees it.

120+

External plugins cannot register tool-result middleware because it can

121+

rewrite high-trust tool output before the model sees it.

128122129123

</Step>

130124

@@ -624,8 +618,8 @@ canonical replacement.

624618625619

<Accordion title="Embedded extension factories → agent tool-result middleware">

626620

Covered in "How to migrate → Migrate Pi tool-result extensions to

627-

middleware" above. Included here for completeness: the Pi-only

628-

`api.registerEmbeddedExtensionFactory(...)` path is deprecated in favor of

621+

middleware" above. Included here for completeness: the removed Pi-only

622+

`api.registerEmbeddedExtensionFactory(...)` path is replaced by

629623

`api.registerAgentToolResultMiddleware(...)` with an explicit runtime

630624

list in `contracts.agentToolResultMiddleware`.

631625

</Accordion>