前言¶
在 DeepSeek Harness 的插件体系里,工具调用常常会把外部数据直接带入模型上下文。若要让智能体在写前端代码前查看 Figma 设计,直接把完整 Figma JSON 交给模型,可能带来上下文膨胀、节点规模不可控,以及凭据暴露等风险。
FrameEvidence 针对这个问题提供一个只读的 Figma REST 设计证据插件:它只返回有边界的节点树或单个节点的临时渲染 URL,不写 Figma,也不把 Figma PAT 暴露给模型。
这是什么¶
FrameEvidence 是 fieldnote-ops 维护的 MIT 许可插件,定位为 DeepSeek Harness 的 bounded, read-only Figma REST design evidence plugin。
它面向需要让智能体在实现前获取有限 Figma 设计信息的场景,核心目标是控制 Figma 数据进入模型上下文时的规模,并约束凭据访问边界。
核心功能¶
FrameEvidence v0.1 提供两个主要工具:
figma_inspect:返回有边界、偏实现细节的 Figma 节点树,而不是把 Figma 完整 JSON schema 倒入模型上下文。figma_render:为单个节点返回临时 PNG、JPG、SVG 或 PDF 渲染 URL。
它的访问和数据边界如下:
- 只读访问:仅对
https://api.figma.com/v1发起 REST 请求,拒绝重定向,不写 Figma。 - 凭据边界:Figma PAT 从主机环境变量读取,不作为模型工具参数接受,也不在工具或 probe 输出中返回。
- 上下文边界:原始 API 响应有字节上限,节点树深度和节点数在到达模型前被限制。
- 速率压力:成功读取在内存中缓存,用于减少 Figma REST 速率限制压力。
- 变量边界:Figma Variables REST API 是 Enterprise-only,因此 v0.1 保留绑定的变量 id,但不获取变量值。
安装与启用¶
先确认运行环境满足 Node 版本要求:
Node ^22.19.0 || >=24.0.0
插件还依赖以下 peer packages:
@deepseek-ai/cordis ^4.0.1
@deepseek-ai/dsh-tools >=0.1.0-rc.6 <0.2.0
@deepseek-ai/schemastery ^3.18.1
安装到 DSH 的 Web profile:
dsh plugin --profile web add github:fieldnote-ops/frameevidence#97f67c9a049a26c9e8b38e7e764d2572897a6429
上面的命令固定到一个公开的 commit。若后续要把真实 Figma token 或设计文件纳入流程,建议 pin 一个已经审查过的 commit,而不是直接使用 main。
插件会以当前 dsh 进程权限运行。安装前,建议检查源码、许可证、依赖清单和工具调用面,确认其只读边界符合你的安全要求。
典型用法¶
- 安装插件到 Web profile:
dsh plugin --profile web add github:fieldnote-ops/frameevidence#97f67c9a049a26c9e8b38e7e764d2572897a6429
- 创建 Figma PAT。只给
file_content:read权限。Figma PAT 最长 90 天过期,因此建议选择较短有效期,并在 probe 后不再需要时撤销。
为了避免 PAT 进入 shell history,可以交互式读入环境变量:
printf 'Figma PAT: '
IFS= read -r -s FIGMA_ACCESS_TOKEN
printf '\n'
export FIGMA_ACCESS_TOKEN
npx @deepseek-ai/dsh web
-
启动 Web profile 后,给智能体一个 Figma file URL 或 node URL,并让 token 所属账号能够访问该资源。然后让它先在实现前检查设计,而不是直接生成代码。
-
如果你要执行可选的 live API probe,需要先克隆仓库,然后在仓库目录中运行:
npm ci --ignore-scripts --registry=https://registry.npmjs.org
再注入 PAT 和你要探测的 Figma node URL:
printf 'Figma PAT: '
IFS= read -r -s FIGMA_ACCESS_TOKEN
printf '\nFigma node URL: '
IFS= read -r FRAMEEVIDENCE_URL
export FIGMA_ACCESS_TOKEN FRAMEEVIDENCE_URL
npm run live:smoke
unset FIGMA_ACCESS_TOKEN FRAMEEVIDENCE_URL
这个 probe 是 opt-in 的,不会自动执行。
- 做本地开发检查时,可以运行:
npm install
npm run check
适用场景与注意¶
FrameEvidence 适合这类开发流程:
- 你需要在 DSH 中读取 Figma 节点信息,用于生成前端代码前的设计参考。
- 你希望控制返回给模型的节点树规模,避免完整 Figma JSON 进入上下文。
- 你希望插件只读访问 Figma REST API,不写 Figma。
- 你希望 Figma PAT 只来自主机环境变量,不进入模型工具参数或工具输出。
需要特别注意:
- 该插件是只读设计,不写 Figma。
- 请求只发往
https://api.figma.com/v1,重定向会被拒绝。 figma_render返回的 PNG、JPG、SVG、PDF URL 是临时 URL,不应作为持久化存储。- Figma REST 速率限制取决于 seat 和 plan。
- Figma Variables REST API 是 Enterprise-only。v0.1 保留绑定的变量 id,但不获取变量值。
- 可选的 live API probe 尚未对真实 Figma 文件执行过。
- Marketplace acceptance 仍未验证;目前没有独立用户采用、purchase validation 或 income 记录。
- 该项目是独立开源项目,与 Figma, Inc. 或 DeepSeek 没有 affiliation、sponsorship 或 endorsement 关系。
- DSH 社区目录是独立站点,不应被理解成官方应用商店。
结尾¶
FrameEvidence 的价值在于把 Figma 设计信息整理成更适合智能体使用的有边界证据:只读、有上下文上限、凭据不外泄,并提供 figma_inspect 与 figma_render 两个基础工具。
目录页:
https://www.skillhub.cn/plugins/fieldnote-ops/frameevidence
GitHub:
https://github.com/fieldnote-ops/frameevidence