fix: 工具选择状态记忆 + 过滤联网搜索 + 默认未启用

This commit is contained in:
2026-04-27 23:56:36 +08:00
parent ba5d49005b
commit 2ae9d99d0c

View File

@@ -118,13 +118,11 @@ async function loadBackendConfig() {
// 加载工具列表
if (backendConfig.allTools) {
allTools = backendConfig.allTools;
// 过滤掉联网搜索(已有单独按钮)
allTools = backendConfig.allTools.filter(t => t.type !== 'search');
}
// 加载默认启用的工具
if (backendConfig.tools) {
enabledTools = backendConfig.tools.map(t => t.tool_id);
}
// 加载默认启用的工具,所有工具默认未启用
updateAgentsDisplay();
console.log('后台配置已加载', backendConfig);
@@ -3044,6 +3042,9 @@ async function openAgent(agentId) {
currentAgent = systemAgents.find(a => a.id === agentId);
if (!currentAgent) return;
// 加载该智能体的工具选择状态
loadToolsState();
// 检查未登录用户的智能体限制
if (!currentUser) {
const check = canUseAgent(agentId);
@@ -3599,6 +3600,10 @@ function openConversation(id) {
return;
}
// 普通对话,加载普通对话的工具状态
currentAgent = null;
loadToolsState();
// 渲染对话页面
const chatHtml = `
<div id="chatPage">
@@ -4232,6 +4237,9 @@ function confirmToolsSelection() {
enabledTools = selectedTools;
// 保存工具选择状态
saveToolsState();
// 更新按钮显示
const moreToolsBtn = document.getElementById('moreToolsBtn');
if (moreToolsBtn) {
@@ -4254,6 +4262,38 @@ function confirmToolsSelection() {
showToast(`已启用 ${enabledTools.length} 个工具`);
}
// 保存工具选择状态
function saveToolsState() {
if (currentAgent) {
// 智能体对话:保存到 localStorage按智能体ID
localStorage.setItem(`agentEnabledTools_${currentAgent.id}`, JSON.stringify(enabledTools));
} else {
// 普通对话:保存到 localStorage
localStorage.setItem('chatEnabledTools', JSON.stringify(enabledTools));
}
}
// 加载工具选择状态
function loadToolsState() {
if (currentAgent) {
// 智能体对话:加载该智能体的工具状态
const saved = localStorage.getItem(`agentEnabledTools_${currentAgent.id}`);
if (saved) {
enabledTools = JSON.parse(saved);
} else {
enabledTools = [];
}
} else {
// 普通对话:加载普通对话的工具状态
const saved = localStorage.getItem('chatEnabledTools');
if (saved) {
enabledTools = JSON.parse(saved);
} else {
enabledTools = [];
}
}
}
// 渲染头像(支持 emoji 和上传的图片)
function renderAvatar(avatar) {
if (!avatar) return '👤';