feat(agents): add gpt-5.5 native sisyphus prompt

Ground-up rewrite styled after OpenAI Codex's gpt-5.4 prompt
architecture: '# General' -> '## Autonomy and Persistence' -> '## Task
execution' -> '## Validating your work' -> '# Working with the user' ->
'# Tool Guidelines' section hierarchy.

Key differences from the gpt-5-4 variant:
- Prose-first output, bullets only when content is list-shaped
- Contract frames replace threat frames (GPT-5.5 follows instructions
  well; NEVER/FORBIDDEN rhetoric adds entropy without compliance gain)
- Explicit opener blacklist for 'Done -', 'Got it', 'Great question'
- '{{ personality }}' slot reserved for future persona substitution
- '{{ taskSystemGuide }}' slot switches todo/task tools per harness cfg
- Codex-compatible clickable file reference format

Sisyphus factory now checks isGpt5_5Model before isGptNativeSisyphusModel,
so gpt-5.5 models route to the new prompt while gpt-5.4, gpt-5.6+, and
other matches stay on the existing gpt-5-4 prompt.
This commit is contained in:
YeonGyu-Kim
2026-04-24 13:05:49 +09:00
parent 69e6f386b3
commit 98964eb6f8
3 changed files with 341 additions and 1 deletions
+28 -1
View File
@@ -1,6 +1,6 @@
import type { AgentConfig } from "@opencode-ai/sdk";
import type { AgentMode, AgentPromptMetadata } from "./types";
import { isGptModel, isGeminiModel, isGptNativeSisyphusModel } from "./types";
import { isGptModel, isGeminiModel, isGpt5_5Model, isGptNativeSisyphusModel } from "./types";
import {
buildGeminiToolMandate,
buildGeminiDelegationOverride,
@@ -10,6 +10,7 @@ import {
buildGeminiToolCallExamples,
} from "./sisyphus/gemini";
import { buildGpt54SisyphusPrompt } from "./sisyphus/gpt-5-4";
import { buildGpt55SisyphusPrompt } from "./sisyphus/gpt-5-5";
import { buildTaskManagementSection } from "./sisyphus/default";
import { getGptApplyPatchPermission } from "./gpt-apply-patch-guard";
@@ -480,6 +481,32 @@ export function createSisyphusAgent(
const categories = availableCategories ?? [];
const agents = availableAgents ?? [];
if (isGpt5_5Model(model)) {
const prompt = buildGpt55SisyphusPrompt(
model,
agents,
tools,
skills,
categories,
useTaskSystem,
);
return {
description:
"Powerful AI orchestrator. Plans obsessively with todos, assesses search complexity before exploration, delegates strategically via category+skills combinations. Uses explore for internal code (parallel-friendly), librarian for external docs. (Sisyphus - OhMyOpenCode)",
mode: MODE,
model,
maxTokens: 64000,
prompt,
color: "#00CED1",
permission: {
question: "allow",
call_omo_agent: "deny",
...getGptApplyPatchPermission(model),
} as AgentConfig["permission"],
reasoningEffort: "medium",
};
}
if (isGptNativeSisyphusModel(model)) {
const prompt = buildGpt54SisyphusPrompt(
model,