import { HelpText } from './HelpText';
import { FieldLabel, FieldInput } from './formUtils';
import type { SectionFormProps } from './types';
export function SafetyForm({ config, onChange }: SectionFormProps) {
const safety = config.safety ?? {};
const historySummarization = safety.historySummarization ?? {};
return (
Safety
Max Iterations
onChange('safety.maxIterations', Number(v))} />
1 movement あたりの最大イテレーション回数。デフォルト: 200
Max Revisits
onChange('safety.maxRevisits', Number(v))} />
同一 movement への再訪問上限(ループ検出)。デフォルト: 3
Max Tool Loop Repeats
onChange('safety.maxToolLoopRepeats', Number(v))} />
同一 movement 内で全く同じツール呼び出し(ツール名+引数)を連続で繰り返した回数がこの値に達したら、ループとみなして強制中断する(2以上、デフォルト: 5)。手前で1回エージェントに警告を注入する
Prompt Guard Ratio
onChange('safety.promptGuardRatio', v ? Number(v) : undefined)} />
送信前に prompt がコンテキスト上限の何割を占めたら自動圧縮するか(0.5〜0.95、デフォルト: 0.8)
History Summarization
古い会話履歴を自動で要約して context を節約。デフォルト: 有効
Tail Turns
onChange('safety.historySummarization.tailTurns', Number(v))} />
常に保持する直近の assistant+tool ターン数。デフォルト: 2
Preserve Recent Budget
onChange('safety.historySummarization.preserveRecentBudget', Number(v))} />
要約せず温存する直近メッセージのトークン予算。デフォルト: 8000
);
}