在最近一輪的SpreadsheetBench評測中,UniverAgent 取得了68.86% 的 Pass Rate,位列排行榜第一,超越了包括 ChatGPT Agent 和 Excel Copilot 在內的主流方案。
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 的前提下,看清整個工作簿的結構。它不僅僅是數據的截斷展示,更包含了一系列智能壓縮策略。
以一個簡單的銷售數據表為例,原始電子表格中的內容大致如下(只展示關鍵列):
![]()
以下是一個典型的 Overview 輸出示例,可以看到它如何將一張包含數據的表格“濃縮”為結構化視圖:
# 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 環境,保證了渲染的一致性。
示例場景:
下面我們用一個簡單例子展示混合執行模式的優勢:
任務:從某個銷售明細區域中,按類別匯總銷售額,并把結果寫回到當前表格的指定區域。
importpandasaspd
# 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 完全有能力勝任復雜的電子表格工作。我們不再是在生成一段輔助腳本,而是在構建一個能夠理解業務、精準執行、自我糾錯的電子表格工程師。
未來,隨著模型能力的提升和工具鏈的完善,我們期待看到更多企業級場景下的自動化落地,讓數據處理真正回歸價值本身。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.