亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

AI Agent 辦公應(yīng)用開(kāi)發(fā):Univer 開(kāi)源 SDK 接入與實(shí)操指南

AI Agent 辦公應(yīng)用開(kāi)發(fā):Univer 開(kāi)源 SDK 接入與實(shí)操指南 1. 為什么“AI Agent 辦公應(yīng)用”這個(gè)組合值得單獨(dú)聊AI Agent 這個(gè)詞在過(guò)去一年多里被反復(fù)提及但真正落到“能干活”的場(chǎng)景其實(shí)并不多。大部分演示停留在問(wèn)答、檢索、寫(xiě)幾段文案一旦讓它去操作一個(gè)真實(shí)的電子表格、改一份文檔、生成一張帶格式的報(bào)表立刻就露怯了。原因不復(fù)雜Agent 需要一個(gè)能被程序化操控的“工作臺(tái)”而傳統(tǒng)辦公軟件要么是封閉的桌面程序要么是面向人類交互設(shè)計(jì)的 Web 界面根本沒(méi)有給 Agent 留出穩(wěn)定的操作接口。Univer 這個(gè)項(xiàng)目切入的正是這個(gè)縫隙。它把自己定位成“面向 AI Agent 的開(kāi)源辦公應(yīng)用 SDK”說(shuō)白了就是提供一套可編程的表格、文檔、幻燈片內(nèi)核讓開(kāi)發(fā)者能在自己的產(chǎn)品里嵌入辦公能力同時(shí)讓 AI Agent 通過(guò) API 直接讀寫(xiě)單元格、樣式、公式、批注這些結(jié)構(gòu)化對(duì)象而不是靠模擬鼠標(biāo)點(diǎn)擊去“猜”界面。這個(gè)定位很關(guān)鍵因?yàn)樗鼪Q定了 Univer 不是又一個(gè)在線 Excel 的克隆品而是一層基礎(chǔ)設(shè)施。我第一次接觸這類需求是在做一個(gè)內(nèi)部數(shù)據(jù)填報(bào)工具的時(shí)候。業(yè)務(wù)方希望用戶能在網(wǎng)頁(yè)里編輯表格同時(shí)后臺(tái)的自動(dòng)化流程要能直接改某些單元格的值并觸發(fā)重算。當(dāng)時(shí)試過(guò)幾種方案用現(xiàn)成的在線表格組件API 能力弱改個(gè)公式得繞一大圈自己用 canvas 畫(huà)表格光是公式引擎和協(xié)同沖突處理就能拖垮整個(gè)排期。Univer 這類項(xiàng)目的價(jià)值就在于它把公式引擎、渲染、協(xié)同、插件體系這些臟活累活都封裝好了你只需要關(guān)心業(yè)務(wù)邏輯和 Agent 的接入方式。這篇文章適合幾類人看一是正在做 AI Agent 產(chǎn)品、需要給 Agent 配一個(gè)“辦公操作面板”的開(kāi)發(fā)者二是想在自己的 SaaS 里嵌入表格或文檔編輯能力、又不想從零造輪子的團(tuán)隊(duì)三是對(duì)開(kāi)源辦公內(nèi)核感興趣、想研究公式引擎和協(xié)同架構(gòu)的技術(shù)人。我會(huì)從整體設(shè)計(jì)思路、核心模塊拆解、實(shí)操接入步驟、常見(jiàn)坑這幾個(gè)角度展開(kāi)盡量把“為什么這么設(shè)計(jì)”講清楚而不是只羅列 API。2. Univer 的整體設(shè)計(jì)與架構(gòu)思路拆解2.1 它到底解決的是哪一層問(wèn)題要理解 Univer 的定位先得把“辦公應(yīng)用”拆成幾層。最底層是數(shù)據(jù)模型比如一個(gè)表格由工作表、行、列、單元格、樣式、公式、批注等對(duì)象組成往上是計(jì)算引擎負(fù)責(zé)公式解析、依賴圖、重算再往上是渲染層把數(shù)據(jù)畫(huà)到 canvas 或 DOM 上最上面是交互層處理選區(qū)、拖拽、快捷鍵、菜單。傳統(tǒng)辦公軟件把這四層揉在一起對(duì)外只暴露一個(gè)給人用的界面。Univer 的做法是把它們拆開(kāi)每一層都可以被程序調(diào)用。這個(gè)拆分對(duì) AI Agent 特別友好。Agent 不需要去理解“用戶點(diǎn)了哪個(gè)按鈕”它只需要調(diào)用類似setCellValue(sheetId, row, col, value)或者setFormula(...)這樣的方法然后觸發(fā)一次重算再讀取結(jié)果。整個(gè)過(guò)程是確定性的、可測(cè)試的不會(huì)因?yàn)榻缑娓陌婢褪?。這也是為什么 Univer 強(qiáng)調(diào)自己是 SDK 而不是應(yīng)用——它把“辦公能力”變成了一組可組合的模塊。從架構(gòu)上看Univer 采用了插件化 分層依賴的設(shè)計(jì)。核心包提供基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)和事件總線公式、渲染、協(xié)同、UI 這些都以插件形式掛載。這樣做的好處是體積可控如果你只需要一個(gè)只讀的表格展示可以不引入編輯相關(guān)的插件如果你要做協(xié)同編輯再按需加載協(xié)同模塊。對(duì) Agent 場(chǎng)景來(lái)說(shuō)你甚至可以只引入數(shù)據(jù)層和公式層完全不要 UI把它當(dāng)成一個(gè)純計(jì)算服務(wù)來(lái)用。2.2 為什么選擇 Canvas 渲染而不是 DOMUniver 的表格渲染走的是 Canvas 路線這一點(diǎn)和很多輕量表格組件不同。DOM 渲染的優(yōu)點(diǎn)是天然支持無(wú)障礙、文本選擇和 CSS 樣式但缺點(diǎn)也很明顯當(dāng)單元格數(shù)量上萬(wàn)時(shí)DOM 節(jié)點(diǎn)數(shù)量會(huì)爆炸滾動(dòng)和重算都會(huì)卡。Canvas 把整個(gè)表格畫(huà)成一張位圖節(jié)點(diǎn)數(shù)量恒定性能上限高得多。代價(jià)是你要自己實(shí)現(xiàn)文本測(cè)量、選區(qū)繪制、滾動(dòng)虛擬化、輸入法處理這些細(xì)節(jié)。Univer 在這方面做了不少工作比如它維護(hù)了一套自己的文本排版邏輯支持富文本、換行、對(duì)齊還處理了 Canvas 上的光標(biāo)和輸入框疊加。對(duì) Agent 來(lái)說(shuō)Canvas 渲染其實(shí)是個(gè)加分項(xiàng)因?yàn)?Agent 不關(guān)心視覺(jué)細(xì)節(jié)它關(guān)心的是數(shù)據(jù)操作是否高效。Canvas 方案讓大規(guī)模數(shù)據(jù)的批量修改和重算變得更快Agent 一次改幾千個(gè)單元格也不會(huì)把頁(yè)面拖死。不過(guò)這里有個(gè)實(shí)操注意點(diǎn)如果你要在 Canvas 表格上做自動(dòng)化測(cè)試傳統(tǒng)的 DOM 選擇器是抓不到單元格的。你需要通過(guò) Univer 暴露的 API 去讀取數(shù)據(jù)或者用它的測(cè)試工具來(lái)斷言。這一點(diǎn)在寫(xiě) Agent 的回歸測(cè)試時(shí)要提前規(guī)劃好否則會(huì)走彎路。2.3 公式引擎的獨(dú)立性設(shè)計(jì)公式是辦公表格的靈魂也是 Agent 最容易出錯(cuò)的環(huán)節(jié)。Univer 把公式引擎做成了相對(duì)獨(dú)立的模塊支持常見(jiàn)的數(shù)學(xué)、統(tǒng)計(jì)、文本、日期函數(shù)并且維護(hù)了一張依賴圖。當(dāng)你修改某個(gè)單元格時(shí)引擎會(huì)根據(jù)依賴圖找出所有受影響的單元格按拓?fù)漤樞蛑厮愣皇侨碇厮恪_@個(gè)設(shè)計(jì)對(duì) Agent 很重要。假設(shè) Agent 要在一個(gè)預(yù)算表里改一個(gè)稅率它只需要改那一個(gè)單元格引擎會(huì)自動(dòng)把相關(guān)的合計(jì)、稅額、凈額都更新掉。如果引擎是全表重算大表上每次操作都要幾秒Agent 的多步操作就會(huì)變得不可接受。依賴圖的存在讓增量重算成為可能這是 Agent 高頻操作場(chǎng)景下的性能基礎(chǔ)。另外公式引擎和渲染是解耦的。這意味著你可以在沒(méi)有界面的環(huán)境里跑公式計(jì)算比如在服務(wù)端用 Node.js 加載 Univer 的數(shù)據(jù)層和公式層對(duì)上傳的表格做批量計(jì)算。這個(gè)能力在做數(shù)據(jù)導(dǎo)入導(dǎo)出、報(bào)表生成的時(shí)候非常實(shí)用也是很多純前端表格組件做不到的。2.4 協(xié)同能力的預(yù)留雖然標(biāo)題里沒(méi)提協(xié)同但 Univer 的架構(gòu)里給協(xié)同留了位置。它的數(shù)據(jù)變更走的是命令模式每次修改都會(huì)產(chǎn)生一個(gè)可序列化的操作記錄。這個(gè)設(shè)計(jì)本來(lái)是為了撤銷重做但同樣適合做協(xié)同同步——把操作記錄廣播出去其他端按順序應(yīng)用即可。對(duì) AI Agent 來(lái)說(shuō)這個(gè)特性有個(gè)隱含價(jià)值A(chǔ)gent 的每一次修改都可以被記錄、回放、審計(jì)。在需要合規(guī)或者需要人工復(fù)核的場(chǎng)景里你可以把 Agent 的操作日志拿出來(lái)逐步檢查它改了什么。這比“Agent 直接改了數(shù)據(jù)庫(kù)但沒(méi)留痕”要可控得多。我在做自動(dòng)化流程的時(shí)候特別看重這一點(diǎn)因?yàn)橐坏?Agent 改錯(cuò)了數(shù)據(jù)沒(méi)有操作記錄就很難定位問(wèn)題。3. 核心模塊與實(shí)操接入要點(diǎn)3.1 環(huán)境準(zhǔn)備與依賴安裝Univer 是 TypeScript 項(xiàng)目主流的接入方式是通過(guò) npm 安裝。核心包通常包括univerjs/core、univerjs/sheets、univerjs/sheets-ui、univerjs/sheets-formula這幾個(gè)。如果你要做文檔或幻燈片還有對(duì)應(yīng)的包。安裝的時(shí)候要注意版本對(duì)齊Univer 的包之間版本號(hào)是聯(lián)動(dòng)的混用不同小版本可能會(huì)遇到類型不匹配或者運(yùn)行時(shí)錯(cuò)誤。npm install univerjs/core univerjs/sheets univerjs/sheets-ui univerjs/sheets-formula安裝完之后你需要?jiǎng)?chuàng)建一個(gè) Univer 實(shí)例注冊(cè)需要的插件然后把它掛載到一個(gè)容器元素上。下面是一個(gè)最小化的表格初始化示例import { Univer, LocaleType, merge } from univerjs/core; import { UniverSheetsPlugin } from univerjs/sheets; import { UniverSheetsUIPlugin } from univerjs/sheets-ui; import { UniverSheetsFormulaPlugin } from univerjs/sheets-formula; const univer new Univer({ locale: LocaleType.ZH_CN, theme: defaultTheme, }); univer.registerPlugin(UniverSheetsPlugin); univer.registerPlugin(UniverSheetsUIPlugin); univer.registerPlugin(UniverSheetsFormulaPlugin); univer.createUnit(UniverInstanceType.UNIVER_SHEET, { id: agent-sheet, sheetOrder: [sheet-01], sheets: { sheet-01: { id: sheet-01, name: 數(shù)據(jù)表, rowCount: 1000, columnCount: 26, cellData: {}, }, }, });這段代碼做了三件事創(chuàng)建實(shí)例、注冊(cè)插件、創(chuàng)建一張工作表。注意rowCount和columnCount決定了表格的初始規(guī)模Agent 如果要處理大數(shù)據(jù)量可以把這個(gè)值調(diào)大但也要考慮內(nèi)存占用。實(shí)測(cè)下來(lái)一萬(wàn)行乘五十列的空白表在瀏覽器里初始化大概幾百毫秒屬于可接受范圍。提示Univer 的包更新比較快接入前建議先看官方倉(cāng)庫(kù)的 release notes確認(rèn)當(dāng)前穩(wěn)定版本。不要盲目追最新版尤其是生產(chǎn)環(huán)境。3.2 用 API 操作單元格Agent 的核心動(dòng)作Agent 操作表格歸根結(jié)底就是讀和寫(xiě)。Univer 提供了基于命令的寫(xiě)入方式和基于 Facade 的讀寫(xiě)方式。命令方式更底層適合需要撤銷重做的場(chǎng)景Facade 方式更直觀適合快速開(kāi)發(fā)。對(duì) Agent 來(lái)說(shuō)我推薦用 Facade因?yàn)樗恼Z(yǔ)義更接近“設(shè)置某個(gè)單元格的值”這種自然語(yǔ)言描述。const sheet univer.getActiveSheet(); const facade sheet.getFacade(); // 寫(xiě)入一個(gè)值 facade.setCellValue(0, 0, 產(chǎn)品名稱); facade.setCellValue(0, 1, 銷量); // 寫(xiě)入公式 facade.setCellFormula(1, 1, SUM(B2:B10)); // 讀取值 const value facade.getCellValue(1, 1);這里有個(gè)細(xì)節(jié)要注意行列索引是從 0 開(kāi)始的而公式里的引用是從 1 開(kāi)始的。Agent 在生成公式的時(shí)候如果它內(nèi)部用的是 0 基索引就很容易差一位。我在做 Agent 的時(shí)候就踩過(guò)這個(gè)坑Agent 說(shuō)“把第二行第一列設(shè)為合計(jì)”結(jié)果寫(xiě)到了第三行。解決辦法是在 Agent 的工具層做一次統(tǒng)一的索引轉(zhuǎn)換不要讓 Agent 直接接觸底層索引。批量寫(xiě)入的時(shí)候逐條調(diào)用setCellValue會(huì)有性能問(wèn)題因?yàn)槊看握{(diào)用都可能觸發(fā)一次重算。更好的做法是用batch或者直接構(gòu)造命令數(shù)組一次性提交。Univer 的命令系統(tǒng)支持批量執(zhí)行這樣依賴圖只會(huì)更新一次重算也只跑一遍。const commands []; for (let i 0; i 100; i) { commands.push({ id: sheet.command.set-range-values, params: { range: { startRow: i, startColumn: 0, endRow: i, endColumn: 0 }, values: [[i * 2]], }, }); } univer.executeCommand(commands);批量提交在 Agent 場(chǎng)景里非常關(guān)鍵。Agent 經(jīng)常需要一次性填充幾百行數(shù)據(jù)如果逐條寫(xiě)頁(yè)面會(huì)卡到無(wú)法交互。我實(shí)測(cè)過(guò)一千條逐條寫(xiě)入大概要兩三秒批量提交能壓到兩百毫秒以內(nèi)差距很明顯。3.3 公式與依賴圖的實(shí)操細(xì)節(jié)公式是 Agent 最容易出錯(cuò)的地方因?yàn)楣缴婕耙?、范圍、函?shù)簽名這些結(jié)構(gòu)化信息。Univer 的公式引擎支持大部分常用函數(shù)但不同版本支持的范圍會(huì)有差異。接入前最好先確認(rèn)你要用的函數(shù)在不在支持列表里尤其是財(cái)務(wù)函數(shù)和數(shù)組函數(shù)。寫(xiě)公式的時(shí)候范圍引用要用 A1 表示法比如SUM(A1:A10)。如果你用 API 設(shè)置公式字符串里不要帶等號(hào)以外的多余空格否則解析可能失敗。下面是一個(gè)設(shè)置公式并讀取計(jì)算結(jié)果的例子facade.setCellFormula(9, 1, SUM(B2:B10)); // 等待重算完成 await univer.getActiveSheet().getFormulaEngine().calculate(); const result facade.getCellValue(9, 1);注意重算可能是異步的尤其是在大數(shù)據(jù)量下。Agent 在寫(xiě)完公式后如果立刻讀值可能讀到的是舊值或者空值。穩(wěn)妥的做法是監(jiān)聽(tīng)重算完成事件或者在 API 層做一次顯式的 calculate 并等待。我在做自動(dòng)化報(bào)表的時(shí)候就遇到過(guò)這個(gè)問(wèn)題Agent 寫(xiě)完公式馬上讀結(jié)果拿到的是 undefined排查了半天才發(fā)現(xiàn)是時(shí)序問(wèn)題。依賴圖還有一個(gè)特性循環(huán)引用會(huì)被檢測(cè)出來(lái)并報(bào)錯(cuò)。Agent 如果生成了循環(huán)引用比如 A1 引用 B1、B1 又引用 A1引擎會(huì)標(biāo)記錯(cuò)誤。這時(shí)候 Agent 需要能讀懂錯(cuò)誤信息并修正。建議在 Agent 的工具層把公式錯(cuò)誤映射成自然語(yǔ)言比如“檢測(cè)到循環(huán)引用請(qǐng)檢查 A1 和 B1 的公式”這樣 Agent 更容易自我糾正。3.4 樣式與格式的編程化控制Agent 生成的表格如果只有數(shù)據(jù)沒(méi)有格式可讀性會(huì)很差。Univer 支持通過(guò) API 設(shè)置字體、顏色、邊框、對(duì)齊、數(shù)字格式這些樣式。樣式對(duì)象的結(jié)構(gòu)和常見(jiàn)的表格庫(kù)類似但字段名有自己的約定接入時(shí)要查文檔確認(rèn)。facade.setCellStyle(0, 0, { fontFamily: Arial, fontSize: 12, bold: true, backgroundColor: #f0f0f0, horizontalAlign: center, });數(shù)字格式是個(gè)容易被忽略的點(diǎn)。Agent 寫(xiě)入的如果是金額默認(rèn)可能顯示成1234.5但業(yè)務(wù)上希望顯示成¥1,234.50。Univer 支持通過(guò) number format 來(lái)控制顯示你需要設(shè)置對(duì)應(yīng)的格式字符串。這個(gè)格式只影響顯示不影響底層值所以 Agent 讀到的還是原始數(shù)字不會(huì)因?yàn)楦袷交鴣G失精度。邊框和合并單元格也是 Agent 常用操作。合并單元格要注意合并后只有左上角的單元格保留值其他單元格的值會(huì)被清空。Agent 如果在合并前沒(méi)保存數(shù)據(jù)就會(huì)丟數(shù)據(jù)。建議在 Agent 的工具層把“合并單元格”實(shí)現(xiàn)成“先讀取所有值、合并、再把值寫(xiě)回左上角”的復(fù)合操作避免數(shù)據(jù)丟失。4. 完整實(shí)操流程從零接入一個(gè) Agent 可操作的表格4.1 項(xiàng)目初始化與目錄結(jié)構(gòu)假設(shè)我們要做一個(gè)最小的 Agent 辦公面板前端用 React后端用 Node.js 跑 Agent 邏輯。目錄結(jié)構(gòu)大概是這樣agent-office/ packages/ web/ # 前端嵌入 Univer agent/ # Agent 邏輯調(diào)用 Univer API shared/ # 共享類型和工具函數(shù)前端負(fù)責(zé)渲染表格和接收用戶輸入Agent 邏輯可以跑在前端也可以跑在后端。如果 Agent 需要調(diào)用外部模型建議放后端避免密鑰泄露。前端通過(guò) WebSocket 或者 HTTP 和后端通信后端把 Agent 的指令轉(zhuǎn)成 Univer 的命令再同步回前端。這里有個(gè)架構(gòu)選擇Agent 是直接操作前端的 Univer 實(shí)例還是操作服務(wù)端的一份數(shù)據(jù)副本兩種都可以。直接操作前端實(shí)例的延遲低但 Agent 邏輯必須跑在瀏覽器里操作服務(wù)端副本更安全但需要做雙向同步。我傾向于后者因?yàn)?Agent 的邏輯往往涉及模型調(diào)用和敏感數(shù)據(jù)放服務(wù)端更可控。同步可以用 Univer 的命令流把服務(wù)端的命令廣播到前端應(yīng)用。4.2 定義 Agent 可用的工具集Agent 要操作表格需要一組明確的工具。工具的定義要盡量原子化一個(gè)工具做一件事參數(shù)要少而清晰。下面是我常用的一組工具定義工具名功能關(guān)鍵參數(shù)read_range讀取指定范圍的值sheetId, rangewrite_range寫(xiě)入一批值sheetId, range, valuesset_formula設(shè)置公式sheetId, row, col, formulaapply_style應(yīng)用樣式sheetId, range, styleinsert_rows插入行sheetId, index, countmerge_cells合并單元格sheetId, rangeget_sheet_info獲取表結(jié)構(gòu)sheetId工具的參數(shù)設(shè)計(jì)要避免讓 Agent 去猜索引。比如read_range的 range 可以用 A1 表示法Agent 更容易理解“讀取 A1:C10”而不是“讀取第 0 行到第 9 行、第 0 列到第 2 列”。在工具內(nèi)部再做一次轉(zhuǎn)換把 A1 表示法解析成行列索引。這樣 Agent 的提示詞可以寫(xiě)得更自然出錯(cuò)率也低。工具的返回值也要結(jié)構(gòu)化。不要返回一大段自然語(yǔ)言而是返回 JSON讓 Agent 能解析。比如read_range返回{ values: [[...]], formulas: [[...]] }Agent 拿到后可以自己決定下一步。如果返回的是“A1 的值是 100”Agent 還得再做一次文本解析容易出錯(cuò)。4.3 處理 Agent 的多步操作與事務(wù)Agent 做復(fù)雜任務(wù)時(shí)往往是多步的比如“先讀取銷售數(shù)據(jù)按地區(qū)匯總再生成一張新表”。這中間任何一步失敗都可能留下半成品。Univer 的命令系統(tǒng)支持撤銷但 Agent 不一定知道怎么撤銷。更好的做法是在工具層做事務(wù)封裝把一組操作打包成一個(gè)事務(wù)要么全成功要么全回滾。實(shí)現(xiàn)方式可以是在執(zhí)行前記錄一個(gè)快照失敗時(shí)恢復(fù)到快照。Univer 的數(shù)據(jù)層支持序列化你可以把當(dāng)前工作表的狀態(tài)存下來(lái)出錯(cuò)時(shí)反序列化回去。這個(gè)快照不需要很深只存受影響的范圍即可避免大表上快照開(kāi)銷過(guò)大。另一個(gè)細(xì)節(jié)是并發(fā)。如果多個(gè) Agent 同時(shí)操作同一張表或者 Agent 和用戶同時(shí)操作就可能沖突。Univer 的命令流是有序的但如果你在服務(wù)端和前端各有一份狀態(tài)就要保證命令的應(yīng)用順序一致。我的做法是給每個(gè)命令帶一個(gè)遞增的序號(hào)接收方按序號(hào)應(yīng)用亂序的緩存起來(lái)等前序到達(dá)。這個(gè)機(jī)制和協(xié)同編輯里的 OT 或 CRDT 思路類似但實(shí)現(xiàn)可以簡(jiǎn)化很多因?yàn)?Agent 場(chǎng)景下并發(fā)度通常不高。4.4 前端渲染與交互的銜接前端嵌入 Univer 后用戶和 Agent 操作的是同一張表。用戶手動(dòng)改了一個(gè)單元格Agent 應(yīng)該能感知到Agent 改了數(shù)據(jù)用戶界面也要實(shí)時(shí)更新。Univer 的事件總線可以監(jiān)聽(tīng)數(shù)據(jù)變更把變更同步給 Agent 的上下文。univer.getActiveSheet().onCellChanged((event) { // 把變更推送給 Agent 的上下文 agentContext.updateCell(event.row, event.col, event.value); });這里要注意事件風(fēng)暴。用戶快速輸入時(shí)會(huì)產(chǎn)生大量變更事件如果每個(gè)事件都推給 AgentAgent 的上下文會(huì)被刷爆。建議做一層節(jié)流比如 200 毫秒合并一次只推送最終狀態(tài)。Agent 不需要知道用戶按了哪些鍵它只需要知道最終的數(shù)據(jù)是什么。還有一個(gè)體驗(yàn)問(wèn)題Agent 操作表格時(shí)用戶應(yīng)該能看到過(guò)程。如果 Agent 一次性改了五百個(gè)單元格界面直接跳到最終狀態(tài)用戶會(huì)一臉懵。可以在 Agent 的工具層加一個(gè)“逐步應(yīng)用”的選項(xiàng)每批操作之間留一點(diǎn)間隔讓用戶看到變化。這個(gè)間隔不用太長(zhǎng)50 到 100 毫秒就夠既能看到過(guò)程又不至于太慢。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 公式不重算或重算結(jié)果不對(duì)這是接入初期最常見(jiàn)的問(wèn)題。表現(xiàn)是設(shè)置了公式但單元格顯示的還是舊值或者顯示#ERROR。排查順序是這樣的先確認(rèn)公式字符串本身是否合法有沒(méi)有多余空格、括號(hào)是否匹配、函數(shù)名是否拼錯(cuò)再確認(rèn)依賴的單元格是否有值如果依賴的是空單元格某些函數(shù)會(huì)返回 0 而不是報(bào)錯(cuò)最后確認(rèn)重算是否被觸發(fā)Univer 的公式引擎在數(shù)據(jù)變更后會(huì)自動(dòng)標(biāo)記臟區(qū)但如果你直接改了底層數(shù)據(jù)而沒(méi)走命令可能不會(huì)觸發(fā)重算。解決辦法是統(tǒng)一走 Facade 或命令 API不要直接改數(shù)據(jù)對(duì)象。如果確實(shí)需要直接改改完后手動(dòng)調(diào)用一次calculate()。另外公式里的范圍引用如果超出了表格的實(shí)際行列數(shù)也可能導(dǎo)致計(jì)算異常。建議在 Agent 生成公式后做一次范圍校驗(yàn)確保引用在有效范圍內(nèi)。5.2 大數(shù)據(jù)量下的性能瓶頸當(dāng)表格行數(shù)超過(guò)五千、或者 Agent 頻繁批量寫(xiě)入時(shí)可能會(huì)遇到卡頓。瓶頸通常出現(xiàn)在三個(gè)地方渲染、重算、事件通知。渲染方面Canvas 雖然比 DOM 快但如果每次變更都全量重繪依然會(huì)卡。Univer 內(nèi)部有臟區(qū)重繪機(jī)制但如果你繞過(guò)了它直接操作就會(huì)觸發(fā)全量重繪。重算方面依賴圖越大單次重算越慢尤其是跨表引用多的時(shí)候。事件通知方面如果每個(gè)單元格變更都觸發(fā)一次事件監(jiān)聽(tīng)方處理不過(guò)來(lái)就會(huì)堆積。優(yōu)化手段包括批量提交命令、限制單次操作的范圍、關(guān)閉不必要的事件監(jiān)聽(tīng)、對(duì)大數(shù)據(jù)表做分頁(yè)或虛擬滾動(dòng)。我實(shí)測(cè)過(guò)一個(gè)一萬(wàn)行乘二十列的表批量寫(xiě)入一千行數(shù)據(jù)如果不做優(yōu)化大概要三到四秒做了批量提交和關(guān)閉中間事件后能壓到一秒以內(nèi)。對(duì)于 Agent 場(chǎng)景還可以考慮把重計(jì)算放到 Web Worker 里避免阻塞主線程。5.3 Agent 生成的公式引用錯(cuò)位前面提過(guò)索引問(wèn)題這里再展開(kāi)一下。Agent 通常用自然語(yǔ)言描述位置比如“第二行第三列”模型在轉(zhuǎn)成代碼時(shí)可能把“第二行”理解成索引 2 而不是索引 1。如果 Agent 直接生成 A1 表示法比如C2出錯(cuò)概率會(huì)低一些因?yàn)?A1 表示法和人類的行列描述更接近。建議在工具層強(qiáng)制使用 A1 表示法內(nèi)部再做轉(zhuǎn)換。還有一個(gè)相關(guān)問(wèn)題是相對(duì)引用和絕對(duì)引用的混淆。Agent 如果生成A1B1然后往下拖拽相對(duì)引用會(huì)變成A2B2這可能是它想要的也可能不是。如果 Agent 想固定引用某一行應(yīng)該用$A$1。在工具層可以提供一個(gè)“填充公式”的工具讓 Agent 指定源公式和目標(biāo)范圍由工具來(lái)處理相對(duì)引用的偏移而不是讓 Agent 自己算。5.4 樣式設(shè)置不生效樣式不生效的原因通常有幾個(gè)一是樣式對(duì)象字段名寫(xiě)錯(cuò)Univer 的樣式字段和 CSS 不完全一樣比如背景色是backgroundColor而不是background二是樣式被后設(shè)置的樣式覆蓋比如你先設(shè)了紅色又設(shè)了默認(rèn)樣式結(jié)果紅色沒(méi)了三是樣式應(yīng)用到了錯(cuò)誤的范圍比如行列索引差一位。排查的時(shí)候可以先把樣式設(shè)到一個(gè)單元格上確認(rèn)生效后再擴(kuò)展到范圍。如果范圍樣式不生效檢查范圍的起止行列是否正確。另外合并單元格的樣式要設(shè)在左上角單元格上設(shè)在其他被合并的單元格上不會(huì)顯示。這個(gè)細(xì)節(jié)在文檔里不一定顯眼但實(shí)際用的時(shí)候很容易踩。5.5 常見(jiàn)問(wèn)題速查表現(xiàn)象可能原因排查方向公式顯示 #ERROR公式語(yǔ)法錯(cuò)誤或引用無(wú)效檢查函數(shù)名、括號(hào)、范圍寫(xiě)入后讀不到值異步重算未完成等待 calculate 完成再讀批量寫(xiě)入卡頓逐條提交觸發(fā)多次重算改用批量命令提交樣式不顯示字段名錯(cuò)誤或范圍錯(cuò)誤單單元格測(cè)試后擴(kuò)展Agent 改錯(cuò)位置索引基準(zhǔn)不一致統(tǒng)一用 A1 表示法合并后數(shù)據(jù)丟失合并清空非左上角值合并前先保存值事件重復(fù)觸發(fā)未做節(jié)流合并高頻事件6. 我對(duì)這類項(xiàng)目的一點(diǎn)實(shí)際體會(huì)接入 Univer 做 Agent 辦公能力最深的體會(huì)是“接口的穩(wěn)定性比功能的豐富度更重要”。Agent 不像人類它不會(huì)因?yàn)榻缑婧每淳腿萑?API 的反復(fù)無(wú)常。一個(gè)字段名改了、一個(gè)索引基準(zhǔn)變了Agent 的整條鏈路就可能崩掉。所以在選型的時(shí)候我會(huì)優(yōu)先看這個(gè)項(xiàng)目的 API 是否穩(wěn)定、是否有版本化的文檔、是否有測(cè)試覆蓋。Univer 在這方面做得還算扎實(shí)但快速迭代期難免有 breaking change生產(chǎn)環(huán)境一定要鎖版本。另一個(gè)體會(huì)是Agent 操作辦公軟件本質(zhì)上是在做“結(jié)構(gòu)化數(shù)據(jù)的增刪改查”而不是“模擬人類操作界面”。凡是讓 Agent 去點(diǎn)按鈕、拖滾動(dòng)條、識(shí)別截圖的方案長(zhǎng)期看都不靠譜因?yàn)榻缑嬉蛔兙腿珡U。Univer 這種提供編程接口的思路才是正路。如果你正在設(shè)計(jì) Agent 產(chǎn)品建議盡早把“操作層”和“展示層”分開(kāi)讓 Agent 只依賴操作層的 API展示層怎么改都不影響 Agent。最后分享一個(gè)小技巧在 Agent 的工具層加一個(gè)“dry run”模式讓 Agent 可以先模擬執(zhí)行一遍看看會(huì)產(chǎn)生什么變更確認(rèn)無(wú)誤后再真正提交。這個(gè)模式在調(diào)試階段特別有用能避免 Agent 把測(cè)試數(shù)據(jù)寫(xiě)進(jìn)生產(chǎn)表。實(shí)現(xiàn)上就是在執(zhí)行命令前攔截把命令記錄下來(lái)但不應(yīng)用返回一個(gè)預(yù)覽結(jié)果給 Agent。等 Agent 確認(rèn)后再真正執(zhí)行。這個(gè)機(jī)制花不了多少代碼但能省下很多排查數(shù)據(jù)問(wèn)題的時(shí)間。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品国产一区二区三区久久久蜜臀 | 國產尤物AV尤物在線觀看| 久久久久ab| 五月天激情婷婷| 麻豆三极片| 男人的天堂久久狠| 爱爱动态试试看6 0秒| 91在线精品| 激情综合网激情综合| 天天操天天日青青草超碰av| 日韩精彩免费| 99热精品在线观看| 91黑丝在线播放| 国产在线强奸视频| 夜夜草我| 日本孕妇一区二区视频操逼免费看 | 欧美日韩免费专区在线| 婷婷五月花| 欧美不卡二区| 久久综合资源一区二区| 一区二区三区美女超清| 热99这里有精品综合久久| 台湾佬中文娱乐网久久久久久久久久com | 日日A∨| 九色 人妻 大香蕉| 久久激情五月| 三级三久久线久久99久目本WW| 亚洲密乳AV| 欧美综合天天| 99999精品| 97色综合中文网| 曰韩香蕉97| 综合色拍| 久久婷婷亚洲欧| 蜜臀精品1区2区| 91粉芽高清在线一区二区| 亚洲砖码砖专无区2023| 在线观看AV不卡| 久久午夜伦| 偷拍欧美综合| 蜜色网色哟哟| 夫妻四区五区六区| 中文字幕少妇色| 韩国轻伦国内自拍一区| 91人妻丝袜无码| 青娱乐av在线| 国产成自自拍在线观看| 91欧美综合在线| 小骚逼被操的爽不爽| 日本一天色道久久久精品视频| 男人的天堂.com| 青青草视频爽一爽| 日韩精品人妻中文字幕久久久| 欧美亚洲第1页| 97国产精选| 青操影院| 中文字幕99999| 久久大| 国产精品午夜福利亚洲综合网| 亚洲中文字幕精品一区| 乱伦一区二区三区‘| 国产伦乱91| 色婷婷电影| 亚洲国产欧美日韩人妻日中文| 欧美性天天影视| 九九久久国产精品| 欧美日韩亚洲国产中文永久天天看| 熟女熟妇伦久久影院毛片一区二区 | 97精品久久久久中文字幕| 少好三P| 欧美色偷偷| 强奸乱伦亚洲第一页| 久草福利在线资源站| 91九色首页| 肉丝网站91| 中文字幕视频免费| 日韩综合97p| 精品人妻一二三| 中文字幕亚韩| 啊啊啊啊啊好大好舒服想要| 中出91视频| 欧美精品三级黄片| 女人午夜视频777| 亚洲综合色男人网| 日本淫穴在线| 一起草三级AV电影在线观看| 婷婷五月天AV| 啊啊啊啊免费视频| 国产色精品午夜大片| 嗯嗯啊中文字幕| 久九9精品| 俺去啦俺来也久久综合| 伊人亚洲国产一成人久久精品,久久| 男人的天堂成人的社区| 乱性AV| 日韩精品一区二区三区四虎影视| 久久影视二区三区行押| 国产91av在线播放| 色欧美天天| 综合97久久| 国产无码三级视频在线观看| 福利风月五月天影院| 久男人久久| 蜜桃中文字日产乱幕4区| 亚洲麻豆18发?| 日韩精品字幕| 污污污8888| 亚洲丝袜诱惑| 青青欧美在线| 74成人在线| 99热| 欧美性爱一区二区三区| 这里有精品| 奶水 人妻 哺乳 在线| 久久久久人妻二区精品叶可怜| 欧美日韩丝袜 | 乱伦系列一区二区| 亚洲欧美情色| 一区二区激情国产熟女 | 看一级黄色视频| 中文字幕第23区| 可以免费看黄片的视频| 亚洲自拍另类丝袜综合| 久久久久久日韩| 欧美久久久| 美日韩男女操屄视频| 国产精品天美传媒| 欧美夜夜草视频| 天天淫人人妻日日色| 日逼97| 欧美有码激情视频一区二区三区| 中文字幕制服诱惑| 亚洲不卡不卡中文字幕不卡| 欧美在线永久天堂| 久久精品中文字幕女同| 91碰碰碰| 天堂无码| 夜夜骑操视频| 久久久久久久人妻| 亚洲一区操| 久久九七| 丁香六月婷| 亚洲日韩电影| 久久日本熟女精品一区| 丁香九月婷婷| 欧美性爱www免费版| 性欧美| 久久香蕉网| 日日超碰亚洲| 中字一区| 91国产精品熟女| 一二三区操逼国产91| 日韩伦理视频| 久久久一区二区| 夜嗨影院| 北约熟女超碰| 九久9精品| 日本一区二区电影网站| 欧美小说区视频区| 日本不卡三级网在线播放| 亚洲精品乱码线路中文字幕 | 亚欧色图在线激情| 操屄不卡视频| 97超碰中文在线| 歐美一級亂黃99在綫精品| 国产成人99久久亚洲综合| 女上位精品在线| 色婷婷视频| 日韩在线观看三级电影| 超碰欧美COM| 中文字幕av久久爽Av| 人人干人人操人人..com| 一区二区三区高清| 熟妇人妻精品一区二区| 偷拍在线观看视频| 色性欧美| 国产精品久久久久综合| 国产成人午夜视频网址| 男人的天堂va| 亚洲熟妇AV日韩熟妇在线| 亚洲人妻一区二区三区| 婷婷色网| 国产呦精品一区二区三区下载| 精品午夜福利| 超碰色大香蕉| 久热99999| 成人熟女视频一区二区三区| 精品人妻伦一二三区久久| 尤物黄色在线观看网站| 成人av影院在线观看| 极品色综合| 久久久久斤小| 插B在线观看| 熟啊v色欧美热| 超碰人人妻| 激情看片网站| 国产日本久久免费精品| 曰本人妻人人澡人人夹| 人妻 中文 日韩| 国产无码久久高清| 又大又大又大又粗爽高潮观看| 97天天插| 一本色道久久综合亚洲二区三区| 骚人妻少妇视频| 日韩少妇无吗| 亚洲精品黑丝| 九九九草| 国产黄色影片在线观看| 成人免费毛片| h无码动漫在线观看| 高清无码一区二区三区| 国产毛片在线| 久热超碰| 久久蜜桃综合网| 78综合网| 97超碰色屌| 91成人在线| 91在线限制级| 国产精品久久久777| 青青草吊丝| 天堂麻豆天美| s片在线观看| 无码视频一区二区| 九九综合网| 97国产综合欧美| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 97视频7| 日本精品人妻少妇一区二区| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 又大又长又粗又爽又黄| 97自拍视频在线| 天天摸天天插天天日| 久久伊人在线五区| 老鸭窝日丰县女人| 丝袜亚洲综合| aaa一级黄片| 五月天综合网| 91高跟美女在线播放| 中亚黄色三级大片| 另类天堂| 午夜影美女日鸡鸡天天视频国产| 色色99| 97在线观视频免费观看| 超碰九7免费| 免费家庭乱伦视频| 欧美一区二区亚洲天堂| 久久国产精品91| 亚洲欧美精品久| 欧美色图欧美| 欧美精品一区二区少妇免费A片| 日韩av一级黄片| 天美传媒国产原创中文字幕亚洲欧美另类| 久久綜合很很很| 欧美色图自拍| 国产精品露脸在线观看| 99精品无码| 亚洲一本色码中文字幕| 操国产逼| 九九九九热只有精品| 丝袜足交视频| 新版天堂中文资源8在线| 天堂九九九九九九九九九| 日日夜夜模| 午夜在线播放| 五月天色色网站| 超碰97资源中文字幕| 国产天天噜一噜久久久| 性暴力欧美猛交在线直播| 欧美一区二区亚洲天堂| 伦理弟一页| 91人妻在线视频| 国产三级日产三级韩国三级| 97在线欧洲| 亚洲欧美天堂| 日本三级黄页| 色九九久九九| 97精品综合| 免费99精品国产自在在线| 欧美亚洲自拍另类人妻| 夜夜狼人妻| 91处女在线观看| 亚洲男人天堂Av| 欧美97av| 色色婷婷丁香| 91情色在线| 99视频自拍| 91无摭挡| 欧洲熟妇xxXx欧美老妇裸体| 99re视频在线播放青草| 97超碰国产精品| 啪啪自拍九九综合| www.一本大99| 亚洲视频1区| 都市激情人妻一区二区青青操视频 | 国产高清26uuu| 国产精品第二页| 一级做a爰片性色毛片久久| 欧美专区第一页| 亚洲人妻久久| 妇女视频网站| 亚州免费啪啪视频| 91AV国产精品| 一区二区三区四区姦女| 丰满岳乱妇一区二区三区| 超碰碰97| 国产精品无套内谢| 久久久精品,3| 精品少妇后入一区二区三区四区人妻巨乳| 麻豆美女丝袜人妻中文| 日本超碰97日韩精品人妻| 免费无码国产精品v片在线观看| 伊人久久大香线综合无码| 自拍偷拍第26| 锕锕好爽 死我在线观看| 久久精品国产亚洲AV片多多 | 激情终合网| 99久久精品欧美国产| 91九九九小逼| av天堂影视中文在字幕在线中文| 九九九九热| 91国产美女丝袜足交精品视频 | 亚洲色图 图片| 国产精品蜜乳AV| 97精品一区二区视频在线观看| 中文字幕一区av| 亚洲AV麻豆Aⅴ无码电影一| 在线黄色污污网站| 婷婷丁香五月激情啪啪| 亚洲精品国产专区在线观看| 强乱老妇中文字幕| 日本99一区二区| 人妻熟女av国产网站| 欧美碰碰综合色| 国产久久日韩网站导航| 久久久久九九九| 九色黄站| 爱丝福利| 欧美乱妇狂野欧美在线视频| 91无码中出人妻视频| 被窝影院午夜看片无码| 亚洲第一男人天堂| 少妇内射www在线观看视频| 大香蕉五月天婷婷| 在线无码网站| 99re9| 亚洲女人毛茸茸91| 人妻 制服 日韩 中文 在线| 国产刺激视频| 国产97视频免费观看| 人人妻人人爱人人玩| 乱久久久| 久久綜合很很很| 人妻少妇色综合| 在线欧美69V免费观看视频| 91精品91久久久中77777| 久久久熟妇熟女国产| 女人高潮大叫一级毛片| 人人射人人操人人摸| 精品国产三级av韩国在线| 97久操| 在线情色电影 91大| 丰满欧美少妇| 婷婷激情五月| 色色色999| blacked精品一区国产| 蜜乳AV免费观看| 78超碰| julia国产在线| 大香蕉日亚洲日本亚大 | 天天澡天天狠天天天做| 久久国产乱子伦精品免费女,网站| 亚洲成人妻日韩在线| 日本一区二区三区精品| 天天摸天天插天天日| 久久久婷| 91蜜臀在线久久久久| 欧美一级三级| 国产av高清版| 懂色综合久久久| 久久人妻丝袜一区二区三| 国产精品久久久三级无码| 久久久久久国产手机AV| 亚洲超碰AV| 欧美成人AⅤ大片在线观看| 乱伦a片视频| 亚洲国产欧美一区二区潘金莲 | 东北女人| 久久妇| 91热色| 伊人9| 免费亚洲黄色视频在线观看| 国产精品蜜臀久久久久无码AV| 18禁看网站一区| 伊人网青青| 伦激情人妻另类人妻| 欧美五十路熟| 极品尤物女神在线观看| 偷看洗澡一二三区美女| 黄页18禁| 伊人991| 蜜桃臀AV在线| 哈哈操电影| 2021国产成人精品久久| 久思思热视频在线观看| 竹菊影视国产一区二区| 久久麻豆一区二区| 中文字幕久久精视频久久大全| 色麻豆AV| 热热色中文无码| 国产9 9在线 | 亚洲| 国产精品熟女九色九色蜜臀| 99久在线精品99re8热| 丝袜美腿诱惑亚洲欧美视频在线观看 | 亚洲大色堂| 本道在线| 久久伊人最新网址视频| 美国aaaaa一级黄片| 婷婷五月天成人| 四季AV综合网址| 亚洲AV色图一区| 加勒比综合| 久久亚洲欧美中文字幕国语| 婷婷五月成人| 久久一本大香蕉 | www.yeyecao| 日韩欧美经典在线观看| 色婷婷在线视频精品导航| 久久原创中文| 正在播放国产精品一区| 日本免费中文一区二区三区四区 | 久操凹凸视频| AV天天综合| 黑人粗大V S日韩女优视频| av中亚| www.国产高潮精品| 亚洲精品国产av天美传媒| 欧美92| 乱伦图av| 亚洲AV无码久久精品蜜桃小说| 熟人人妻少妇精品久久| 中文字幕乱在线伦视频中文字幕乱码在线 | 婷婷综合久久| 精品国产乱码久久久久久日本公司| 无码人妻精品酒店| 综合色99| 91n.欧美| 亚洲精品啪视频| 自拍欧美| 99这里都是精品| 蜜桃丰满熟妇av无码区不卡| 操逼无码操逼| 天堂国产AV| 日韩国产精品人妻无码久久久| 亚洲精品三| 九七毛片九九毛片 | 色男人色天堂东京热| 欧美日韩大香蕉| 96久久科窝| 超碰人妻97| 久久久精品国产亚洲AV无码| 亚洲91大片| 亚洲国产ⅴ高清在线观看| 精品国产网站| 国产 日韩 欧美一区| 99国产人成精品| 人人妻人人澡人人爽久久av| 97精品综合久久| 亚洲色欧| 亚洲人精| 永久免费av无码网站国产app| 1956日韩精品| 日韩AV无码网站| 最新亚洲风情电影| 人人妻人人爽 97人人看碰人免费公开视频| 999日韩中文精品观看视频。| 超碰78| 99999久久久久9国产精品| 神马久久久久久久| 午夜成人福利影视| 岛国色情视频在线观看| 91 国产丝袜在线播放-百度| 国产a级午夜毛片| 久久九九97| 九九在线视频| 成人小说另类在线| 欧美影音在线| 在线国产探花| 97免费视频在线观看| 97干色天堂| 日本成人A片免费看| 97视频在线免费播放| 五月香婷婷| 91久久| 97精品久久久久中文字幕| 色欲日韩欧美在线一区| 黑人综合网| 蜜臀99999| 日韩成人大片在线观看| 久久精品人妻一区| 99热日| 农村妇女一级二级三级视频| 成人免费毛片| 久久国产精品m码| 欧美一二三区四五区| www.久久最新地址| 中文字幕99999| 欧美亚洲涩涩| 精品精品精品| 操逼操逼逼操操逼91| 天天摸天天操视频| 亚洲少妇激情视频| 禁片 高清 在线观看视频网站| 欧美片第一页| 亚州综| 91影视亚洲| 人人色97| 亚洲欧美激情在线视频| 男女日B国产| 99少妇| 9999亚洲精品| 久久色一区| 免费视频a级毛片免费视频| 富女玩鸭子一级毛片| 狠狠干2020| WWW4虎| 人妻精品视频一区二区| 成人av影院在线观看| 9丨久久九九九| 狠狠操狠狠燥| 97精品视频网站| 天天透伊人| 五月丁香| 婷婷天堂站| 色婷婷激一区二区三区 | 亚洲国产剧情少妇激情| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 亚洲女优有码无码高清| 九九九精品色乱九九九| 国产精品 午夜福利| 人妻AV 中文字幕的| 欧美久久人人网| 国产精品一区二区久久精品| 中文字幕欧美日韩三级| 青青草中文字幕| 午夜噜噜噜| 日本久久久精品电影| 欧美中文狠| 三级网站超变态精品| 久操B网| 欧美.亚洲.另类.丝袜.制服.诱惑| 欧美丰满熟妇XXXX性ppX人交| 国产一级操B视频| 国产精品 久久久精品一牛| 小说区 图片区色 综合区| 91少妇人妻| 人妻久久一区二区三区| 亚洲全色网| 青青草中文字幕| 精品人妻一区二区免费蜜桃视频| 中文久久久| 欧美超碰97| 91黑人狂躁丰满熟妇| 国产精品天堂| 女性喷水高潮在线观看| 久久亚洲中文字幕视频| 人人操我人人干| 精品中文字幕第一页| 草草影院日本第一页| 九九热在线精品视频| 亚洲天堂日本| 五月天婷婷小说| 欧亚乱色熟女一区二区| 欧美一区二区观看在线| 亚欧性爱在线无码| 丁香六月婷婷综合| 综合网,亚洲,欧美| 嗯嗯嗯啊啊啊操的我好爽| 九九久久国产精品| 福利大香蕉| 日韩99999| 欧美色就是色| 国产一级不卡在线观看| 欧美日韩第一页| 超碰超碰95| 18岁禁 茉莉成人久久| 日本五十路在线| 97精品视频在线播放| 好属操| 国产AAAAAABBBBB| 日韩精品黄片免费观看| 天天91~综合入口| 神马午夜久久久| 亚洲综合另类色图| 成人五月天丁香激情综合| 国产中文大片资源中文字幕| 日本国产成人亚洲精品无码| 中文字幕91综合| 久久久久久久9最新免费视频观看| 精品超碰色| 久久性爱视频99| 婷婷丁香五月激情啪啪| 麻豆性爱视频在线播放| 亚洲精品九九九九九九| Sekablack无码一区| 国产精品老师| 久久一二三四五六七八九区区| 久久超碰天天| 日本十八禁免费看污网站| 亚洲午夜AV| 日本新免费二区三区| 91丝袜| 欧日a| 色婷婷婷五月天激情四射| 久久久性少妇| 午夜啪啪片| 97欧美精品综合| 91热| 天天干天天狼在线视频| www.91欧美| 97在线视频观看| 色综合久久久久| 亚洲色图欧美色图制服诱惑| 日韩无码视频黄色| 欧美 亚洲 综合 制服| 日本 情色 1区2区3区| 日本1区2区不卡视频| 97电影院超碰| 上床啊啊啊| 国产免费久久久久| 亚洲在钱| 国产偷拍自拍在线视频| 97欧美日韩中文| 精品久久久久久无码| 九九热免费国产视频婷婷伊人| 青青草五月份天| 亚洲av影院在线观看| 免费网站观看www在线观| 91综合色噜噜| 久久发布国产伦子伦精品| 久草这里只有精品 | 久久性爱视频| 久草资源在线| 久久五月份| 热99re69精品8在线播放| 99精品在线观看| 精品少妇99| 激情综合五月| 亚洲欧美碰碰| 好吊色在线观看| av影片在线观看不卡| 97色伦欧美| 日本不卡二区| 一区中文字幕二区日韩| 精品丝袜无码一区二区三APP| 欧洲乱码视频| 欧美性爱日韩性爱| 天天干夜夜| 五月婷婷六月色| 91另类| 色狠人在线99| 99热99在线播放激情| 国产AB视频| 婷婷综合网站| 国产高清成人免费视频| 9超碰免费| 多毛小伙内射老太婆| 五十路人妻在线| 丁香五月久久| 久久久久亚洲Av无码专区老牛影视| 亚洲熟女乱色| 综合免费无码中文| 亚洲一区二区中文字幕| 99精品丰满人妻无| 性爱Av免费| 婷婷丁香人妻| 欧美黄色图片| 日本一区二区做爱的视频| 欧美同性恋 的搜索结果 - 91n| 亚洲第一页色| 高清成年美女黄网站免费大全| 国内外毛片在线观看| 老女人爆菊| 久久精品国产亚洲AV无码做| 97视频在线观看免费高清| 亚洲天堂另类美腿| 日操粉逼逼| 97色97干| AV天黑人| 亚洲色性情三级| 国产亚洲综合欧美一区| 99精品国产户外露出| 狠狠爱AV| 性色乱AV一区二区| 熟女突然公开看18禁影片| 成年无码动漫av片无尽在线| 91无码人妻| 久久熟女人| 国产 三级自拍| 超碰免费人妻人人| 精品一区二区三区蜜桃| www.男人天堂| 综合网~91综合网| 日本久久网| 国产操操日韩三级黄| 青青色在线观看| 91天天综合在线观看| 加勒比AV网| 殴美性色a级欧美| 国产伦乱91| 精品人妻中文字幕4399| 亚洲天堂男人网| 天美av在线| 99国内熟女露脸视频| 欧美综合加勒比在线| 五月丁香影视| 日韩黄色成人性爱| 欧美日韩 强奸乱伦| 丁香婷婷五月| 欧美一二三| AV中文字幕三四五| 91老熟女91老女人| 午夜无码熟妇丰满人妻| av亚洲天堂资源网站| 欧美男女午夜啪啪| 亚洲精品男人的天堂| 亚洲综合一区二区| 精品亚洲国产成人av网站| 国产精品白丝在线播放| 日韩综合无码一区久久92| 麻豆av一区二区| 国产日韩美女小穴视频网站不卡| 91欧美综合在线| 乱欲性色| 加勒比伊人影院| 色娱乐色呦呦夜夜夜夜av| 综合激情97| 99爱久久视频频| 久久的网站啊啊啊啊啊| 成人日本精品九区| 熟女色图在线| 黑丝日韩av丝袜av| 最新精品久久蜜桃 | 国产精品在线网站| 亚洲宗合网| 亚洲中文字幕一区| 草B在线| 国产精品在线免费| 久久国产乱子伦精品免费女,网站| 男人的天堂com| 亚洲欧美在线丝袜| 欧美性爱一区二区 | 艳尻美人妻| 久久99精品九九久久久婷婷| SUV一区二区在线看| 色爽——AV| 亚洲第一页综合在线| 91情色在线| 熟妇乱伦一区二区| 999精品国产高清一区二区| 日本免费中文字幕在线| 久久国内| 婷婷五月天小说| 91丝袜在线观看视频在线观看| 伊人成人情色综合| 亚洲综合一| 91美女视频直播| 97这里只有精品| 在线综合 亚洲 欧美中文字幕| 在线观看岛国有码| 性一交一乱一交A片久久四色| 日韩人妻大香蕉| 大香蕉国产中文自拍| 97jingpin| 日本综合色图| 乱伦av国产| 开心五月深爱五月| 久热精品色情| 91老妇女| 天天日天天干天天色| ?亚洲伊人伊成久久人综合网| 裸体美女免费看网站青草| 9 7超碰在线免费观看| 欧美专区17页| 澳门黄片一香蕉视频| 亚洲一区二区三区AV无码| 亚洲色图久久成人| 后入式视频国产自| 久久久久97| 欧美成人一区二区三区在线播放| 婷婷情色综合网| 亚洲AV色图一区| 国产一级舔足在线观看| 欧美一级做a爰片免费视频| 欧美有码亚洲中文字幕一区二区三区四区| 午夜毛片高清免费不卡| 91国模| 国产色呦呦| 精品国产99| 蜜臀久久99精品久久久久久酒店| 熟妇的味道HD中文字幕| 久久极品一区二区| 曰本道人妻久久久在线不卡色视频| 国产一国产一级毛片古装| 色欲日韩欧美在线一区| 330Dv国产女人终合视频极品人与兽 | 久久精品国产亚洲AV高清演员表 | 国产白丝av| 亚洲国产欧美中文永久| 亚洲中文字幕日产无码久久| 女生久久网| 久久精品色欧美aⅴ一区二区| 男人的天堂.com| 麻豆视频一区二区| 日韩精品亚洲专区在线影视| 精品国产一区二区三区久久久蜜臀| 97国产|免费| 92午夜免费福利视频| 色情亚洲日本成人| 大学生美女口爆| 国产超碰在线| 午夜操操操| 温婉少妇玩3p| 9长久久精品| 奇米四色网| 91精品人妻一区二区三区蜜桃臀| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 亚洲淫乱骚妇AV| 国产精品爆乳懂色蜜乳| 人妻激情另类| 69一区二区三区 | 丰满少妇一区二区三区免费看| 人人做人人妻人人夜视频| 欧美色图人妻| 日本性爱不卡视频| 欧美日韩人妻少妇 一区二区三区| 天天谢天天干| 天天日天天操VV| 中国一级操逼视频| 亚洲欧美在线综合| 你想操日本小逼吗| 加勒比性爱成人在线| 亚洲最大的综合性av| 9ⅰ久久久天天| 一区二区三区精品视频| 久9久9久9久9久9久9| 精品人人插人人操| 91女色| 一区二区三区在线资源| 精品视频在线观看| 操逼内射干逼白丝91| 草草影院最新网址| 欧美青青草视频| 亚洲精品美女久久久久久久久| 97 国产精品| 欧美日韩成人| 秋霞怕怕片| 丁香婷婷激情五月天无毒不卡 | 国产超碰国产97| 国产精品不卡一区二区三区av| 欧美亚综合色图| 国产男女边吃边摸视频网站| 综合视频91| 九九色婷婷| 成人线上超碰| 久9久9精品| 九九无码视频| 欧美超碰97| 欧美精品偷拍| 无码日韩网站| 秋霞Av理论一级在线| 中文字幕97色| 亚洲av强奸乱伦| 午夜国产成人精品视频| 亚洲图片 激情小说| 爱我干综合| 精品人妻免费观看| 淫穴高潮色图| 99久久无色码| 秋霞曰韩R级| 日韩兔费看黄片| 日韩中文字幕宗合在线| 加勒比大香蕉视频在线| 国产精品露脸在线观看| 偷窥自拍亚洲| 亚洲欧洲色情高清| 五月婷婷综合激情| 午夜AV人气不卡| 欧成人精品一区二区三区| 色欲人妻一区二区在线| 第一高清av中文字幕| 探花视频免费观看国产专区| 亚洲青青草| 91美女视屏| 岛国片在线观看视频亚洲| 日韩熟女无码| 久久9免费视频| 久久久久久久久九九久孕交| 99热最新| 三级色综合| 中文操逼字幕| 亚欧美综合网| 欧洲自拍色图gif在线| 日本免费不卡二区| 免费视频a级毛片免费视频| 亚洲熟伦熟妇AV无码春色| 欧美桃色网| 亚洲色资源| 久久久亚洲精品电影免费看| 996热| 亚洲 一区二区 自拍| 自拍偷拍草一草| 四方色播| 加勒比aⅴ| 少妇激情AV| 人妻黑丝袜电影| 欧美亚洲AN| 欧洲射精91| 亚洲情色91| 可以免费观看的AV| 日韩丝袜二区| 亚洲中文国际强奸字幕| 性色av大全| 日韩强奸av| 亚洲中文字幕在现观看| 欧美天天综合网| 香蕉视频精品亚洲一区二区三区在线播| 2003天天干夜夜操| 97亚洲国产| 伦理日韩国产久久| 中出后入| 免费国产| 超碰 欧美| 9 1果冻精品视频| 成人区人妻精品一| 亚洲深夜福利| 99999国产精品| 97免费视频在线| 夜夜嗨视频| 中文一区二区三区影院| 亚洲欧美成人网站AAA| 久久久久九九九九| 免费a v| 极品欧美一区二区三区| A片大香蕉在线| 中文字幕一区二区三区四区在线视频| 日本黄色精品专区网站| 国产女同视频在线播放| 久久久久久亚洲中文| 欧美日韩性爱无码| 日本精品第一视频在'| 五月婷婷六月丁香| 91色艳| 九九成人精品| 天天综合网~91综合网| 国产精品粉嫩福利在线| 欧中美三级一区二区三区| 亚州性9| 乱抡国产91| 人人操人人摸人人看人人干| 日本肏逼视频在线观看| 人妻少妇一区二区| 欧美丝袜激情| 啊啊啊啊啊啊啊网址在线观看| 亚洲做性| 女沟厕偷窥piss小便| 日韩在线一区高清在线| 久久精品色欧美aⅴ一区二区| 日韩高潮一区| 97精品视频免费| 欧洲站一级二级三级h| 久久久久99999| 国产精品久久久久久久久久梁医生| 免费αⅴ在线观看| 婷婷大香蕉| 超碰人妻久久人妻中文97| 九七毛片九九毛片 | 欧美大香蕉97| 亚洲色天堂九9| 99久久国产精品免费高潮| 久久美女国产| oumeisetu综合| 麻豆精品三区视频| 伊人操| hd成人一区二区在线| 精品久久久av| 日日爽熟女| 久艾草在线精品视频在线观看| 久久婷婷综合国际产色怕| 清清一区二区三区四区不卡视频| 欧美玖玖爱免费玖玖| 大香蕉一级黄色片久久| 手机看片1024你懂的国产| 东北黄色电影| 久久精品成人| 探花一区二区三| 天天综合91在线| 精品一区99999| 日韩免费在线观看不卡| 超碰av在线| 色香伊人| 日韩AV无码网站| 国产精品色| 九热超碰| 嗯啊视频免费在线观看| 91neishe| 国产白丝网站| 国产精品宅男免费| 东京热一区二区三区四区五区六区| yazhououmeizongya| 狠狠操夜夜| 裸模AV女优| 欧美97| 五月综合久久| 好湿好紧视频| 破苞ⅩXXX性无码动漫无码| 97色色国产视频| 国产午夜精品理论片一二三区区| 色九月婷婷| 国产中文字幕在线观看| 操逼操逼逼操操逼91| 诱惑人妻欧美一区在线播放| 国产精品白丝| 日韩AV一区二区三区四四| 久久久999国产| 国产成人精品日本亚洲语言| 天天草AV| 国语国产操逼伊人AV网| 国产美女口爆吞精| 日韩操p| 少妇三P| 7777奇米影视久久| 九九九九日本 | 国产精品交换一区二区| 乱人乱色一区二区三区免费| 日韩性爱网址| 亚洲女优有码无码高清| 熟女突然公开看18禁影片| 999熟女精品| 国产综合操逼高清| 久久婷婷苹果| 六月丁香啪啪| 激情欧美97| 久久日韩毛| 国产免费黄色一级大片| 亚洲国产剧情少妇激情| 成年人网站在线免费观看| 中文字幕丝袜人妻| 成人av福利在线观看| 91熟女综合| 91快色色色色色| 丰满熟妇大乳做爰| 丁香六月婷婷| 午夜精品久久久| 欧美综合色站| 久久久久亚洲?V片无码V| 国产精品高朝久久久久久久| 亚洲图片欧美在线视频| 欧美+日产+中文| 国产久久视频| 欧美黑人精品在线播放| 曰本道人妻久久久在线不卡色视频| 亚欧国产无码精品在线| 自拍六区| 97这里都是精品| 婷婷午夜成人色中色| 大香交| 啊啊啊啊啊啊啊国| 成人日韩3| 亚洲资源吧| 日韩精品高清资源在线| 日逼视频日本| 天天夜夜rb| 亚洲AV高潮| 亚欧Av| 2021国产成人精品久久| 伊人操操| 九九热精品| 无码一区二区精品视频久久久春药| 亚洲综合校园春色| 超碰97起碰| 欧美日本中字另类在线| 久久久久久十| 久久婷婷亚洲欧| 日本三级大片| 18禁中文字幕| 超碰地址久久| 国产99999久久精品| 97资源制服丝袜| 日本操逼视频导航| 91 欧美| 少妇蹲下买菜露大唇0| 高清不卡一二三区视频......| japan日本高清乱xxxx| 东京热天堂网| 少妇久久久免费| 精品久久久久黄少妇| 五月香婷婷| 手机在线播放国产福利| 久久激情婷婷| 亚洲乱熟女一区二区| 啊啊啊啊二区好大| 嗯嗯啊中文字幕| 日亚韩精品视频二区三| 国模私拍一区二区三区神乳| 国产搭汕a级片| 色老久久| 亚洲熟女乱熟乱熟妇综合网二区| 色色色综合| 日本一级性爱| www.91理论| 国产辣妈在线视频福利| 日韩大香蕉AV影片| 欧美九一精品久久久熟妇| 青青草十区九区爱夜| 天堂蜜桃无码视频一区二区| 人人摸人人叼| 国产精品久久久久久无码红治院| 亚洲国产精品久久AV| 欧美综合1性辶| 后入福利| 日本三级韩国三级美三级91| 在线97在线| 超碰 另类 欧美| 久草综合京东| 欧美黑人猛交春色影视大全| 婷婷综合网站| 亚洲精品国产精品乱码不99| 欧美一区二区三区蜜桃| 国产操逼视频在线观看| 91色人妻| 国产精品一区二区手机看片| 欧美亚洲图片| 久久久一区二区三区四区五区| 熟妇人妻一二三区免费| 啊啊啊啊啊舒服| 热久久无毒不卡| 天天干1区2区在线| 人妻 欧美亚洲| 插B在线观看| 日本ZZ高免费A级视频| 欧美九一精品久久久熟妇| 亚洲麻豆18发?| 91美女国产在线| 久久久免费视频18| 日韩BBN| 久久9精品| 91综合中文字幕| 神马久久久久久久| 国产精品人妻无码久久久互動交流 | 影音先锋每日最新资源在线观看| 亚乱色| 天天内射| 欧美天天综合站| 视频在线中文字幕| 激情视频图片| 久久精品电影在线| 电家庭影院午夜69久久夜色精品国产69乱| 亚洲天堂男人天堂| a亚洲欧美色欲| 在线播放免费av福利片|