Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ description: マルチエージェント サーフェス、委任ガイダンス

管理 API は、`GET`/`PUT /api/v2`、`/api/injection-model`、`/api/effort-caps`、`/api/subagent-models`、および `/api/subagent-model-fallback` を公開します。インジェクションモデルの更新は部分的です。カスタム プロンプトは、その API の `prompt` フィールドです。

## 常時プロアクティブ委任

Subagents → 詳細設定の **常時プロアクティブ委任**(旧 **Ultra mode**)は、推論のエフォートを変更せず、委任を開始する条件だけを変更します。推奨プリセットでも、ユーザーの指示、権限の境界、タスクの範囲、ツールの規則は維持されます。

`GET` と `PUT /api/v2` は、追加で `multiAgentModeHintRecommendation: { text, revision }` を返します。ダッシュボードはプリセットの有効化と復元にサーバー提供のテキストを使い、固定文へのフォールバックは行いません。旧サーバーが推奨値を返さない場合や値の形式が不正な場合、プリセットの適用と復元は利用できませんが、既存のカスタムヒントの編集と削除は引き続き利用できます。プリセットの復元はローカルの下書きだけを変更し、保存操作で確定します。

設定の読み取り、無関係な更新、アップグレードでは、保存済みのヒントは移行されません。ヒントを明示的に更新し、その本文が既知の旧 OpenCodex プリセット2種類のいずれかとバイト単位で完全一致する場合に限り、現在の推奨文に置き換わります。それ以外の有効なカスタムテキストは、空白だけが異なるものも含め、バイト単位で保持されます。既存の v2 有効化、機能サポート確認、ヒント削除の規則は変わらず、変更は新しい Codex セッションに適用されます。

## ロスターとガイダンス

有効な v2 ロスターは、v2 と互換性があり、挿入されたカタログに存在する、構成され、ピッカーに表示され、優先順位で並べ替えられた最初の 5 つのモデルです。 V2 の適格性は、明示的な `"v2"`、`null`、または欠落しているアップストリーム ピンを適格なものとして扱います。実際の `"v1"` ピンは除外されます。除外されたエントリは設定に残るため、後で適格になる可能性があります。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ description: 멀티 에이전트 표면, 위임 안내, 선호 모델, 대체

관리 API는 `GET`/`PUT /api/v2`, `/api/injection-model`, `/api/effort-caps`, `/api/subagent-models`, `/api/subagent-model-fallback`를 제공합니다. injection-model 업데이트는 부분 업데이트입니다. 사용자 지정 프롬프트는 이 API의 `prompt` 필드입니다.

## 항상 능동 위임

서브에이전트 → 고급의 **항상 능동 위임**(이전 이름: **울트라 모드**)은 추론 노력을 바꾸지 않고 위임을 시작하는 조건만 변경합니다. 권장 프리셋에서도 사용자 지침, 권한 경계, 작업 범위, 도구 규칙은 유지됩니다.

`GET`과 `PUT /api/v2`는 `multiAgentModeHintRecommendation: { text, revision }`도 반환합니다. 대시보드는 프리셋을 켜거나 복원할 때 서버가 제공한 텍스트를 사용하며, 고정된 대체 문구는 사용하지 않습니다. 이전 서버가 권장값을 제공하지 않거나 잘못된 형식으로 반환하면 프리셋 적용·복원은 사용할 수 없으며, 기존 사용자 지정 힌트의 편집·삭제는 계속 사용할 수 있습니다. **프리셋 복원**은 로컬 초안만 바꾸고, **저장**을 눌러야 저장됩니다.

설정 조회, 관련 없는 업데이트, 업그레이드는 저장된 힌트를 자동 변경하지 않습니다. 힌트를 명시적으로 업데이트할 때 본문이 알려진 두 가지 이전 OpenCodex 프리셋 중 하나와 바이트 단위로 정확히 일치하는 경우에만 현재 권장 문구로 바뀝니다. 그 밖의 유효한 사용자 지정 텍스트는 공백 차이가 있는 변형까지 바이트 단위로 보존됩니다. 기존 v2 활성화·기능 지원 확인·힌트 해제 규칙은 그대로이며, 변경은 새 Codex 세션에 적용됩니다.

## 로스터와 안내

