/** * AgentSettings — Agent 配置 Tab * * 从 SettingsModal.tsx 提取(v0.4.1 拆分)。 * 功能:迭代次数 / 总超时 / 工具超时 / 确认超时 / 思考模式配置。 */ import { TextField, Select, MenuItem, Stack, Typography, Checkbox, FormControlLabel, InputLabel, FormControl, } from '@mui/material'; import { useConfig } from './useConfig'; // v0.7.4 P3-1: 文案出层(字典含注册副作用,须在 t() 使用前 import) import { t } from '@renderer/lib/i18n'; import '@renderer/lib/i18n-strings'; export function AgentSettings() { const [maxIter, setMaxIter] = useConfig('agent.maxIterations', 20); const [timeout, setTimeout_] = useConfig('agent.totalTimeoutMs', 600000); const [thinking, setThinking] = useConfig('agent.enableThinking', true); const [thinkingEffort, setThinkingEffort] = useConfig('agent.thinkingEffort', 'high'); // v0.7.3 P3-1: REFLECTING 状态开关(引擎侧 agent.enableReflection,默认关闭) const [reflection, setReflection] = useConfig('agent.enableReflection', false); const [confirmTimeout, setConfirmTimeout] = useConfig('agent.confirmationTimeoutMs', 120000); const [toolExecTimeout, setToolExecTimeout] = useConfig('agent.toolExecutionTimeoutMs', 120000); const MAX_ITER_OPTIONS = [10, 20, 50, 85, 128, 256, 512]; return ( {t('settings.agent.title')} {t('settings.agent.maxIterations')} { const v = Number(e.target.value); if (v >= 120 && v <= 3600) setTimeout_(v * 1000); }} slotProps={{ htmlInput: { min: 120, max: 3600, step: 30 } }} /> { const v = Number(e.target.value); if (v >= 10) setToolExecTimeout(v * 1000); }} slotProps={{ htmlInput: { min: 10, step: 10 } }} helperText={t('settings.agent.toolExecTimeoutHelper')} /> { const v = Number(e.target.value); if (v >= 30 && v <= 600) setConfirmTimeout(v * 1000); }} slotProps={{ htmlInput: { min: 30, max: 600, step: 10 } }} helperText={t('settings.agent.confirmTimeoutHelper')} /> setThinking(e.target.checked)} size="small" /> } label={{t('settings.agent.enableThinking')}} /> {thinking && ( {t('settings.agent.thinkingEffort')} )} {/* v0.7.3 P3-1: enableReflection 接线(此前为死配置)— 引擎 REFLECTING 状态开关 */} setReflection(e.target.checked)} size="small" /> } label={ {t('settings.agent.enableReflection')} {t('settings.agent.enableReflectionHelper')} } /> ); }