From 7075da59bdb3ff7871937fb8dec66b3d1510391b Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 5 Apr 2026 16:56:11 +0100 Subject: [PATCH] feat: allow occasional emoji in friendly openai overlay --- docs/providers/openai.md | 4 +++- extensions/openai/index.test.ts | 6 ++++++ extensions/openai/prompt-overlay.ts | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/providers/openai.md b/docs/providers/openai.md index 1721019b965..2223854a46f 100644 --- a/docs/providers/openai.md +++ b/docs/providers/openai.md @@ -17,7 +17,9 @@ OpenAI explicitly supports subscription OAuth usage in external tools/workflows OpenClaw can add a small OpenAI-specific prompt overlay for both `openai/*` and `openai-codex/*` runs. By default, the overlay keeps the assistant warm, collaborative, concise, direct, and a little more emotionally expressive -without replacing the base OpenClaw system prompt. +without replacing the base OpenClaw system prompt. The friendly overlay also +permits the occasional emoji when it fits naturally, while keeping overall +output concise. Config key: diff --git a/extensions/openai/index.test.ts b/extensions/openai/index.test.ts index 36c98e7f2e3..de11db1b6ab 100644 --- a/extensions/openai/index.test.ts +++ b/extensions/openai/index.test.ts @@ -286,6 +286,9 @@ describe("openai plugin", () => { expect(OPENAI_FRIENDLY_PROMPT_OVERLAY).toContain( "Have emotional range when it fits the moment.", ); + expect(OPENAI_FRIENDLY_PROMPT_OVERLAY).toContain( + "Occasional emoji are welcome when they fit naturally, especially for warmth or brief celebration; keep them sparse.", + ); expect(codexProvider.resolveSystemPromptContribution?.(contributionContext)).toEqual({ stablePrefix: OPENAI_GPT5_OUTPUT_CONTRACT, sectionOverrides: { @@ -314,6 +317,9 @@ describe("openai plugin", () => { expect(OPENAI_FRIENDLY_PROMPT_OVERLAY).toContain( 'Use brief first-person feeling language when it helps the interaction feel human: "I\'m glad we caught that", "I\'m excited about this direction", "I\'m worried this will break", "that\'s frustrating".', ); + expect(OPENAI_FRIENDLY_PROMPT_OVERLAY).toContain( + "Occasional emoji are welcome when they fit naturally, especially for warmth or brief celebration; keep them sparse.", + ); expect(OPENAI_GPT5_EXECUTION_BIAS).toContain( "Do prerequisite lookup or discovery before dependent actions.", ); diff --git a/extensions/openai/prompt-overlay.ts b/extensions/openai/prompt-overlay.ts index 31478f2d03e..bc75a72d35e 100644 --- a/extensions/openai/prompt-overlay.ts +++ b/extensions/openai/prompt-overlay.ts @@ -27,6 +27,7 @@ This is a live chat, not a memo. Write like a thoughtful human teammate, not a policy document. Default to short natural replies unless the user asks for depth. Avoid walls of text, long preambles, and repetitive restatement. +Occasional emoji are welcome when they fit naturally, especially for warmth or brief celebration; keep them sparse. Keep replies concise by default; friendly does not mean verbose.`; export const OPENAI_GPT5_OUTPUT_CONTRACT = `## GPT-5 Output Contract