AI Agent 生成的内容——无论是数据分析报告、Python 脚本、HTML 仪表盘还是幻灯片——如果不能方便地保存、预览和分享,其价值就会在对话结束后消失。
Gumloop 的 Agent Artifacts 系统解决了这个问题:Agent 在其 Linux 沙箱中生成的文件,不再只是短暂存在于沙箱内,而是被自动捕获、持久化到云端、生成预览、建立版本历史,并在三个入口(聊天卡片、专用查看页面、Files 侧栏)提供一致的访问体验。
该能力对标但差异化于 Claude Artifacts(Anthropic)和 ChatGPT 文件生成(OpenAI),核心差异在于:(1) 支持更多文件类型;(2) 自动版本管理;(3) 交互式 HTML Artifacts 可拉取查看者自己的集成数据;(4) 三级分享权限模型。
[文档已验证]┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ ┌──────────────────┐
│ Agent │ │ Export │ │ Preview │ │ Chat Card │
│ 沙箱生成 │───▶│ Pipeline │───▶│ Generator │───▶│ Display │
│ 文件 │ │ │ │ │ │ │
└─────────────┘ └──────┬───────┘ └────────┬────────┘ └──────────────────┘
│ │
▼ ▼
┌──────────────┐ ┌─────────────────┐
│ GCS Cloud │ │ Artifact Record │
│ Storage │ │ (versioned, │
│ (persist) │ │ type-tagged) │
└──────────────┘ └─────────────────┘
管线四步:
整个管线对用户透明——Agent 生成文件后,卡片在对话中自动出现。
同一对话中 Agent 多次输出同名文件时,系统不覆盖已有文件,而是自动创建新版本。
report.csv (v1) → Agent 重新生成 → report.csv (v2) sales.html (v1) → Agent 重新生成 → sales.html (v2) → sales.html (v3)
每个版本均独立存储(GCS 中独立对象),显示版本号、创建时间戳和文件大小。用户可通过历史面板在版本之间切换查看。此设计确保数据永不丢失——即便是意外覆盖也不会删除历史产出。
| 文件类型 | 扩展名 | 预览方式 | 说明 |
|---|---|---|---|
| HTML | .html | 沙箱化交互预览 | 支持全屏模式,JavaScript 在安全沙箱中执行 |
| 图片 | .png .jpg .gif .webp .svg | 原生图片查看器 | 支持缩放和全屏 |
.pdf | PDF 查看器 | 支持翻页、缩放、文本搜索 | |
| 电子表格 | .csv .xlsx .xls | 电子表格查看器 | 行/列视图、排序、筛选 |
| 演示文稿 | .pptx .ppt | 幻灯片查看器 | 逐页预览或 PDF 渲染 |
| 文本/代码 | .txt .md .py .js .json 等 | 语法高亮查看器 | 自动识别语言并应用对应高亮方案 |
| 大文件 | 任意,>50MB | 仅下载 | 显示文件大小,不提供内联预览 |
不支持的格式同样提供下载入口,只是不生成预览缩略图。
Artifacts 支持三级通用访问(General Access)控制:
| 级别 | 范围 | 典型场景 |
|---|---|---|
| Restricted | 仅文件所有者 + 被明确添加的用户 | 个人私密数据报告 |
| Organization | 组织内所有成员可访问 | 团队周报、项目仪表盘 |
| Anyone | 拥有链接的任何人均可访问 | 公开分享、外部协作 |
默认分享级别可在 Agent 设置中配置(Agent Settings → Chat Preferences):
每个 Artifact 拥有唯一的可分享 URL,指向专用查看页面(全宽预览 + 元数据展示)。
这是 Agent Artifacts 最具差异化的能力。Agent 生成的 HTML 文件可以包含 JavaScript 逻辑,在每次打开时从查看者自己的已连接集成拉取实时数据。
工作原理:
┌──────────────────────────────────────────────────────────┐ │ 首次打开交互式 Artifact │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ Consent Overlay(同意覆盖层) │ │ │ │ │ │ │ │ 此 Artifact 将访问以下集成: │ │ │ │ • Salesforce — 读取报表数据 │ │ │ │ • Snowflake — 执行 SQL 查询 │ │ │ │ • Gmail — 读取最近邮件 │ │ │ │ │ │ │ │ [ 拒绝 ] [ 允许并执行 ] │ │ │ └──────────────────────────────────────────────────┘ │ │ │ │ │ ▼ (用户同意) │ │ ┌──────────────────────────────────────────────────┐ │ │ │ Python 数据脚本执行 │ │ │ │ • 使用查看者凭据(非创建者凭据) │ │ │ │ • 5 分钟短生命周期 token │ │ │ │ • 沙箱执行,完成后 token 立即失效 │ │ │ └──────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ HTML 页面渲染(展示实时数据) │ │ │ └──────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────┘
关键安全设计:
所有 HTML Artifacts 在安全沙箱中运行,强制执行以下限制:
fetch()、XMLHttpRequest、WebSocket 被拦截;安全 HTTP 方法(GET、HEAD)通过代理放行;不安全方法(POST、PUT、DELETE)需用户确认window.open() 和所有弹窗机制被禁用Authorization、Cookie 等敏感头部[文档已验证]| ID | 需求 | 优先级 |
|---|---|---|
| A1 | Agent 沙箱中生成的任何文件,自动触发导出管线(存储→建记录→预览→卡片) | P0 |
| A2 | 根据文件类型(扩展名 + MIME)自动选择预览方式(参见 2.3 矩阵) | P0 |
| A3 | 聊天卡片包含:文件名、类型图标、缩略图、文件大小、时间戳 | P0 |
| A4 | 点击卡片打开侧边面板预览(slide-out panel),不中断对话流 | P0 |
| A5 | HTML 文件支持全屏模式(隐藏工具栏,沉浸式查看) | P1 |
| A6 | 每个 Artifact 拥有唯一分享 URL 和专用查看页面(全宽 + 元数据) | P0 |
| A7 | Files 侧栏:当前对话的文件列表,按时间排序 | P0 |
| A8 | >50MB 文件仅显示下载卡片,不生成预览 | P0 |
[文档已验证]| ID | 需求 | 优先级 |
|---|---|---|
| B1 | 同一对话中同名文件自动创建新版本(v1 → v2 → v3),不覆盖 | P0 |
| B2 | 每个版本独立存储(GCS),独立 Artifact 记录 | P0 |
| B3 | 版本历史面板:可查看所有版本、在各版本间切换 | P0 |
| B4 | 每个版本显示:版本号、创建时间戳、文件大小 | P1 |
[文档已验证]| ID | 需求 | 优先级 |
|---|---|---|
| C1 | 三级 General Access:Restricted / Organization / Anyone | P0 |
| C2 | Restricted 仅所有者 + 被明确添加的用户可访问 | P0 |
| C3 | Organization 组织内所有成员可访问 | P0 |
| C4 | Anyone 拥有链接的任意人均可访问(无需登录) | P1 |
| C5 | 默认分享级别可在 Agent Settings → Chat Preferences 中配置 | P1 |
| C6 | 团队 Agent 默认 Organization;个人 Agent 默认 Restricted | P0 |
| C7 | 每个 Artifact 有唯一可分享 URL | P0 |
[文档已验证]| ID | 需求 | 优先级 |
|---|---|---|
| D1 | Agent 可创建包含 JavaScript 的 HTML 文件 + 配套 Python 数据脚本 | P0 |
| D2 | 打开时显示同意覆盖层(consent overlay),列出将被访问的集成和操作 | P0 |
| D3 | 用户同意后才执行数据拉取脚本;拒绝则仅显示静态 HTML | P0 |
| D4 | 数据拉取使用查看者自己的集成凭据(非创建者凭据) | P0 |
| D5 | 脚本执行使用 5 分钟短生命周期 token,完成后立即失效 | P0 |
| D6 | 沙箱执行费用由查看者承担(credits) | P1 |
| D7 | 安全沙箱限制:阻止会话访问、直接网络请求、弹窗、敏感头部 | P0 |
| D8 | 安全 HTTP 方法(GET/HEAD)通过代理自动放行;不安全方法需用户确认 | P1 |
[文档已验证]| ID | 需求 | 优先级 |
|---|---|---|
| E1 | 集中页面 gumloop.com/personal/files 展示所有 Artifacts | P0 |
| E2 | 三个标签页:Mine(我的文件)、Shared with me(共享给我的)、Organization(组织) | P0 |
| E3 | 支持搜索(文件名)、按类型筛选、按日期排序 | P1 |
| E4 | 列表中显示缩略图预览 | P1 |
| E5 | Workspace 文件同样遵循此版本/预览/分享机制,且在 Files Page 可见 | P1 |
[文档已验证]张敏,32 岁,电商数据分析师。每周一早上让 Agent 生成上一周的销售分析报告。
作为数据分析师,我希望 Agent 生成 Excel 报告后自动保存、预览,并通过链接分享给我的团队成员,以便他们无需登录 Gumloop 也能查看。
交互流程:
weekly_sales_report.xlsx陈立,28 岁,运营经理。需要每天查看从多个系统汇聚的运营指标。
作为运营经理,我希望 Agent 创建一个 HTML 仪表盘,每次打开时自动从 Salesforce 和数据库拉取最新数据,以便我始终看到最新的运营概览而不需要手动刷新数据源。
交互流程:
ops_dashboard.html(UI + 图表 JS)和配套的 Python 数据脚本(从 Salesforce 和 Snowflake 拉取数据)| 竞品 | 功能/行为 | 优势 | 劣势 | Gumloop 差异化 |
|---|---|---|---|---|
| Claude Artifacts | 对话中生成 HTML/SVG/Mermaid 等可渲染内容并以侧面板展示 | 集成度高、渲染流畅、原生支持 React 组件 | 不支持二进制文件格式(PDF/XLSX/PPTX)、无版本管理、无法拉取外部实时数据 | 更广的文件类型覆盖 + 交互式实时数据 + 三级分享权限 |
| ChatGPT 文件生成 | GPT-4o 可生成 CSV、PDF、图片等文件并提供下载链接 | 品牌认知强、用户基数大 | 预览能力有限、无版本历史、分享不灵活、文件管理分散 | 统一的 Files Page + 自动版本历史 + 结构化分享模型 |
| Google Colab | 在 Notebook 中生成文件,可保存至 Google Drive | 与 Google 生态深度集成 | 面向开发者、无分享权限分级、需要手动管理文件 | 对话驱动(非 Notebook 驱动)、自动导出、面向非技术用户 |
| Notion AI | 在 Notion 页面中生成内容块 | 与知识库紧密集成 | 不支持通用文件格式、无版本管理、输出绑定到 Notion 页面 | 独立文件系统、支持任意格式、跨对话持久化 |
| 阶段 | 时间线 | 里程碑 | 状态 |
|---|---|---|---|
| Phase 1 — 核心 Artifacts | v8.2.0 | 自动导出管线、预览、版本管理、基础分享 | 已发布 |
| Phase 2 — Gallery 增强 | v8.3.0 | Files Page 集中管理、搜索/筛选/排序 | 已发布 |
| Phase 3 — 交互式 Artifacts | v8.x | 实时数据拉取、consent overlay、查看者凭据 | 已发布 |
| Phase 4 — MCP Artifacts | v9.7.0 | MCP 协议与 Artifacts 打通(独立规格) | 已发布 |
| Phase 5 — 协作增强 | v10.x | 团队模板 Artifacts、批量导出、定时自动生成报告 | 规划中 |
| Phase 6 — 智能版本 | v11.x | AI 生成版本变更摘要、Delta 对比视图、分支管理 | 探索中 |
/home/user/.workspace/ 的跨对话持久化已经实现。下一步可以让 Agent 在 Workspace 中维护一个「项目上下文文件」,使 Agent 能记住多轮对话之间的状态和数据[文档已验证](简要)Workspace(/home/user/.workspace/)是 Agent 沙箱中一个特殊的持久化目录。写入该目录的文件跨越对话边界持续存在:
详细的 Workspace 规格在独立文档中展开;本规格聚焦于 Artifacts 文件输出系统本身。