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

推荐订阅源

Martin Fowler
Martin Fowler
J
Java Code Geeks
博客园 - 【当耐特】
宝玉的分享
宝玉的分享
腾讯CDC
D
DataBreaches.Net
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
V
V2EX
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
Jina AI
Jina AI
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
B
Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium

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(openai): refresh live prompt overlay config · opencla...
vincentkoc · 2026-04-23 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -112,6 +112,7 @@ Docs: https://docs.openclaw.ai

112112

- Active Memory: stop reviving removed live `active-memory` config from startup snapshots, so removing the plugin entry turns the hook off immediately instead of waiting for a restart. Thanks @vincentkoc.

113113

- GitHub Copilot: re-read plugin discovery config from the live runtime snapshot, so toggling `plugins.entries.github-copilot.config.discovery.enabled` takes effect without a restart. Thanks @vincentkoc.

114114

- Ollama: re-read plugin discovery config from the live runtime snapshot, so toggling `plugins.entries.ollama.config.discovery.enabled` takes effect without a restart. Thanks @vincentkoc.

115+

- OpenAI: re-read the plugin prompt-overlay personality from live runtime config, so GPT-5 system prompt contributions update without a restart when `plugins.entries.openai.config.personality` changes. Thanks @vincentkoc.

115116

- Agents/subagents: drop bare `NO_REPLY` from the parent turn when the session still has pending spawned children, so direct-conversation surfaces such as Telegram DMs no longer rewrite the sentinel into visible fallback chatter while waiting for the child completion event. (#69942) Thanks @neeravmakwana.

116117

- Plugins/install: keep bundled plugin dependencies off npm install while repairing them when plugins activate from a packaged install, including Feishu/Lark, Browser, and direct bundled channel setup-entry loads.

117118

- CLI/channels: skip and cache bundled channel plugin, setup, and secrets load failures during read-only discovery, so one broken unused bundled channel cannot crash `openclaw status` or bootstrap secret scans.

Original file line numberDiff line numberDiff line change

@@ -563,6 +563,42 @@ describe("openai plugin", () => {

563563

});

564564

});

565565
566+

it("uses live plugin config for GPT-5 prompt overlay mode", async () => {

567+

const { providers } = await registerOpenAIPluginWithHook({

568+

pluginConfig: { personality: "off" },

569+

});

570+
571+

const openaiProvider = requireRegisteredProvider(providers, "openai");

572+

expect(

573+

openaiProvider.resolveSystemPromptContribution?.({

574+

config: {

575+

plugins: {

576+

entries: {

577+

openai: {

578+

config: {

579+

personality: "friendly",

580+

},

581+

},

582+

},

583+

},

584+

},

585+

agentDir: undefined,

586+

workspaceDir: undefined,

587+

provider: "openai",

588+

modelId: "gpt-5.4",

589+

promptMode: "full",

590+

runtimeChannel: undefined,

591+

runtimeCapabilities: undefined,

592+

agentId: undefined,

593+

}),

594+

).toEqual({

595+

stablePrefix: OPENAI_GPT5_BEHAVIOR_CONTRACT,

596+

sectionOverrides: {

597+

interaction_style: OPENAI_FRIENDLY_PROMPT_OVERLAY,

598+

},

599+

});

600+

});

601+
566602

it("treats on as an alias for the friendly prompt overlay", async () => {

567603

const { providers } = await registerOpenAIPluginWithHook({

568604

pluginConfig: { personality: "on" },

Original file line numberDiff line numberDiff line change

@@ -1,3 +1,4 @@

1+

import { resolvePluginConfigObject } from "openclaw/plugin-sdk/config-runtime";

12

import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";

23

import { buildProviderToolCompatFamilyHooks } from "openclaw/plugin-sdk/provider-tools";

34

import { buildOpenAICodexCliBackend } from "./cli-backend.js";

@@ -23,21 +24,25 @@ export default definePluginEntry({

2324

name: "OpenAI Provider",

2425

description: "Bundled OpenAI provider plugins",

2526

register(api) {

26-

const promptOverlayMode = resolveOpenAIPromptOverlayMode(api.pluginConfig);

2727

const openAIToolCompatHooks = buildProviderToolCompatFamilyHooks("openai");

2828

const buildProviderWithPromptContribution = <T extends ReturnType<typeof buildOpenAIProvider>>(

2929

provider: T,

3030

): T => ({

3131

...provider,

3232

...openAIToolCompatHooks,

33-

resolveSystemPromptContribution: (ctx) =>

34-

resolveOpenAISystemPromptContribution({

33+

resolveSystemPromptContribution: (ctx) => {

34+

const runtimePluginConfig = resolvePluginConfigObject(ctx.config, "openai");

35+

const pluginConfig =

36+

runtimePluginConfig ??

37+

(ctx.config ? undefined : (api.pluginConfig as Record<string, unknown>));

38+

return resolveOpenAISystemPromptContribution({

3539

config: ctx.config,

36-

legacyPluginConfig: api.pluginConfig,

37-

mode: promptOverlayMode,

40+

legacyPluginConfig: pluginConfig,

41+

mode: resolveOpenAIPromptOverlayMode(pluginConfig),

3842

modelProviderId: provider.id,

3943

modelId: ctx.modelId,

40-

}),

44+

});

45+

},

4146

});

4247

api.registerCliBackend(buildOpenAICodexCliBackend());

4348

api.registerProvider(buildProviderWithPromptContribution(buildOpenAIProvider()));