feat(sisyphus): add Kimi K2.x prompt variant

- New src/agents/sisyphus/kimi-k2-6.ts based on gpt-5-4.ts 8-block architecture
- New src/agents/sisyphus-junior/kimi-k2-6.ts worker variant
- Preserves 4 pillars: intent gate + verbalization, parallel tools, verification
- Adds <re_entry_rule>: suppress re-verbalization for already-resolved turns
- Adds <exploration_budget>: hard stop conditions alongside aggressive parallelism
- Tiered <verification_loop> (V1/V2/V3): V3 keeps full rigor with harsh enforcement
- Adds <token_economy>: verbalization explicitly excluded from trim mandate
- isKimiK2Model in types.ts: matches kimi, k2p5/k2p6 variants (case-insensitive)
- Routing in sisyphus.ts + sisyphus-junior/agent.ts
- Tests: 3 new kimi routing cases in sisyphus-junior/index.test.ts (all pass)

Motivation: K2.x was post-trained with Toggle RL (~25-30% token reduction) and a
GRM scoring appropriate detail + intent inference. Reusing Claude-style prompts
double-taxes the model — external strictness on top of RL-learned strictness causes
over-deliberation on already-resolved requests. The re-entry rule and exploration
budget fix this without weakening verification rigor.

Refs: kimi.com/blog/kimi-k2-6, arxiv 2602.02276 §4.4.2 (Toggle, GRM)
This commit is contained in:
YeonGyu-Kim
2026-04-28 14:57:17 +09:00
parent 886845b703
commit 7a3a835a22
8 changed files with 863 additions and 1 deletions
+29
View File
@@ -6,6 +6,7 @@ import {
isGpt5_5Model,
isGptNativeSisyphusModel,
isClaudeOpus47Model,
isKimiK2Model,
} from "./types";
import {
buildGeminiToolMandate,
@@ -18,6 +19,7 @@ import {
import { buildClaudeOpus47SisyphusPrompt } from "./sisyphus/claude-opus-4-7";
import { buildGpt54SisyphusPrompt } from "./sisyphus/gpt-5-4";
import { buildGpt55SisyphusPrompt } from "./sisyphus/gpt-5-5";
import { buildKimiK26SisyphusPrompt } from "./sisyphus/kimi-k2-6";
import { buildTaskManagementSection } from "./sisyphus/default";
import { getGptApplyPatchPermission } from "./gpt-apply-patch-guard";
import { getFrontierToolSchemaPermission } from "./frontier-tool-schema-guard";
@@ -489,6 +491,33 @@ export function createSisyphusAgent(
const categories = availableCategories ?? [];
const agents = availableAgents ?? [];
if (isKimiK2Model(model)) {
const prompt = buildKimiK26SisyphusPrompt(
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",
...getFrontierToolSchemaPermission(model),
...getGptApplyPatchPermission(model),
} as AgentConfig["permission"],
reasoningEffort: "medium",
};
}
if (isGpt5_5Model(model)) {
const prompt = buildGpt55SisyphusPrompt(
model,