Add files via upload

This commit is contained in:
公明
2026-07-09 11:26:31 +08:00
committed by GitHub
parent 526e8626e9
commit 69e8d7020c
6 changed files with 117 additions and 1 deletions
+14
View File
@@ -5719,6 +5719,20 @@ html[data-theme="dark"] .openapi-doc-btn:hover {
margin-bottom: 16px;
}
.settings-advanced-block {
grid-column: 1 / -1;
margin-top: 4px;
padding-top: 8px;
border-top: 1px solid var(--border-color);
}
.settings-advanced-block summary {
cursor: pointer;
font-size: 0.875rem;
font-weight: 500;
color: var(--accent-color);
}
.robot-manager {
margin-bottom: 24px;
}
+11
View File
@@ -2267,6 +2267,17 @@
"multiAgentPeLoopHint": "Only for plan_execute; max execute↔replan rounds.",
"multiAgentRobotMode": "Default conversation mode for bots",
"multiAgentRobotModeHint": "Execution mode for WeCom / DingTalk / Lark bot messages. Deep / Plan-Execute / Supervisor require multi-agent to be enabled.",
"agentAdvanced": "Advanced settings",
"userLedgerMaxRunes": "User input ledger total character limit",
"userLedgerMaxRunesHint": "Total limit for the original user input ledger injected after compaction; 0 uses the backend default. DB-stored original messages are not truncated.",
"userLedgerEntryMaxRunes": "Per-message user input character limit",
"userLedgerEntryMaxRunesHint": "Model-visible limit for each user message in the ledger; 0 uses the backend default and does not affect DB originals.",
"latestUserMaxRunes": "Latest user input character limit",
"latestUserMaxRunesHint": "Runtime limit for the current user message sent to the model; oversized input is persisted and only a preview is injected. 0 uses the backend default.",
"latestUserHeadRunes": "Latest user input head preview",
"latestUserHeadRunesHint": "Head characters kept visible to the model for oversized current user input.",
"latestUserTailRunes": "Latest user input tail preview",
"latestUserTailRunesHint": "Tail characters kept visible to the model for oversized current user input.",
"multiAgentBatchUse": "Use multi-agent for batch task queues",
"multiAgentBatchUseHint": "When enabled, each sub-task executed by queue in Task Management will run through Eino DeepAgent (requires multi-agent).",
"enableKnowledge": "Enable knowledge retrieval",
+11
View File
@@ -2255,6 +2255,17 @@
"multiAgentPeLoopHint": "仅 plan_execute 有效;execute 与 replan 之间的最大轮次。",
"multiAgentRobotMode": "机器人默认对话模式",
"multiAgentRobotModeHint": "企业微信 / 钉钉 / 飞书机器人每条消息使用的执行模式;Deep / Plan-Execute / Supervisor 需启用多代理。",
"agentAdvanced": "高级设置",
"userLedgerMaxRunes": "用户原文账本总字符上限",
"userLedgerMaxRunesHint": "压缩后注入模型上下文的原始用户输入账本总上限;0 使用后端默认值。DB 原始消息不裁剪。",
"userLedgerEntryMaxRunes": "单条用户原文字符上限",
"userLedgerEntryMaxRunesHint": "账本中单条用户消息的模型可见上限;0 使用后端默认值,不影响 DB 原文。",
"latestUserMaxRunes": "最新用户输入字符上限",
"latestUserMaxRunesHint": "本轮最新 user 进入模型上下文的上限;超出时全文落盘,只注入预览。0 使用后端默认值。",
"latestUserHeadRunes": "最新用户输入头部预览",
"latestUserHeadRunesHint": "超长最新 user 保留给模型看的头部字符数。",
"latestUserTailRunes": "最新用户输入尾部预览",
"latestUserTailRunesHint": "超长最新 user 保留给模型看的尾部字符数。",
"multiAgentBatchUse": "批量任务队列也使用多代理",
"multiAgentBatchUseHint": "开启后,任务管理中按队列执行的每个子任务将走 Eino DeepAgent(需启用多代理)。",
"enableKnowledge": "启用知识检索功能",
+46 -1
View File
@@ -708,6 +708,31 @@ async function loadConfig(loadTools = true) {
maRobotMode.value = mode;
syncRobotAgentModeSelectOptions(ma.enabled === true);
}
const userLedgerMaxEl = document.getElementById('summarization-user-ledger-max-runes');
if (userLedgerMaxEl) {
const v = ma.summarization_user_intent_ledger_max_runes;
userLedgerMaxEl.value = (v !== undefined && v !== null && !Number.isNaN(Number(v))) ? String(Number(v)) : '96000';
}
const userLedgerEntryMaxEl = document.getElementById('summarization-user-ledger-entry-max-runes');
if (userLedgerEntryMaxEl) {
const v = ma.summarization_user_intent_ledger_entry_max_runes;
userLedgerEntryMaxEl.value = (v !== undefined && v !== null && !Number.isNaN(Number(v))) ? String(Number(v)) : '16000';
}
const latestUserMaxEl = document.getElementById('latest-user-message-max-runes');
if (latestUserMaxEl) {
const v = ma.latest_user_message_max_runes;
latestUserMaxEl.value = (v !== undefined && v !== null && !Number.isNaN(Number(v))) ? String(Number(v)) : '48000';
}
const latestUserHeadEl = document.getElementById('latest-user-message-head-runes');
if (latestUserHeadEl) {
const v = ma.latest_user_message_head_runes;
latestUserHeadEl.value = (v !== undefined && v !== null && !Number.isNaN(Number(v))) ? String(Number(v)) : '24000';
}
const latestUserTailEl = document.getElementById('latest-user-message-tail-runes');
if (latestUserTailEl) {
const v = ma.latest_user_message_tail_runes;
latestUserTailEl.value = (v !== undefined && v !== null && !Number.isNaN(Number(v))) ? String(Number(v)) : '24000';
}
// 填充知识库配置
const knowledgeEnabledCheckbox = document.getElementById('knowledge-enabled');
@@ -1808,6 +1833,21 @@ async function applySettings() {
const peRaw = document.getElementById('multi-agent-pe-loop')?.value;
const peParsed = parseInt(peRaw, 10);
const peLoop = Number.isNaN(peParsed) ? 0 : Math.max(0, peParsed);
const ledgerRaw = document.getElementById('summarization-user-ledger-max-runes')?.value;
const ledgerParsed = parseInt(ledgerRaw, 10);
const ledgerMax = Number.isNaN(ledgerParsed) ? 0 : Math.max(0, ledgerParsed);
const ledgerEntryRaw = document.getElementById('summarization-user-ledger-entry-max-runes')?.value;
const ledgerEntryParsed = parseInt(ledgerEntryRaw, 10);
const ledgerEntryMax = Number.isNaN(ledgerEntryParsed) ? 0 : Math.max(0, ledgerEntryParsed);
const latestRaw = document.getElementById('latest-user-message-max-runes')?.value;
const latestParsed = parseInt(latestRaw, 10);
const latestMax = Number.isNaN(latestParsed) ? 0 : Math.max(0, latestParsed);
const latestHeadRaw = document.getElementById('latest-user-message-head-runes')?.value;
const latestHeadParsed = parseInt(latestHeadRaw, 10);
const latestHead = Number.isNaN(latestHeadParsed) ? 0 : Math.max(0, latestHeadParsed);
const latestTailRaw = document.getElementById('latest-user-message-tail-runes')?.value;
const latestTailParsed = parseInt(latestTailRaw, 10);
const latestTail = Number.isNaN(latestTailParsed) ? 0 : Math.max(0, latestTailParsed);
const maEnabled = document.getElementById('multi-agent-enabled')?.checked === true;
let robotMode = document.getElementById('multi-agent-robot-mode')?.value || 'eino_single';
if (!maEnabled && ['deep', 'plan_execute', 'supervisor'].indexOf(robotMode) >= 0) {
@@ -1817,7 +1857,12 @@ async function applySettings() {
enabled: maEnabled,
robot_default_agent_mode: robotMode,
batch_use_multi_agent: currentConfig?.multi_agent?.batch_use_multi_agent === true,
plan_execute_loop_max_iterations: peLoop
plan_execute_loop_max_iterations: peLoop,
summarization_user_intent_ledger_max_runes: ledgerMax,
summarization_user_intent_ledger_entry_max_runes: ledgerEntryMax,
latest_user_message_max_runes: latestMax,
latest_user_message_head_runes: latestHead,
latest_user_message_tail_runes: latestTail
};
})(),
knowledge: knowledgeConfig,
+30
View File
@@ -3053,6 +3053,36 @@
</select>
<small class="form-hint" data-i18n="settingsBasic.multiAgentRobotModeHint">企业微信 / 钉钉 / 飞书机器人每条消息使用的执行模式;Deep / Plan-Execute / Supervisor 需启用多代理。</small>
</div>
<details class="settings-advanced-block">
<summary data-i18n="settingsBasic.agentAdvanced">高级设置</summary>
<div class="settings-form" style="margin-top: 0.75rem;">
<div class="form-group">
<label for="summarization-user-ledger-max-runes" data-i18n="settingsBasic.userLedgerMaxRunes">用户原文账本总字符上限</label>
<input type="number" id="summarization-user-ledger-max-runes" min="0" step="1000" placeholder="96000" />
<small class="form-hint" data-i18n="settingsBasic.userLedgerMaxRunesHint">压缩后注入模型上下文的原始用户输入账本总上限;0 使用后端默认值。DB 原始消息不裁剪。</small>
</div>
<div class="form-group">
<label for="summarization-user-ledger-entry-max-runes" data-i18n="settingsBasic.userLedgerEntryMaxRunes">单条用户原文字符上限</label>
<input type="number" id="summarization-user-ledger-entry-max-runes" min="0" step="1000" placeholder="16000" />
<small class="form-hint" data-i18n="settingsBasic.userLedgerEntryMaxRunesHint">账本中单条用户消息的模型可见上限;0 使用后端默认值,不影响 DB 原文。</small>
</div>
<div class="form-group">
<label for="latest-user-message-max-runes" data-i18n="settingsBasic.latestUserMaxRunes">最新用户输入字符上限</label>
<input type="number" id="latest-user-message-max-runes" min="0" step="1000" placeholder="48000" />
<small class="form-hint" data-i18n="settingsBasic.latestUserMaxRunesHint">本轮最新 user 进入模型上下文的上限;超出时全文落盘,只注入预览。0 使用后端默认值。</small>
</div>
<div class="form-group">
<label for="latest-user-message-head-runes" data-i18n="settingsBasic.latestUserHeadRunes">最新用户输入头部预览</label>
<input type="number" id="latest-user-message-head-runes" min="0" step="1000" placeholder="24000" />
<small class="form-hint" data-i18n="settingsBasic.latestUserHeadRunesHint">超长最新 user 保留给模型看的头部字符数。</small>
</div>
<div class="form-group">
<label for="latest-user-message-tail-runes" data-i18n="settingsBasic.latestUserTailRunes">最新用户输入尾部预览</label>
<input type="number" id="latest-user-message-tail-runes" min="0" step="1000" placeholder="24000" />
<small class="form-hint" data-i18n="settingsBasic.latestUserTailRunesHint">超长最新 user 保留给模型看的尾部字符数。</small>
</div>
</div>
</details>
</div>
</div>