炒股就看金麒麟分析師研報,權威,專業,及時,全面,助您挖掘潛力主題機會!
來源:Univer夢數科技
在最近一輪的 SpreadsheetBench 評測中,UniverAgent 取得了 68.86% 的 Pass Rate,位列排行榜第一,超越了包括 ChatGPT Agent 和 Excel Copilot 在內的主流方案。(對技術有興趣的朋友,歡迎點擊左下角「查看原文」到我們的 Github 轉轉,順手給個⭐️)
SpreadsheetBench 是當前電子表格自動化領域最具權威性的公開基準之一,微軟與 OpenAI 均曾在官方文章中引用其測試數據,微軟現任 CEO 薩提亞·納德拉(Satya Nadella)也曾在社交媒體上發表其評測結果。



這是該排行榜出現的第一支中國團隊。與榜上多數仍依賴 Excel 環境執行任務不同,UniverAgent 基於自研的 Univer SDK,實現了全程脫離 Excel 的表格計算與推理能力,可視為一次從底層重構電子表格智能的技術躍遷。這一成績的取得,並非單純依賴於更強的基座模型,而是源於我們對「電子表格 Agent」這一命題的系統性重構:從「生成腳本操作文件」的輔助工具,轉向「基於在線環境、具備混合執行能力的自主智能體」。
本文將從技術視角拆解 UniverAgent 在 SpreadsheetBench 上的表現,探討它是如何在理解(Understanding)、準確性(Accuracy)和定位(Positioning)三個維度上建立優勢的。

一、SpreadsheetBench:真實業務場景的試金石
許多 AI Demo 看起來很美,但在真實業務中往往「一碰就碎」。SpreadsheetBench 的價值在於它提供了一個基於真實任務的嚴謹參考框架。
它包含 912 個來源於真實場景的任務,涵蓋了從數據清洗、複雜計算到格式調整的全流程。與簡單的「玩具數據集」不同,SpreadsheetBench 重點考察三個互相關聯的維度:
1. UNDERSTANDING(理解能力):能否準確理解自然語言指令中的業務意圖,並正確識別相關的數據區域(而非誤用無關區域)。
2. ACCURACY(結果準確性):數值計算是否精確,公式邏輯是否正確,數據類型(如日期、貨幣)是否符合規範。
3. POSITIONING(定位準確性):結果是否寫入了指定的工作表和單元格,且不破壞原有的表格結構。
這三個維度彼此牽制、很難被單一技術路徑同時兼顧:單純的 Python 腳本容易算對數值(Accuracy),但很難處理複雜的格式和位置約束(Positioning);單純的 Excel 公式能處理位置,但難以應對複雜的邏輯推理(Understanding)。
UniverAgent 的高分,正是因為它通過系統設計,在這三個維度上取得了平衡。
二、核心差異:系統工程勝於模型參數
在 SpreadsheetBench 排行榜上,我們可以看到多種技術路線。UniverAgent 的核心差異在於:我們沒有把電子表格簡單視為一個 CSV 文件或一個 API 對象,而是圍繞其結構化、富交互、在線化的特性,設計了一整套 Agent 架構。
這套架構包含三個關鍵支柱:
1. 表格友好的上下文工程:通過 `SpreadsheetOverview` 和 `GetRangeData`,構建高信噪比的「地圖」與「放大鏡」。
2. CodeAct + Planning 執行策略:引入多輪思考循環與自適應緩存,替代脆弱的「一次性腳本」。
3. 在線混合執行架構:Python 負責重數據分析,JavaScript (Univer SDK) 負責精細表格操作,兩者在在線環境中無縫協作。
三、上下文工程:構建高信噪比的「地圖」與「放大鏡」
電子表格任務的一大挑戰是上下文(Context)爆炸。一個幾千行的表格直接轉為文本會瞬間耗盡 Token 預算,且丟失關鍵的結構信息(如合併單元格、公式引用)。
UniverAgent 設計了兩層上下文抽象來解決這個問題。
1. SpreadsheetOverview:全局「地圖」與信息壓縮
`SpreadsheetOverview` 的作用是讓 Agent 在消耗極少 Token 的前提下,看清整個工作簿的結構。它不僅僅是數據的截斷展示,更包含了一系列智能壓縮策略。
以一個簡單的銷售數據表為例,原始電子表格中的內容大致如下(只展示關鍵列):

