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
); }