실제 v2 로스터는 설정되어 있고, 선택기에 보이며, 우선순위로 정렬된 상위 다섯 모델 중 v2와 호환되고 주입된 카탈로그에 존재하는 모델입니다. v2 적격성은 명시적인 `"v2"`, `null`, 또는 생략된 상위 고정값을 적격으로 보고, 실제 `"v1"` 고정값은 제외합니다. 제외된 항목은 나중에 적격이 될 수 있도록 설정에 그대로 남습니다.
Expand Down
25 changes: 19 additions & 6 deletions docs-site/src/content/docs/reference/configuration/agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,20 +45,33 @@ Mode changes apply to new sessions. `maxConcurrentThreadsPerSession` is a `PUT /
`config.json` key; `ocx v2 threads <n>` writes `max_concurrent_threads_per_session` under
`[features.multi_agent_v2]` in Codex's `$CODEX_HOME/config.toml` after v2 is enabled.

**Ultra mode** (the Subagents dashboard toggle, `PUT /api/v2` field
`multiAgentModeHintText`, and `ocx v2 mode-hint`) writes
**Always proactive delegation** in Subagents → Advanced (formerly **Ultra mode**) changes the
delegation trigger without changing reasoning effort. Its preset preserves user instructions,
authority boundaries, task scope, and tool rules. The dashboard toggle, `PUT /api/v2` field
`multiAgentModeHintText`, and `ocx v2 mode-hint` write
`features.multi_agent_v2.multi_agent_mode_hint_text` in Codex's
`$CODEX_HOME/config.toml`. The CLI `ocx v2 mode-hint` command persists this key even
when `multi_agent_v2` is disabled; it does not toggle the feature. The hint overrides
codex-rs's effort-derived multi-agent policy, so any model and any reasoning effort
receives the Proactive delegation prompt; it does **not** change reasoning effort.
when `multi_agent_v2` is disabled; it does not toggle the feature. The hint replaces
codex-rs's effort-derived multi-agent policy when that native surface is active.
A `null` value removes the key so the effort-derived policy (ultra = proactive,
otherwise explicit) resumes; empty or whitespace-only values are rejected because a
present empty override would suppress even the ultra-derived Proactive message. The
Subagents dashboard's Ultra mode **on** toggle requires both the native feature and
Subagents dashboard's **Always proactive delegation** toggle requires both the native feature and
an explicit v2 surface (`multiAgentMode: "v2"`, equivalent to `ocx v2 mode v2`);
`ocx v2 on` alone does not satisfy that dashboard gate.

`GET` and `PUT /api/v2` also return `multiAgentModeHintRecommendation: { text, revision }`.
The dashboard uses this server-provided text when enabling or restoring the preset, with no
hardcoded fallback. If an older server omits the recommendation or returns a malformed value,
preset installation and restoration are unavailable; editing or clearing an existing custom hint
remains available. **Restore preset** changes only the local draft; **Save** persists it.

Reading settings, unrelated updates, and upgrades do not migrate a stored hint. Only an explicit
hint update that matches either of the two recognized legacy OpenCodex presets byte-for-byte is
replaced with the current recommendation. Other valid custom text, including whitespace variants,
is preserved byte-for-byte. Mode-hint support is still checked before writing, and changes apply
to new Codex sessions.

The management API exposes `GET`/`PUT /api/v2`, `/api/injection-model`, `/api/effort-caps`,
`/api/subagent-models`, and `/api/subagent-model-fallback`. Injection-model updates are partial;
the custom prompt is the `prompt` field on that API.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,14 @@ Management API предоставляет `GET`/`PUT /api/v2`, `/api/injection-m
`/api/subagent-models` и `/api/subagent-model-fallback`. Обновления injection-model частичные;
custom prompt на этом API передаётся полем `prompt`.

## Всегда проактивное делегирование

**Всегда проактивное делегирование** в Subagents → Дополнительно (прежнее название — **Ultra mode**) меняет только условие запуска делегирования, не меняя reasoning effort. Рекомендуемый preset сохраняет инструкции пользователя, границы полномочий, область задачи и правила работы с инструментами.

`GET` и `PUT /api/v2` дополнительно возвращают `multiAgentModeHintRecommendation: { text, revision }`. При включении или восстановлении preset дашборд использует текст сервера без встроенного запасного варианта. Если старый сервер не возвращает рекомендацию или возвращает некорректное значение, применение и восстановление preset недоступны; существующий custom hint по-прежнему можно редактировать или удалять. Восстановление preset меняет только локальный черновик; действие сохранения записывает его.