# Spreadsheet Context
📊 Spreadsheet Overview - Total Sheets: 1 - Active Sheet: ‘Sales’ ## 📄 Sheet: ‘Sales’ - Sheet Used Range: A1:D35 (35 rows × 4 columns) - Tables Found: 2 - Formulas Found: 2 ### Table 1: A1:D25 |A1,Product|B1,Category|C1,Quantity|D1,Price| |A2,Laptop|B2,Electronics|C2,5|D2,1200.00| ...(中間行被省略) |A25,Monitor|B25,Electronics|C25,2|D25,350.00| ### 🔢 Formulas (0 formula group) - None ### Table 2: B32:D35 |B32,Category|C32,Total Quantity|D32,Total Sales| |B33,Electronics|C33,40|D33,48000.00| |B34,Furniture|C34,10|D34,2000.00| |B35,Office Supplies|C35,5|D35,1000.00| ### 🔢 Formulas (2 formula groups) - C33:C35 ← C33: =SUMIF($B$2:$B$25,B33,$C$2:$C$25) - D33:D35 ← D33: =SUMPRODUCT(($B$2:$B$25=B33)$C$2:$C$25$D$2:$D$25)
關鍵技術點在於:
●結構識別:自動識別 Table 邊界(如 A1:D25),而非盲目讀取整張表;
●層次化視圖: Spreadsheet -> Sheet -> Table / Formula, 層層遞進,既展示了結構,又避免了信息過載;
●公式組聚合:如上例所示,`C33:C35` 的公式邏輯完全一致,系統將其聚合為一條描述 `C33:C35 ← C33: ...`。這種處理方式能將上百行的冗餘信息壓縮為一行,Token 佔用減少 90% 以上。
在實測中,即便是 7000 行的大型工作簿,其 Overview 上下文體積通常也能控制在 0.5KB 以內。這為 Agent 提供了清晰的全局視野,顯著提升了 UNDERSTANDING 指標。
2. GetRangeData:結構化的「放大鏡」
當 Agent 需要深入處理特定區域時,`GetRangeData` 提供了結構化的局部視圖。它返回的不僅僅是二維數組,而是一個包含豐富元數據的對象:
============================================================
📊 Range Data: A1:F32 ============================================================ 📋 Metadata: • Shape: 32 rows × 6 columns • Formula groups: 3 (74 total cells) • Styled cells: 15 📄 Data Preview: (showing first 10 rows) A B C D E F 1 SN DATE ... TOTAL ... ... 2 001 1/1 ... 1200 ... ... ... 🔢 Formula Groups: (top 15 of 3) • D2:D74 ← D2: =IFERROR(INDEX(...)) • E2:E74 ← E2: =VLOOKUP(...) 🎨 Style Definitions: (top 5 of 5) • 01gvvu6: fs:11|bl:1|bg:#FFFF00 (3 cells) ============================================================
這個 `RangeData` 對象包含三個維度的信息:
●Values:直接映射為 `pandas.DataFrame`,便於 Python 進行向量化計算。
●Formula Groups:延續聚合策略,準確描述區域內的計算邏輯。
●Styles:將樣式定義(如 `bg:#FFFF00`)與引用解耦,使 Agent 能感知顏色、字體等視覺線索(這在處理「標紅異常值」類任務時至關重要)。
這種分層設計,確保了 Agent 既能「看全」也能「看細」,為後續的精準操作打下基礎。
四、執行策略:從「一次性腳本」到 CodeAct 循環
面對 SpreadsheetBench 中的複雜任務,試圖生成一段完美的「一次性腳本」往往是徒勞的。UniverAgent 採用了 CodeAct (Code as Action) 架構,將執行過程拆解為多輪交互循環:
Thought(思考)→ Code(編碼/工具調用)→ Observation(觀察結果)
1. 動態規劃與自我糾錯
在每一輪循環中,Agent 都會根據 `Observation` 修正自己的認知。
● 如果發現數據格式與預期不符,它會調整清洗邏輯;
● 如果寫入結果後發現位置偏移,它會讀取結果區域並重新調整座標。
這種「小步快跑、實時反饋」的機制,極大地提升了任務的 ACCURACY 和 POSITIONING 表現。
2. 自適應消息緩存(Adaptive Message Cache)
多輪交互雖然穩健,但會帶來上下文過長的問題。UniverAgent 引入了自適應消息緩存機制,充分利用 LLM 的 Prompt Caching 功能。系統會根據對話輪數自動插入緩存斷點,使得歷史上下文(包括龐大的表格結構信息)無需重複計算。這不僅降低了推理成本,更顯著提升了長鏈路任務的響應速度。
五、架構優勢:在線環境與混合執行
UniverAgent 的另一大護城河,在於其運行環境。與基於 `openpyxl / VBA` 等依賴 Excel App 操作本地文件的離線方案不同,UniverAgent 直接運行在 Univer 在線表格引擎 之上。
1. Python + JavaScript 混合雙打
在處理複雜任務時,單一語言往往力不從心。UniverAgent 創造性地採用了混合執行模式:
●Python (pandas/numpy):負責「重」邏輯。例如多表合併、透視分析、複雜統計。Python 在數據處理上的生態優勢在這裏得到了最大化釋放。
●JavaScript (Univer SDK):負責「細」操作。例如設定條件格式、調整列寬、插入圖表、精確寫入單元格。這些是 DOM 無關的 Headless 環境,保證了渲染的一致性。
示例場景:
下面我們用一個簡單例子展示混合執行模式的優勢:
任務:從某個銷售明細區域中,按類別匯總銷售額,並把結果寫回到當前表格的指定區域。
import pandas as pd # 1. 通過工具獲取數據 range_data = get_range_data(「A1:C100」)# 假設列為: Category, Item, Amount df = range_data.to_dataframe() # 2. Python 側進行數據分析 totals = df.groupby(「Category」)[「Amount」].sum() categories =list(totals.index) values =list(totals.values) # 3. JavaScript 側寫入結果 js_code =f「」「 () => {{ const workbook = univerAPI.getActiveWorkbook(); const sheet = workbook.getActiveSheet(); const categories = {categories!r}; const values = {values!r}; // 從第 0 行第 5 列開始寫入結果(也就是 F1 開始) for (let i = 0; i < categories.length; i++) {{ const row = i; // 0-based 行號 const colCategory = 5; const colAmount = 6; sheet.getRange(row, colCategory).setValue(String(categories[i])); sheet.getRange(row, colAmount).setValue(Number(values[i])); // 金額列設定為貨幣格式 sheet.getRange(row, colAmount).setNumberFormat(「$#,##0.00」); }} return {{ success: true, writtenRows: categories.length }}; }} 「」「 result = eval_js(js_code) print(result)# => {‘success’: True, ‘writtenRows’: N}
這種分工使得 UniverAgent 既擁有數據分析的深度,又具備原生表格操作的精度。
2. 在線協作的天然優勢
基於在線架構,UniverAgent 的每一次操作都是對「活」的表格進行的。這意味着:
●狀態自然保持:無需反覆讀寫文件,中間狀態實時駐留在內存中。
●所見即所得:Agent 的操作可以實時同步給人類用戶,便於人機協作與監督。
●版本控制:利用在線表格的版本回滾能力,Agent 的誤操作可以被輕鬆撤銷,大大降低了實驗成本。
六、結語:邁向自主電子表格工程
SpreadsheetBench 的 68.86% 只是一個數字,它背後反映的是電子表格自動化從「玩具」走向「工具」的技術跨越。
UniverAgent 的實踐證明,通過極致的上下文工程、穩健的 CodeAct 循環以及原生在線的混合架構,AI 完全有能力勝任複雜的電子表格工作。我們不再是在生成一段輔助腳本,而是在構建一個能夠理解業務、精準執行、自我糾錯的電子表格工程師。
未來,隨着模型能力的提升和工具鏈的完善,我們期待看到更多企業級場景下的自動化落地,讓數據處理真正迴歸價值本身。
文末最後打個小廣告,近期團隊正在招募 AI Agent 相關人才,如果你看了對我們正努力的方向很感興趣,歡迎聯繫我們:developer@univer.ai
新浪聲明:此消息系轉載自新浪合作媒體,新浪網登載此文出於傳遞更多信息之目的,並不意味着讚同其觀點或證實其描述。文章內容僅供參考,不構成投資建議。投資者據此操作,風險自擔。責任編輯:何俊熹