news 2026/8/31 20:08:02

Flue + LibSQL/Turso 实战教程:边缘数据库上 Agent 状态持久化的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flue + LibSQL/Turso 实战教程:边缘数据库上 Agent 状态持久化的完整指南

Flue + LibSQL/Turso 实战教程:边缘数据库上 Agent 状态持久化的完整指南

【免费下载链接】flueThe sandbox agent framework.项目地址: https://gitcode.com/GitHub_Trending/flue1/flue

Flue 是一个沙箱化的 Agent 框架,它通过 LibSQL 与 Turso(托管版 libSQL)为你的 Agent 提供持久化存储:对话流、附件与任务提交状态都能跨进程重启、跨副本恢复。本教程面向新手,带你用一条命令完成 LibSQL/Turso 数据库接入,理解 Flue 到底存了什么、为什么重启后 Agent 还记得之前聊过什么。

为什么 Agent 需要持久化?

没有数据库时,Flue 默认跑在内存数据库上:功能一切正常,但一重启就全部丢失——所有对话、已接受的任务、持久化状态统统归零。开发时无所谓,生产环境就不行了。

接入 LibSQL/Turso 后,Flue 会在数据库里维护三类运行时状态(详见 数据库指南):

  • 规范对话流:每段对话是一条只追加的记录流(用户消息、助手输出、工具调用、压缩记录),是恢复的唯一事实来源;
  • 已接受的提交:提示词或dispatch(...)任务在接受时先落库再执行,进程中断后可恢复而非静默丢失;
  • 持久化状态usePersistentState写入的数据随对话流保存,重启后仍在。

注意:Flue只存运行时状态,你的业务数据(订单、工单、客户信息)请放在自己的表里。

快速开始:一条命令接入 LibSQL

在项目根目录执行:

flue add database libsql

这条命令会自动安装@flue/libsql与官方@libsql/client,生成一个db.ts文件,并把适配器接入生成的 Node 服务。Flue 在构建时按约定发现该文件(优先级:.flue/src/→ 项目根目录),无需手写任何迁移脚本——启动时migrate()会自动、幂等地创建flue_*表。

生成的 db.ts 核心逻辑是把你的@libsql/client客户端包进一个"runner":query(执行 SQL)、transaction(单个写事务内提交/回滚)、close(关闭连接)。完整示例见 blueprints/database--libsql.md。

本地开发只需一个环境变量

变量用途
LIBSQL_URL必填——本地文件file:./data/flue.db或自建 libSQL 服务http://host:8080

flue run默认读取项目.envvite dev与构建产物则读取 shell 环境变量。不要硬编码连接串。

三种连接方式怎么选?

同一个@flue/libsql适配器,改createClient配置即可切换目标(完整对照表见 libSQL 生态文档):

部署形态推荐配置
本地开发 / 单机 Node 部署file:本地 SQLite 文件
自托管 libSQL 服务(sqldhttp://127.0.0.1:8080,服务端序列化写入
低延迟读 + 远端写(内嵌副本)本地file:+syncUrl指向远端
托管、带副本的 SQLite直接用 Turso,见下节

⚠️并发小坑:本地file:数据库遇到重叠的异步写入可能报SQLITE_BUSY。Flue 生成的 runner 会用 Promise 链把单进程内的操作串行化;但多进程写同一个文件不在保障范围内——这种场景请上自建服务或 Turso。

升级到 Turso:托管、可复制的边缘数据库

Turso 就是托管版 libSQL,复用同一个适配器。先用 Turso CLI 建库取凭证:

turso db create flue-agents turso db show --url flue-agents # → TURSO_DATABASE_URL turso db tokens create flue-agents # → TURSO_AUTH_TOKEN

然后在项目里执行:

flue add database turso

只需额外提供TURSO_DATABASE_URLTURSO_AUTH_TOKEN两个环境变量。相比本地文件,Turso 的优势在于:写入在服务端序列化(没有SQLITE_BUSY问题)、多副本可共享对话状态,进程替换后能恢复已接受的工作。

如果读延迟敏感,可启用内嵌副本:本地 SQLite 文件与远端保持同步,读打本地磁盘、写转发 Turso——只需给客户端加上syncUrl,其余代码不变。详见 Turso 生态文档 与 blueprints/database--turso.md。

常见问题排查清单

  • Cloudflare 目标报db.ts错误?正常现象——Cloudflare 目标自动使用 Durable Object SQLite,构建时直接拒绝db.ts,无需任何配置。
  • 重启后表不见了?不会。migrate()幂等:新库首次启动自动建表,老库重启直接复用;若数据库由更新版本的 Flue 写入,服务会拒绝启动而不是损坏数据。
  • 多副本能"双主"吗?共享数据库让副本共享状态、让替代进程恢复工作,但每段对话仍需要恰好一个存活的 Node 属主,不是 active-active 扩容。
  • 测错库了?永远不要用生产库做测试。

延伸阅读

  • 适配器包源码与说明:packages/libsql/
  • 通用数据库适配器蓝图:blueprints/database.md
  • 项目布局与db.ts约定:guide/database.md
  • 想拿到完整源码自行研究?执行git clone https://gitcode.com/GitHub_Trending/flue1/flue即可。

按照这套流程,你的 Flue Agent 从今天起:重启不掉线、扩副本不丢单、本地到边缘一套代码通吃 🚀

【免费下载链接】flueThe sandbox agent framework.项目地址: https://gitcode.com/GitHub_Trending/flue1/flue

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 20:07:44

3步刷新你的Tracker列表:BT下载提速配置指南

3步刷新你的Tracker列表:BT下载提速配置指南 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist 如果你的下载慢,问题多半不在带宽。trackerslist 项目维…

作者头像 李华
网站建设 2026/8/31 20:07:16

蒲公英优化算法:面向CNN与RNN超参数协同优化的智能搜索方法

简介:本资源是一套面向本科生课程设计、毕业设计与科研入门的智能优化深度学习融合实践方案,聚焦无线通信信号调制识别任务,提供蒲公英优化算法(DO-CBA)对多种主流网络结构的超参数协同优化实现。资源包含含注意力机制…

作者头像 李华
网站建设 2026/8/31 20:06:55

欢聚时代校招B卷解析:产品/数据/运营/市场四岗通关思路

2018年秋招那阵,欢聚时代的笔试通知发出来,很多同学第一反应是:产品经理、数据分析、游戏运营、市场专员这四类岗位,怎么就凑到同一场考试里了?我印象很深,当时B卷下来,不少人倒在前面的数据题上…

作者头像 李华
网站建设 2026/8/31 20:06:44

婚礼请柬小程序全栈源码:前后端+数据库设计实战

简介:这是一套开箱即用的婚礼请柬邀请函微信小程序完整源码,面向前端开发者、全栈初学者及婚庆类轻应用创业者,解决电子请柬快速定制、后台管理与多端分发的核心需求。资源包含后台管理系统、小程序前端页面及配套数据库,覆盖模板…

作者头像 李华
网站建设 2026/8/31 20:02:56

PVE新装必做:一键脚本搞定换源、关闭订阅与硬件直通

简介:本资源是面向Proxmox VE 7.x至9.x系统管理员与虚拟化爱好者的Shell一键运维工具包,聚焦换源加速、关闭订阅提示干扰及GPU/PCIe硬件直通三大高频痛点场景,显著降低开源虚拟化平台的日常维护门槛。压缩包共84个文件,含72张实操…

作者头像 李华