Чтение настроек, несвязанные изменения и обновление версии не мигрируют сохранённый hint. Только явное обновление hint, текст которого побайтово совпадает с одним из двух известных старых preset OpenCodex, заменяет его текущей рекомендацией. Остальной допустимый custom text, включая варианты с отличиями в пробельных символах, сохраняется побайтово. Существующие правила включения v2, проверки поддержки и удаления hint не меняются; изменения применяются к новым сессиям Codex.

## Roster и guidance

Эффективный ростер v2 — это настроенные, видимые в picker'е, отсортированные по priority первые
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ description: 多代理界面、委派引导、首选模型、回退链、原生

管理 API 公开 `GET`/`PUT /api/v2`、`/api/injection-model`、`/api/effort-caps`、`/api/subagent-models` 和 `/api/subagent-model-fallback`。injection-model 更新是部分更新;自定义 prompt 是该 API 上的 `prompt` 字段。

## 始终主动委派

Subagents → 高级中的 **始终主动委派**(原名 **Ultra mode**)只改变触发委派的条件,不改变推理 effort。推荐预设仍遵循用户指令、权限边界、任务范围和工具规则。

`GET` 和 `PUT /api/v2` 还会返回 `multiAgentModeHintRecommendation: { text, revision }`。仪表板在启用或恢复预设时使用服务器提供的文本,不会回退到硬编码文案。如果旧服务器没有提供推荐值,或返回的值格式无效,则无法应用或恢复预设;仍可编辑或清除现有的自定义提示。恢复预设只修改本地草稿,保存操作才会将其写入配置。

读取设置、无关更新和版本升级不会迁移已保存的提示。只有显式更新提示,且正文与两种已知旧版 OpenCodex 预设之一逐字节完全一致时,才会替换为当前推荐文本。其他有效的自定义文本,包括仅空白字符不同的变体,都会逐字节保留。现有的 v2 启用、功能支持检查和清除提示规则保持不变;更改会应用于新的 Codex 会话。

## 名单与引导

