FrameEvidence:爲 DeepSeek Harness 提供有邊界的 Figma 只讀設計證據

前言

在 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 進程權限運行。安裝前,建議檢查源碼、許可證、依賴清單和工具調用面,確認其只讀邊界符合你的安全要求。

典型用法

  1. 安裝插件到 Web profile:
dsh plugin --profile web add github:fieldnote-ops/frameevidence#97f67c9a049a26c9e8b38e7e764d2572897a6429
  1. 創建 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
  1. 啓動 Web profile 後,給智能體一個 Figma file URL 或 node URL,並讓 token 所屬賬號能夠訪問該資源。然後讓它先在實現前檢查設計,而不是直接生成代碼。

  2. 如果你要執行可選的 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 的,不會自動執行。

  1. 做本地開發檢查時,可以運行:
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_inspectfigma_render 兩個基礎工具。

目錄頁:

https://www.skillhub.cn/plugins/fieldnote-ops/frameevidence

GitHub:

https://github.com/fieldnote-ops/frameevidence
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