必须用数据库或外部API实现跨会话持久化,因扣子全局变量不支持跨用户、跨会话保存;需通过数据库节点写入/读取数据,并用赋值节点注入全局变量。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在扣子中让用户在不同对话会话间持续保留关键信息(比如登录状态、偏好设置、历史筛选条件),必须绕过默认的会话级变量自动清除机制,用全局变量配合外部存储实现真正跨会话的数据持久化。
确认全局变量不可直接跨会话持久化
扣子平台的「全局变量」仅在智能体维度共享,【不支持跨用户、不支持跨会话持久保存】——它随智能体发布生效,但值不会自动写入磁盘或数据库。若仅在设置里填了 user_id: "1001",用户下次打开聊天窗口,该值仍是初始值,而非上次结束时的状态。
这一步必须先认清:全局变量 ≠ 持久化存储。跳过此认知,后续所有配置都会失效。
启用会话记忆并绑定全局变量名
第一步:进入智能体编辑页 → 点击左上角「设置」齿轮图标 → 切换到「对话设置」选项卡 → 将「启用上下文记忆」开关打开。
第二步:在「全局变量」选项卡中点击「+ 添加变量」→ 变量名填 【user_profile】(必须以字母开头,仅含字母/数字/下划线,长度≤20)→ 初始值留空或填 {} → 类型选「文本」。
注意:这里只是声明变量,不是赋值。变量名一旦创建无法修改,拼错就得删掉重建。
用数据库节点替代变量节点做真实持久化
方法一:用「数据库」节点写入用户数据
拖入「数据库」节点 → 选择已创建的「users」表 → 操作类型选「更新或插入」→ 在「条件」字段填 { "user_id": "{{input.user_id}}" } → 「更新字段」填 { "last_city": "{{current_city}}", "budget": {{budget_range}} }。
方法二:用「代码」节点调用外部API存取
拖入「代码」节点 → 语言选 Python → 输入以下内容:
import requests
r = requests.post("https://api.yourservice.com/save", json={ "uid": context.input.get("user_id"), "data": { "city": context.get("current_city", ""), "budget": context.get("budget_range", 0) } })
return { "status": r.status_code }
这一步是核心转折点:所有需要跨会话保留的数据,必须落地到数据库或可持久化服务。变量节点只负责临时搬运,不负责长期保管。
在新会话中读取并注入全局上下文
第一步:用户发起新对话时,触发「数据库」节点 → 查询条件设为 { "user_id": "{{input.user_id}}" } → 输出路径填 $.data(确保返回的是完整对象)。
第二步:接一个「赋值节点」→ 将数据库返回的 city 字段赋给会话变量 【current_city】 → 值填 {{数据库节点.output.city}}。
第三步:再接一个「变量」节点 → 操作类型选「设置」→ 变量名填 user_profile → 输入参数绑定 {{赋值节点.output}} → 这样就把刚查出的数据“写回”全局变量作用域,供后续所有工作流引用。
此时 user_profile 的值已是动态加载的真实用户档案,不是初始空值。


