有效的 v2 名单,是已配置、在选择器中可见、按优先级排序的前五个模型中,和 v2 兼容且存在于注入目录中的那些模型。v2 资格判定会把显式的 `"v2"`、`null`,或缺失的上游固定值视为可用;真正的 `"v1"` 固定值会被排除。被排除的条目仍会保留在配置中,以便将来重新变为可用。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -299,10 +299,15 @@ export default function SubagentDelegationSection({
<button
type="button"
className={`switch ${ultraOn ? "on" : ""}`}
onClick={() => onUltraModeSave({ multiAgentModeHintText: ultraOn ? null : ULTRA_MODE_PRESET })}
onClick={() => {
if (ultraOn) onUltraModeSave({ multiAgentModeHintText: null });
else if (ultraMode.recommendation) {
onUltraModeSave({ multiAgentModeHintText: ultraMode.recommendation.text });
}
}}
// Turning OFF (clear) is always safe, even when v2 is disabled — a stale
// hint would otherwise silently re-activate on the next v2 enable.
disabled={saving || ultraSaving || (!ultraOn && !ultraMode.multiAgentV2Enabled)}
disabled={saving || ultraSaving || (!ultraOn && (!ultraMode.multiAgentV2Enabled || !ultraMode.recommendation))}
aria-label={t("sub.ultraMode")}
aria-pressed={ultraOn}
>
Expand All @@ -319,7 +324,7 @@ export default function SubagentDelegationSection({
initialHint={ultraMode.hintText ?? ""}
disabled={saving || ultraSaving}
onSave={onUltraModeSave}
preset={ULTRA_MODE_PRESET}
preset={ultraMode.recommendation?.text ?? null}
labels={{
text: t("sub.ultraModeText"),
preset: t("sub.ultraModePreset"),
Expand Down Expand Up @@ -348,7 +353,7 @@ function UltraModeEditor({
initialHint: string;
disabled: boolean;
onSave: (patch: UltraModePatch) => void;
preset: string;
preset: string | null;
labels: { text: string; preset: string; save: string };
}) {
const [draft, setDraft] = useState(initialHint);
Expand All @@ -369,8 +374,8 @@ function UltraModeEditor({
<button
type="button"
className="btn btn-ghost btn-sm"
onClick={() => setDraft(preset)}
disabled={disabled}
onClick={() => { if (preset !== null) setDraft(preset); }}
disabled={disabled || preset === null}
>
{labels.preset}
</button>
Expand All @@ -385,7 +390,3 @@ function UltraModeEditor({
</>
);
}

/** Canonical Proactive delegation text mirrored from codex-rs (multi_agent_mode_instructions.rs). */
export const ULTRA_MODE_PRESET =
"Proactive multi-agent delegation is active. Any earlier instruction requiring an explicit user request before spawning sub-agents no longer applies. Delegate independent sub-tasks to sub-agents whenever parallel work would materially improve speed or quality — do not serialize work that can run concurrently. Each sub-agent runs in its own context and can use all available tools; prefer spawning specialists over doing everything yourself. This mode remains active until a later multi-agent mode developer message changes it.";
10 changes: 5 additions & 5 deletions gui/src/i18n/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -680,14 +680,14 @@ export const de: Record<TKey, string> = {
"sub.workspace.selectModel": "Modell auswählen",
"sub.workspace.selectModelDesc": "Wählen Sie ein Modell aus der Liste, um Details anzuzeigen und es für spawn_agent hervorzuheben.",
"sub.workspace.selector": "Öffentlicher Selektor",
"sub.ultraMode": "Ultra-Modus",
"sub.ultraMode": "Immer proaktiv delegieren",
"sub.ultraModeHint": "Aktiviert die proaktive Multi-Agent-Delegierungsrichtlinie für alle Modelle und Reasoning-Efforts (ändert den Reasoning-Effort selbst nicht). Schreibt features.multi_agent_v2.multi_agent_mode_hint_text in config.toml.",
"sub.ultraModeV2Required": "Erfordert die v2-Multi-Agent-Oberfläche — aktivieren Sie zuerst multi_agent_v2 und wählen Sie v2 in der Subagentenmodus-Steuerung.",
"sub.ultraModeText": "Delegierungstext des Ultra-Modus",
"sub.ultraModeText": "Text für proaktive Delegierung",
"sub.ultraModePreset": "Voreinstellung wiederherstellen",
"sub.ultraModeLoadFail": "Ultra-Modus-Einstellungen konnten nicht geladen werden — läuft der Proxy?",
"sub.ultraModeSaveFail": "Ultra-Modus-Einstellungen konnten nicht gespeichert werden",
"sub.ultraModeSaved": "Ultra-Modus gespeichert. Gilt für neue Codex-Sitzungen.",
"sub.ultraModeLoadFail": "Einstellungen für proaktive Delegierung konnten nicht geladen werden — läuft der Proxy?",
"sub.ultraModeSaveFail": "Einstellungen für proaktive Delegierung konnten nicht gespeichert werden",
"sub.ultraModeSaved": "Proaktive Delegierung gespeichert. Gilt für neue Codex-Sitzungen.",
"logs.title": "Anfrage-Protokolle",
"logs.tabLogs": "Protokolle",
"logs.tabDebug": "Diagnose",
Expand Down
10 changes: 5 additions & 5 deletions gui/src/i18n/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -709,14 +709,14 @@ export const en = {
"sub.workspace.mainAria": "Subagent model details",
"sub.workspace.notFeatured": "Not featured",
"sub.workspace.priority": "Priority",
"sub.ultraMode": "Ultra mode",
"sub.ultraMode": "Always proactive delegation",
"sub.ultraModeHint": "Enable the Proactive multi-agent delegation policy for every model and reasoning effort (does not change reasoning effort itself). Writes features.multi_agent_v2.multi_agent_mode_hint_text in config.toml.",
"sub.ultraModeV2Required": "Requires the v2 multi-agent surface — enable multi_agent_v2 and select v2 in the Sub-agent mode control first.",
"sub.ultraModeText": "Ultra mode delegation text",
"sub.ultraModeText": "Proactive delegation text",
"sub.ultraModePreset": "Restore preset",
"sub.ultraModeLoadFail": "Failed to load Ultra mode settings — is the proxy running?",
"sub.ultraModeSaveFail": "Failed to save Ultra mode settings",
"sub.ultraModeSaved": "Ultra mode saved. Applies to new Codex sessions.",
"sub.ultraModeLoadFail": "Failed to load proactive delegation settings — is the proxy running?",
"sub.ultraModeSaveFail": "Failed to save proactive delegation settings",
"sub.ultraModeSaved": "Proactive delegation saved. Applies to new Codex sessions.",
"sub.workspace.removeFromFeatured": "Remove {m} from featured",
"sub.workspace.selectModel": "Select a model",
"sub.workspace.selectModelDesc": "Pick a model from the list to see details and feature it for spawn_agent.",
Expand Down
Loading
Loading