diff --git a/www/app.js b/www/app.js
index 16b1e50..edffcca 100644
--- a/www/app.js
+++ b/www/app.js
@@ -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 = `
@@ -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 '👤';