AgentDesk 是一个基于 Nuxt 3 的全栈 AI 聊天与轻量 Agent 工作台。项目支持会话管理、流式 AI 回复、多模态附件输入、长期记忆、分享链接、反馈统计、Token 用量统计,以及 Cloudflare Pages + D1 + R2 的部署链路。

项目定位

它不是只完成一次问答的聊天界面,而是把一次 AI 交互沉淀为可管理、可回溯、可观测的工作流:用户可以发起对话或任务,查看模型回复与 Agent 执行过程,保存上下文和长期记忆,并通过分享、反馈与数据统计持续评估使用效果。

项目截图

AgentDesk 聊天工作台

AgentDesk 思考过程面板

AgentDesk 思考过程面板

功能说明

对话与上下文

  • AI 流式聊天:基于 Vercel AI SDK 输出流式回复,并通过响应头返回 Trace ID、Prompt 版本和模型信息。
  • 会话与消息管理:支持新建、置顶、重命名、自动生成标题和删除会话;用户、AI、系统消息统一持久化,刷新后可恢复完整上下文。
  • 用户体系:支持登录、注册和登录态恢复;未登录用户也可先创建会话,完成登录或注册后自动迁移原有匿名数据。
  • 多模态输入:图片自动路由至 qwen-vl-plus,文档自动路由至 qwen-long,普通文本默认使用 deepseek-v4-flash
  • 长期记忆:用户可管理沉淀的记忆内容;线上环境可结合 Cloudflare Vectorize 按相关性召回记忆,为后续对话补充上下文。
  • Prompt 实验:支持 Prompt 版本管理与 A/B 流量分流,并将实际使用版本写入调用记录,便于在统计页比较效果与用量。

Agent 与过程可见性

  • Agent 工作台:将目标拆解为任务、步骤和工具调用日志,记录状态变化、输入输出与执行结果,方便查看规划和执行过程。
  • 执行轨迹与人工确认:通过轨迹抽屉查看任务、步骤和工具日志;写入、删除、部署或权限类高风险操作会进入人工确认入口,确认后才继续执行。
  • 工具调用留痕:天气、网页、文件、项目上下文等工具通过统一注册表接入,执行日志与 Trace ID 可串联定位。
  • 分享协作:可将会话快照生成分享链接,并控制公开范围、有效期与撤销状态,避免直接暴露原始会话数据。

运营与工程支撑

  • 数据持久化:通过 Drizzle ORM 统一访问数据库;本地开发使用 SQLite,部署到 Cloudflare 后使用 D1,承载会话、消息、Agent 任务、分享链接、反馈和统计等核心业务数据。
  • 文件上传:本地开发保存至 public/uploads,生产环境切换至 Cloudflare R2,保持调用方式一致。
  • 边缘服务:Cloudflare KV 用于接口限流,R2 存储上传文件,Vectorize 支撑长期记忆检索,降低边缘部署下的外部依赖。
  • 反馈与统计:提供点赞/点踩反馈,记录每次模型调用的 Prompt / Completion Token、模型和 Prompt 版本,并统计热门问题、成本估算和每日趋势。
  • 可观测性:接入 Sentry;X-Trace-ID 串联前端、服务端、模型调用与工具执行,便于排查一次请求的完整链路。

技术栈

分类 技术
前端框架 Nuxt 3、Vue 3、TypeScript
状态与 UI Pinia、Element Plus、Tailwind CSS、SCSS
AI 调用 Vercel AI SDK、DeepSeek、通义千问 Qwen VL / Qwen Long
数据库 Drizzle ORM、本地 SQLite、Cloudflare D1
文件存储 本地文件系统、Cloudflare R2
云服务 Cloudflare Pages、D1、R2、KV、AI、Vectorize
可观测性 Sentry、服务端日志、Trace ID
构建部署 Nitro、Wrangler、Cloudflare Pages preset

项目亮点

  • 面向生产的全栈闭环:从会话、消息、任务、分享、反馈到统计均有对应的数据模型和 API,不止是前端聊天演示。
  • 多模型路由与多模态扩展:根据输入类型选择更匹配的模型,同时保留统一的聊天交互和消息存储体验。
  • 可解释的 Agent 执行过程:任务、步骤、工具日志和 Trace ID 共同构成可回溯链路,降低 AI 调试和问题定位的成本。
  • 本地与 Cloudflare 双环境适配:开发期使用 SQLite 和本地上传,部署后无缝衔接 D1、R2、KV、AI 与 Vectorize,适合边缘运行场景。
  • 内容与页面不重复维护:About 页面在构建期读取本 README 的 about 区间;项目说明更新后,部署产物会同步更新,兼容 Cloudflare Pages 的无文件系统运行环境。