免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

純Java實現(xiàn)Agent Harness:企業(yè)級AI應(yīng)用的生產(chǎn)落地與架構(gòu)取舍

純Java實現(xiàn)Agent Harness:企業(yè)級AI應(yīng)用的生產(chǎn)落地與架構(gòu)取舍 半年前我們團(tuán)隊接了一個內(nèi)部運(yùn)營助手的活要在私有化環(huán)境里跑一批 AI Agent 處理工單分類、合同信息抽取和業(yè)務(wù)數(shù)據(jù)問答。最開始我用 Python 生態(tài)把 Agent 骨架搭了出來三個晚上就能對話了同事都說效果不錯??烧嬲郎?zhǔn)備上生產(chǎn)的時候問題一個接一個冒出來模型調(diào)用怎么和現(xiàn)有權(quán)限體系打通多個 Agent 的會話怎么隔離工具調(diào)用怎么審計日志里怎么追蹤一次完整的多步推理Python 那邊的小樣完全答不上來。于是我們轉(zhuǎn)回去用純 Java 重新實現(xiàn)做了個內(nèi)部代號叫 BizBuddy 的 Agent Harness 平臺。這篇文章想把這個過程中的設(shè)計取舍講清楚哪些地方我堅持了 Java 的路子哪些地方故意沒有照搬社區(qū)框架哪些決定是拿生產(chǎn)事故換來的。1. 起因小樣用 Python 三天跑通上生產(chǎn)的時候全卡住了1.1 我們最初想要的東西其實需求本身并不玄乎。一個內(nèi)部助手用戶在對話框里提問題Agent 自己判斷要不要調(diào)用我們已有的業(yè)務(wù)接口再把結(jié)果組織成自然語言回復(fù)回來。這里有對外的客服工單分類、有合同文本的字段抽取、也有針對業(yè)務(wù)數(shù)據(jù)的多輪問答。難點從來不是模型會不會回答而是這些問題在企業(yè)環(huán)境里要過安全評審、要接統(tǒng)一登錄、要扣費(fèi)審計、要能灰度發(fā)布。1.2 小樣的快恰好就是它上不了生產(chǎn)的理由Python 小樣確實快因為生態(tài)里現(xiàn)成的東西多。但當(dāng)你認(rèn)真問生產(chǎn)環(huán)境的問題就會發(fā)現(xiàn)全是坑第一是環(huán)境碎片化。模型推理主要走遠(yuǎn)端 API本地不需要太重的東西但 Python 的依賴管理和虛擬環(huán)境在公司安全策略下還是被反復(fù)盤問。私有化部署到客戶現(xiàn)場的時候更是頭疼客戶環(huán)境里能不能裝包、能不能聯(lián)網(wǎng)、用哪個 Python 版本都得協(xié)商。第二是并發(fā)和穩(wěn)定性。一個 Python 進(jìn)程的并發(fā)能力有限對于幾十個用戶同時提問這種再普通不過的場景需要額外上異步框架而團(tuán)隊里沒人愿意長期維護(hù)第二套技術(shù)棧。第三是治理和集成。業(yè)務(wù)系統(tǒng)是 Java 技術(shù)棧用戶權(quán)限、組織架構(gòu)、數(shù)據(jù)庫訪問、消息隊列、統(tǒng)一配置中心全都長在 Java 這邊。Python Agent 想調(diào)用這些能力要么開 HTTP 接口硬橋接要么在 Python 里再連一遍那些中間件。兩條路都意味著雙倍的運(yùn)維面和雙倍的審計面。那段小樣最終沒有被浪費(fèi)它證明了用 Agent 處理這些業(yè)務(wù)可行。但架構(gòu)上的賬算得很清楚用 Java 實現(xiàn)同樣的東西可能要多花兩三周但之后它會和現(xiàn)有系統(tǒng)長在一起而不是在旁邊另起爐灶。1.3 用純 Java 做不是情懷是賬算得過來我需要澄清一下純 Java的邊界。BizBuddy 不是一個機(jī)器學(xué)習(xí)訓(xùn)練平臺不需要跑模型也不碰向量檢索算法的內(nèi)部實現(xiàn)。它是一個偏運(yùn)行引擎和治理底座的東西主要負(fù)責(zé) Agent 的生命周期、上下文、工具調(diào)用、流程編排、模型接入抽象、限流監(jiān)控。這些活兒 JVM 生態(tài)天生就擅長而且我們有一整支熟悉 Spring、理解并發(fā)編程、會調(diào) JVM 參數(shù)的技術(shù)團(tuán)隊。同樣重要的是Java 生態(tài)里對企業(yè)級集成的沉淀非常深。安全框架、緩存抽象、連接池、事務(wù)管理、配置中心都已經(jīng)有成熟方案BizBuddy 要做的不是重造這些輪子而是把它們和 Agent 的運(yùn)行時協(xié)議銜接起來。1.4 什么是 Agent Harness現(xiàn)在Agent 框架滿天飛但 Harness 和框架是兩種位置的東西??蚣芙鉀Q的是Agent 怎么寫比如怎么解析模型輸出、怎么構(gòu)造 Prompt、怎么調(diào)用工具它更像造船廠。Harness 解決的是Agent 怎么跑比如一個 Agent 從部署到下線誰在管、多個會話之間怎么隔離、失敗了誰來重試、調(diào)用一次模型的成本記到哪個項目頭上它更像船運(yùn)公司。BizBuddy 的定位更偏 Harness。在它之上有業(yè)務(wù)團(tuán)隊寫的具體 Agent在它之下是各種基礎(chǔ)設(shè)施。它必須足夠薄才能不綁架業(yè)務(wù)方的開發(fā)方式又必須足夠強(qiáng)才能讓 Agent 在真實生產(chǎn)環(huán)境里不出亂子。2. 核心抽象Agent 是一個業(yè)務(wù)單元不是一個模型調(diào)用殼2.1 為什么我把 Agent 接口做得這么簡單最開始設(shè)計 BizBuddy 的 Agent 抽象時團(tuán)隊里有人建議照搬社區(qū)框架的路子把 Agent 做成一個大而全的類里面直接塞模型、記憶、工具、規(guī)劃器。我堅持沒有這么做因為這個層一旦變重所有 Agent 實現(xiàn)都要被框架牽著走。BizBuddy 的 Agent 接口收縮到只有四個方法public interface Agent { String name(); void initialize(AgentRuntime runtime); AgentReply invoke(AgentRequest request, AgentSession session); void destroy(); }我們不定義該不該反思該用哪種 Prompt 策略該選哪個模型這些屬于具體 Agent 的個性??蚣苤灰s定你有一個名字啟動時我給你運(yùn)行時能力請求來了我拿會話和請求調(diào)你服務(wù)下線我通知你做清理。這樣業(yè)務(wù)團(tuán)隊寫 Agent 時可以自由組合工具調(diào)用、模型調(diào)用和本地邏輯而 Harness 統(tǒng)一拿到生命周期與執(zhí)行入口。AgentRuntime 是 BizBuddy 給 Agent 的能力清單里面包括工具注冊表、模型 Provider、審批接口、指標(biāo)收集器等。每個 Agent 在 initialize 階段拿到的 runtime 是同一個但可以聲明自己需要哪些子集這樣測試時也能注入 mock。2.2 Session 持有狀態(tài)Agent 本身保持無狀態(tài)這是整個設(shè)計里我最看重的一個取舍Agent 實例禁止持有用戶級狀態(tài)。曾經(jīng)有同事圖省事把用戶對話歷史直接放在 Agent 的成員變量里。開發(fā)時什么問題都沒有一上聯(lián)調(diào)就出亂子A 用戶的問題被 B 用戶的上下文干擾工單查詢結(jié)果串號。排查了好幾個小時最后發(fā)現(xiàn)是 Agent 被注冊成了單例所有并發(fā)請求共享了同一個成員變量。BizBuddy 里所有狀態(tài)都放在 AgentSession 中public final class AgentSession implements AutoCloseable { private final String sessionId; private final String tenantId; private final String agentName; private final MapString, Object variables new ConcurrentHashMap(); private final ChatWindow chatWindow; public void setVariable(String key, Object value) { ... } public Object getVariable(String key) { ... } public void appendMessage(ChatMessage message) { ... } public ListChatMessage visibleMessages() { ... } Override public void close() { ... } }sessionId 是全局唯一標(biāo)識tenantId 保證一個租戶的會話不會串到另一個租戶。ChatWindow 是帶預(yù)算的對話窗口負(fù)責(zé)控制發(fā)往模型的 token 量這個放到后面講。所有 Agent 實現(xiàn)都被要求寫成無狀態(tài)本次請求需要什么就通過參數(shù)從 session 里拿。這個約束讓 BizBuddy 可以一個 Agent 實例服務(wù)幾千個并發(fā)會話也讓壓測和生產(chǎn)環(huán)境的偶發(fā)問題變得好查。2.3 和 Spring 容器怎么協(xié)作BizBuddy 沒有另搞一套依賴注入。Agent 本身就是普通的 Spring 組件通過注解注冊Agent(name order_query_agent) public class OrderQueryAgent implements Agent { ... }應(yīng)用啟動時BizBuddy 的 Starter 組件掃描所有帶 Agent 的類檢查接口方法實現(xiàn)然后以單例方式注冊到 AgentRegistry。Agent 內(nèi)部想調(diào)什么業(yè)務(wù)服務(wù)直接使用平常的構(gòu)造器注入或字段注入不需要自定義擴(kuò)展機(jī)制。這樣做的好處是業(yè)務(wù)方寫 Agent 和寫普通 Spring 服務(wù)幾乎沒有區(qū)別。他們不需要理解框架如何接管對象生命周期之類的東西只需要按常規(guī)方式寫代碼BizBuddy 在邊界上把 Agent 的運(yùn)行協(xié)議接住。3. 工具調(diào)用鏈路的設(shè)計取舍注解式 Tool 才是 Java 的答案3.1 為什么不直接暴露 JSON Schema做 Function Calling 相關(guān)的 Agent第一步通常是定義模型可以調(diào)用的工具。很多框架推薦直接給 JSON Schema讓 Agent 決定調(diào)用哪個函數(shù)。我在 BizBuddy 里沒有采用手寫 schema的方案原因很實際字段一變schema 和人寫的代碼就會漂移類型一復(fù)雜手工維護(hù)成本直線上升更重要的是Java 是個強(qiáng)類型語言手寫字符串讓編譯期完全幫不上忙。BizBuddy 的做法是用注解定義工具編譯期和 IDE 都能參與到檢查中Tool(name query_order, description 按條件查詢訂單列表返回訂單ID、金額和狀態(tài)) public OrderQueryResult queryOrder( ToolParam(name customerId, description 客戶ID) String customerId, ToolParam(name startDate, description 開始日期格式 yyyy-MM-dd) LocalDate startDate, ToolParam(name status, description 訂單狀態(tài)) OrderStatus status) { return orderQueryService.query(customerId, startDate, status); }這里有幾個隱性好處。參數(shù)類型是真的對象類型LocalDate、枚舉、業(yè)務(wù)對象都能被正確序列化與校驗方法是現(xiàn)成的 Spring Bean 方法可以直接用注解掃描與反射機(jī)制接管不需要額外包一層適配器。3.2 一個 Tool 從注冊到執(zhí)行的完整路徑BizBuddy 的 Tool 不是普通方法它有完整的元數(shù)據(jù)、攔截器和調(diào)用器。注冊階段Starter 通過 BeanPostProcessor 收集所有標(biāo)注了 Tool 的公共方法解析入?yún)⒑兔枋龃虬?ToolDefinition注冊到 ToolRegistry。調(diào)用階段完整鏈路如下LLM 在響應(yīng)里返回一個 toolCall包含 toolName 和 JSON 字符串參數(shù)。BizBuddy 的 ToolInvoker 從 registry 拿到 ToolDefinition反序列化參數(shù)到方法簽名要求的類型。參數(shù)經(jīng)過一層 ThrottleAndBudget 檢查確認(rèn)這個租戶、這個 Agent 還有調(diào)用額度。權(quán)限攔截器校驗當(dāng)前用戶是否有權(quán)執(zhí)行該工具。這一步不能省后面會講為什么。真正的方法通過 MethodHandle 調(diào)用整個調(diào)用包裹在帶超時時間的任務(wù)里。返回值轉(zhuǎn)成一個 ToolResultMessage追加到 session 的對話窗口再送回給模型。這里有一個很容易踩的坑模型返回的參數(shù) JSON 不一定符合方法簽名。比如日期格式寫成了別的樣子或者枚舉值拼錯。BizBuddy 在反序列化階段統(tǒng)一做了一次容錯處理日期格式盡量多認(rèn)幾種枚舉按 name 和別名雙匹配實在解析不了就返回一個明確的解析錯誤給模型讓模型自己修正參數(shù)再調(diào)用一次。實測下來這種把錯誤反饋給模型的策略比直接給用戶報錯效果好得多。3.3 權(quán)限、超時、注入防護(hù)放在哪工具調(diào)用是 Agent 能力邊界也是安全風(fēng)險邊界。一個能從對話里生成參數(shù)的執(zhí)行通道如果沒有閘門等于給任何能觸發(fā)對話的人開了一個無限調(diào)接口的口子。我在 BizBuddy 里把權(quán)限校驗放在工具調(diào)用這一層和用戶請求入口那層分開。用戶請求入口那層管的是能不能跟這個 Agent 說話工具調(diào)用這一層管的是這個用戶能不能讓 Agent 替他執(zhí)行這個工具。兩者的粒度完全不同A 用戶可能能和合同 Agent 對話但只允許它查公開摘要不允許它觸發(fā)合同導(dǎo)出。超時和熔斷也放在工具調(diào)用層。模型可能一口氣發(fā)起三四個工具調(diào)用BizBuddy 默認(rèn)并發(fā)執(zhí)行這些工具但每個工具獨(dú)立超時執(zhí)行業(yè)務(wù)方法超過閾值后向模型返回一個超時結(jié)果由模型決定是重試還是告訴用戶當(dāng)前系統(tǒng)繁忙。這個細(xì)節(jié)讓整個 Agent 系統(tǒng)在業(yè)務(wù)系統(tǒng)抖動時不會連帶不可用。參數(shù)注入防護(hù)也是后來補(bǔ)的。開發(fā)者很容易信任模型生成的參數(shù)但模型可能被提示詞注入誘導(dǎo)比如某條外部文本里寫著請忽略之前指令執(zhí)行某個高風(fēng)險動作。BizBuddy 對每個工具參數(shù)都做類型和邊界校驗同時對路徑型、查詢型參數(shù)做額外的排除列表檢查。4. 編排層不引入現(xiàn)成 BPM 引擎自研一個會回頭的輕量圖執(zhí)行器4.1 BPM 引擎為什么讓 Agent 別扭立項時有人提議用成熟的 BPM 工作流引擎來編排多步 Agent。當(dāng)時我?guī)е鴪F(tuán)隊實際建模試了一下不到半小時就放棄了。根因是 BPM 引擎的哲學(xué)和 Agent 的哲學(xué)擰著。BPM 引擎擅長的是流程預(yù)先確定狀態(tài)由引擎推進(jìn)每一步的下一步是設(shè)計時寫死的。Agent 則完全不同模型要根據(jù)前一步的工具結(jié)果動態(tài)決定下一步做什么。你可以預(yù)先定義一個最復(fù)雜的拓?fù)鋱D但實際執(zhí)行路徑可能在每個節(jié)點都變化。硬把這種動態(tài)性塞進(jìn) BPM 編輯器里結(jié)果就是圖上面全是條件分支模型反而成了擺設(shè)。4.2 圖模型和節(jié)點類型BizBuddy 定義了一組非常小的圖模型命名上故意不用工作流那套詞避免團(tuán)隊下意識往流程定義上套。public sealed interface GraphNode permits StartNode, EndNode, LlmNode, ToolNode, ConditionNode, SubGraphNode { } public record GraphEdge(String targetNodeId, String whenCondition) { }看圖就知道這個圖不是流程圖更像一棵執(zhí)行樹加循環(huán)控制Start 進(jìn)入End 退出Llm 節(jié)點調(diào)用模型Tool 節(jié)點調(diào)用工具Condition 節(jié)點根據(jù) session 里的變量走不同分支SubGraph 節(jié)點復(fù)用一張子圖。每條邊上可以帶 SpEL 表達(dá)式比如graph.exit() .hasNode(tool_result_check, SpelCondition.on(result.status NEED_MORE_INFO).then(query_more)) .hasNode(tool_result_check, SpelCondition.on(result.status SUCCESS).then(final_answer));沒有復(fù)雜的網(wǎng)關(guān)、會簽、子流程約定只有節(jié)點和邊。團(tuán)隊學(xué)習(xí)成本很低而表達(dá)力對大部分 Agent 場景已經(jīng)夠了。4.3 執(zhí)行器的遞歸式實現(xiàn)與防呆執(zhí)行器用顯式棧模擬遞歸避免深調(diào)用把棧打爆public GraphExecutionResult execute(AgentGraph graph, AgentSession session, String entryNodeId) { DequeNodeFrame stack new ArrayDeque(); stack.push(new NodeFrame(entryNodeId, Map.of())); while (!stack.isEmpty()) { NodeFrame frame stack.pop(); GraphNode node graph.node(frame.nodeId()); NodeResult nodeResult node.run(session, frame.input()); for (GraphEdge edge : graph.outEdges(frame.nodeId())) { if (edge.whenCondition() null || evalCondition(edge.whenCondition(), session, nodeResult)) { stack.push(new NodeFrame(edge.targetNodeId(), nodeResult.output())); } } if (stack.size() maxDepth) { throw new GraphExecutionException(graph exceeds max depth maxDepth); } } return new GraphExecutionResult(session); }這個執(zhí)行器實現(xiàn)了最關(guān)鍵的一個能力回頭。Llm 節(jié)點輸出工具調(diào)用請求后執(zhí)行器可以先把控制權(quán)交給 Tool 節(jié)點Tool 的返回結(jié)果再作為下一次 Llm 節(jié)點的輸入。這在圖里不需要畫圈只需要讓 Llm 節(jié)點在存在 toolCall 請求時把后繼邊同時指向工具節(jié)點和自己即可。防呆方面我加了三個硬性上限最大執(zhí)行深度、最大循環(huán)次數(shù)、整體超時時間。任意一個觸發(fā)都以失敗狀態(tài)結(jié)束并且返回足夠明確的錯誤信息。因為 Agent 模式的失敗率本來就高于普通接口開發(fā)環(huán)境里跑 5 次可能沒事到生產(chǎn)模型換版本后就可能出現(xiàn)死循環(huán)。4.4 多 Agent 協(xié)作我只先做了 Supervisor 和 Pipeline 兩種多 Agent 協(xié)作聽起來很酷但我沒打算做一整套完整的 Agent 市場、辯論、群體共識機(jī)制。BizBuddy 第一版只支持兩種模式Supervisor 模式一個協(xié)調(diào) Agent 根據(jù)用戶描述選擇可用的子 Agent把子 Agent 的執(zhí)行結(jié)果再組織成最終答復(fù)。Pipeline 模式請求按固定順序經(jīng)過多個 Agent上一個 Agent 的輸出作為下一個 Agent 的輸入。適合先分類再處理這類穩(wěn)定鏈路。這兩種模式覆蓋了我們目前遇到的絕大多數(shù)業(yè)務(wù)場景而且實現(xiàn)都很簡單就是圖執(zhí)行器上的特定排列。刻意不加更多模式是因為多 Agent 的調(diào)試成本是單 Agent 的好幾倍絕大多數(shù)項目根本用不到那些花哨能力先把基礎(chǔ)路徑做穩(wěn)比什么都強(qiáng)。5. LLM Provider 抽象能做 80% 的統(tǒng)一剩下的 20% 留給能力協(xié)商5.1 內(nèi)部消息協(xié)議與適配器BizBuddy 面向業(yè)務(wù)開發(fā)者的 API 里不應(yīng)該出現(xiàn)任何具體廠商的類型。所以第一步是定義一套內(nèi)部消息協(xié)議public record ChatMessage(ChatRole role, String content, ListToolCall toolCalls, String toolCallId) { } public record ChatRequest(ListChatMessage messages, ChatOptions options, String agentName) { } public record ChatResult(ChatMessage message, Usage usage, ChatProvider provider) { }然后每個廠商一個適配器負(fù)責(zé)把內(nèi)部協(xié)議翻譯成廠商 SDK 的請求、再把廠商響應(yīng)翻譯回內(nèi)部協(xié)議。這樣業(yè)務(wù) Agent 永遠(yuǎn)不需要 import 某個具體模型服務(wù)商的包后續(xù)切換模型時改的只是配置和適配器而不是具體 Agent 代碼。5.2 流式輸出落地從 Stream 到 SSE對話體驗需要流式輸出模型一個 Token 一個 Token 地蹦出來用戶不會盯著轉(zhuǎn)圈等二十秒。BizBuddy 在 Provider 接口里定義public interface ChatProvider { ChatResult complete(ChatRequest request, AgentSession session); StreamChatDelta stream(ChatRequest request, AgentSession session); }流式實現(xiàn)的第一個版本我直接用響應(yīng)式流一路鋪到前端結(jié)果發(fā)現(xiàn)團(tuán)隊里大量成員對背壓、異步上下文傳遞不熟悉容易寫出難維護(hù)的代碼。后來換了一種更工程化的做法內(nèi)部用阻塞隊列收集供應(yīng)商的回調(diào)事件對外以 Java 21 的虛擬線程逐個消費(fèi)再橋接成 SSE 推給瀏覽器。這樣流式處理的代碼寫起來像同步循環(huán)心智負(fù)擔(dān)低線上也穩(wěn)定很多。5.3 不硬抹平廠商差異早期我們想把所有廠商的能力對齊成一個超集結(jié)果代碼里到處是如果支持這個特性則……的條件分支反而難維護(hù)。后來我把抽象目標(biāo)下調(diào)到 80%只統(tǒng)一那些 Agent 邏輯真正依賴的基礎(chǔ)能力對話補(bǔ)全、流式、工具調(diào)用、token 用量統(tǒng)計。剩下的差異比如工具調(diào)用格式的細(xì)節(jié)偏好、JSON 輸出模式的支持程度、某些模型特有的參數(shù)通過能力協(xié)商來處理public record ProviderCapabilities( boolean supportsToolCall, boolean supportsJsonMode, boolean supportsVision, int maxOutputTokens ) { }請求構(gòu)造器先看 capability能支持再做對應(yīng)處理不支持就退回到更通用的路徑并且日志里明確記錄當(dāng)前模型不支持某特性已降級。這個設(shè)計避免了大一統(tǒng)抽象帶來的復(fù)雜度陷阱也讓新接入一個廠商變得非???。6. 生產(chǎn)環(huán)境里幾次救命的調(diào)優(yōu)線程模型、鏈路追蹤和冪等6.1 虛擬線程不是銀彈BizBuddy 部署在 Java 21 上LLM 調(diào)用是典型的阻塞式網(wǎng)絡(luò) IO正好適合虛擬線程。我用虛擬線程來處理一次 Agent 執(zhí)行的整條鏈路并發(fā)量提升非常明顯線程占用從幾千個降到幾十個。但有一個坑必須講虛擬線程在遇到 synchronized 同步塊時會發(fā)生 pinning如果同時配上數(shù)據(jù)庫連接池驅(qū)逐高并發(fā)場景會出現(xiàn)連接拿不到的詭異現(xiàn)象。我們排查過一周最后發(fā)現(xiàn)是某處工具方法里加了 synchronized而方法內(nèi)部阻塞在 JDBC 調(diào)用上。解決方法是把這段同步邏輯換成顯式鎖或原子類并限制連接池與虛擬線程的并發(fā)比例別讓虛擬線程無限擠爆數(shù)據(jù)庫連接數(shù)。6.2 讓每一條日志都帶 sessionId、agentName、nodeIdAgent 執(zhí)行鏈路比普通接口長得多一個用戶問題可能觸發(fā)五六次模型調(diào)用、十幾次工具調(diào)用沒有統(tǒng)一的追蹤上下文排障就是災(zāi)難。BizBuddy 在入口處把會話維度信息寫入日志上下文打印的關(guān)鍵 log 都帶上 sessionId、agentName、nodeId、toolCallId。最開始實現(xiàn)時用了簡單的線程變量結(jié)果流式線程一切換上下文就丟了日志串聯(lián)斷裂。后來我改成在每段異步任務(wù)提交時顯式傳遞上下文快照由執(zhí)行線程恢復(fù)才算穩(wěn)定。這個投入看起來小回報非常大?,F(xiàn)在出問題第一件事就是按 sessionId 拉日志能把一次完整推理路徑完整回放出來。6.3 LLM 重試帶來的重復(fù)工具調(diào)用有一次工單系統(tǒng)出現(xiàn)了重復(fù)創(chuàng)建查了半天發(fā)現(xiàn)根因是模型側(cè)的網(wǎng)絡(luò)重試。模型服務(wù)返回超時實際請求已經(jīng)到達(dá) BizBuddyBizBuddy 里工具也執(zhí)行成功了但客戶端重試導(dǎo)致同一個 toolCall 被再次執(zhí)行。這是 Agent 系統(tǒng)獨(dú)有的冪等問題。普通接口可以要求客戶端傳冪等鍵但 BizBuddy 的調(diào)用方是模型服務(wù)它不會主動傳冪等鍵。我們的解決方式是在 ToolInvoker 里對每一次 toolCall 生成唯一執(zhí)行記錄以 sessionId nodeId toolCallId 作為冪等鍵第二次命中直接返回第一次的結(jié)果不再真正調(diào)用業(yè)務(wù)方法。類似地同一個 Llm 節(jié)點如果因為網(wǎng)絡(luò)超時重試也優(yōu)先復(fù)用已有輸出。6.4 按租戶和 Agent 維度做限流配額大模型 API 不是免費(fèi)午飯一次復(fù)雜的多步推理可能消耗上萬 token還可能有并發(fā)配額上限。BizBuddy 提供兩層級聯(lián)的令牌桶租戶級配額管整體預(yù)算Agent 級配額管單個場景上限。超過配額時不直接拋粗魯?shù)漠惓6欠祷匾粋€結(jié)構(gòu)化錯誤Agent 能把這個信息轉(zhuǎn)成對用戶友好的提示比如當(dāng)前該類服務(wù)的調(diào)用額度已用完請稍后再試。這套配額也作用于工具調(diào)用。有些工具比模型調(diào)用更貴比如導(dǎo)出報表、發(fā)送短信BizBuddy 在工具調(diào)用鏈路里加了同樣的閘門防止模型被誘導(dǎo)觸發(fā)高成本操作。7. 收尾BizBuddy 只解決了 80% 的問題寫這篇文章時 BizBuddy 已經(jīng)在內(nèi)部支撐了三個業(yè)務(wù) Agent 的上線這個量級不算大但足夠暴露很多設(shè)計問題。實際做下來我最大的體會是Agent 平臺最難的不是模型調(diào)用那一層而是把動態(tài)執(zhí)行這件事裝進(jìn)企業(yè)現(xiàn)有的運(yùn)維和治理體系里。BizBuddy 在生命周期、工具調(diào)用、編排、可觀測和配額上切出了一個比較合理的邊界團(tuán)隊寫業(yè)務(wù) Agent 時不用關(guān)心底層底層出問題時又能順著日志和追蹤一路查到底。下一階段我想補(bǔ)兩件事。一是把會話和圖中斷點做持久化讓很長的任務(wù)可以掛起恢復(fù)二是把圖執(zhí)行過程可視化出來讓業(yè)務(wù)同學(xué)也能看懂 Agent 是怎么得出答案的。至于那些還沒做到的部分我寧可繼續(xù)慢慢補(bǔ)也不愿意現(xiàn)在就堆一堆華而不實的功能進(jìn)去。畢竟 Harness 這東西穩(wěn)定和可控比熱鬧重要得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久免费精彩视频| 激情深爱五月天| 婷婷五月天影院| 九九热在线观看视频网站| 日逼AV影音先锋男人资源站| 日韩性视频| 五月激激网w'w'w| 北条麻妃九九九国产精品视频| 五月婷婷网五月在线| 国内久久久精品99| 色99综合色88| 免费观看18视频网站| 亚洲色色色色| 激情综合4月| 免费在线观看av网站| 色色色婷| 激情六月丁| 五月丁香五月丁香| 久久久性爱视频| 成人综合网站| 色婷婷www| 热久久视频99| 婷婷六月插屄激情| 五月丁香亭亭成人电影| 天天干夜夜谢| 伊人午夜综合色啪| 五月丁香婷婷色色色| 婷婷终合色图| 97影院一级片| 激情四射亚洲| 可以直接看的AV| 色婷婷色九月| 激情性爱五月天| 亚洲欧洲中文日韩久久AV乱码| 天天天添天天操| 大香蕉婷婷五月| 99久久户外勾搭| 五月婷婷,狠狠操| 色综合久久88色综合中文字幕| 色月九九| 激情综合网丁香| 国产9色在线/日韩| 亚洲AV无码成人精品区电影网| 成年人丁香五月| 欧美25p| 国产综合激情五月久久| 中文字幕在线不卡| 婷婷色色丁香五月天| 欧美婷婷色五月| 九九综合精品| 丁香五月狠狠综合欧美| 六月婷伊人| 色色丁香婷婷| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 夜色爱爱亚洲| 日韩五月婷婷| 色五月婷婷成人| 99热只有| 亚洲噜色| 丁香五月综合在线视频| 国产婷婷色综合AV蜜臀AV| 五月婷婷激情色情网| 成人网站在线观看视频| 丁香五月天激情婷婷丁香六月| 色综合中文色综合网| 五月色综合| 婷婷五月天堂| 99国产精品久久久久久久久久久 | 万月丁香狠狠爱| 青青草成人网| 丁香五月天天久久综合小说| 综合色视频| 激情五月婷婷老师| 97色97干| 夜夜爱网站| 中文字幕在线日亚洲9| 伊人碰碰碰| 日韩99视频| 婷婷开心久久| 亚洲超碰在线| httpwww色com日本| 色婷婷丁香AV综合| av色婷婷| 激情亚洲婷婷六月| 久久99热免费最新版| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 久久婷婷啪啪视频| 51精品国自产在线| 色噜噜五月天| anquye五月| 五月丁香在线综合| 色色热| 伊人在线视频| 玖玖婷婷五月| 狠狠色激情综合| 99er6热在线观看精品6| 欧美黄色AA片哗啦啦啦| 久久九九激情五月天| 久久99网| 激情精品久久| 天天综合色丁香| 婷婷五月天堂| 五月婷久久综合| 成人视屏在线观看| 直接看的av| 大香蕉婷婷五月天| 久久久九九九 99| 色九四色| 亚洲激情亚洲激情| 91碰超| 亚洲av成人在线| 99热这里| 亚洲午夜一区二区| 狠狠色五月| 五月婷婷导航| 97人人操人人拍| 97碰| 丁香五月手机在线| 五月婷婷综合成人| 婷婷成人综合免费视频| www.超碰| 五月丁香香蕉| 久久性操| 97久操视频| 色婷婷五月天中文字幕| 色婷婷成人网| 九九艹女| 日本五月视频| 中文字幕丁香五月| 欧美婷婷精品激情| 狠狠综合网| 五月天电影网| 天天做天天爱天天高潮| 老司机视频lsj爱就色| 天堂色婷婷| 色五月成人在线| 色婷婷AV在线| 99久热精品在线| 婷婷五月免费观看| 狠狠综合网| 影音先锋自拍网| www.99热精品| 五月天激情久久| 五月婷婷激情| 天天日天天干天天爱| 婷婷爱五月天| 99热只有精品在线| 97色色婷婷| 嫩草AV久久伊人妇女超级A| 色五月激情五月| 精品成人在线观看| 九九热re99re6在线精品| www.韩日视频| 色五月第四色| 玖玖综合色区在线观看| 性天天中文网| 婷婷五月天性| 久久色大香蕉| 17.c黄色| 久久久五月天网站| 玖玖午夜视频| 伊人五月婷婷| 99久久性爱| 8区视频在线| 久久久精品人妻录| 99热精品超碰| 婷婷午夜激情| 婷婷五月天黄色网址| 色色色色av色色色色| 伊人久久大香蕉网| 亚洲天码视频www蛋播视频| 99re8这里只有精品99re8热视频| 超碰av在| 亚洲色精彩| 日熟女| 久久婷婷五月综合网| 婷婷丁香五另类网站| 狠狠干在线| 久草婷妨| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 天天爱天天天射AV| 婷婷五月天伊人网| 高清视频一区| 五月综合色| 99精彩视频在线观看| 人妻丰满精品一区二区A片| 婷婷五月天播| 操逼五月婷婷| 99久久五月婷婷| 激情性五月天免费小说视频| 亚洲综合另类| 五月婷婷开心网| 婷婷五月天成人动漫 | 欧美婷婷五月天综合| 九九99精品免费播放| 色停停五月天| 色噜噜狠狠色综合伊人| 成人午夜在线视频| 亚洲精品成人| 婷婷五月天综合久久| 国产色视频网站2| 婷婷九月综合| 色婷婷色九月| 丁香激情六月天婷婷| 欧美 色婷婷| 欧美成人网99网| 色综合中文色综合网| 久久草大香蕉| 玖玖资源站中文| 久Se视频在线观看| AV中文网| 激情婷婷丁香色五月| 久久九九九九| 第四色在线观看| 开心激情网在线| 五月丁香六月综合基地| 9 7总站超级碰免费视频| 26uuu在线观看| 婷婷激情综合| 五月天激情婷婷| 99亚洲精品综合在线| 激情都市五月天| 97五月婷婷| 熟女网站久久| 九九99一区| 丁香五月天网站| 欧美大片免费观看| www.婷婷六月天| renre人人操国产超碰在线| 亚洲4区国产欧美| 婷婷五月电影| 久久草人妻| 欲求不满的人妻| 婷婷中文字幕| 色播五月天激情| 超碰成人电影| 婷婷成人视频| 五月综合丁香婷婷| 日美三级| 五月丁香五月婷婷在线观看| 色五月婷婷激情| 91玖玖| 色综合99无码| 欧美丰满熟妇BBB久久久| 996er热| 国内裸舞二区| 五月婷久久| 亚洲激情av| 天天摸色吧天天摸色吧| 激情综合五月色丁香婷婷| 97成人丁香婷婷| 月色色综合婷婷网| 六月婷婷最新网址| 草婷婷在线| 日韩精品一区二区亚洲AV观看| 国产婷伊人| 偷拍五月丁香| 五月婷婷六月激情| 九色91视频| 婷婷五月丁香综合激情| 色五月婷婷五月天激情综合| 激情开心五月天婷婷基地丁香社区| 丁香五月婷婷激情尤物| 区美毛片子| 激情久久久久久| 欧美天堂久久| 婷婷丁香六月| 五月丁香综合激情| 丁香五月色五月| 五月天激情中文字幕| 精品国产人人爱人人| 中文字幕在线播放视频| 激情五月伊人婷婷| 欧美色色色| 97色色色| 玖玖资源部在线播放| 99er6| 色婷婷中文字母五月丁香| 丁香花婷婷五月天| 国产成人av在线播放| 亚洲成人网站在线播放| 色五月天丁香| 五月丁香六月婷婷综合免| 欧美欧盟性爱网| 丁香丁香激情网| 就要去操亚洲成人精品五月天丁香婷婷| 欧美影院婷婷| 操逼123网| 激情五月天婷婷| 婷婷五月中文在线| 日韩性视频| 久久久婷| 丁香色五月婷婷91桃色| 日韩精品一区二区亚洲AV观看| 婷婷五月天情色| 色爱综合网| AV操逼网| 丁香久久在线| 青青草色在线视频观看| 色情免费视频播放| 九色PORNY自拍成人精彩视频| 综合色播| 久久久久久婷| 九九综合久久| 色五月综合激情| 五月综合激情网| 99久视频| 色色色色色色色色色色色色色色,网站| 97操在线| 午夜免费试看| 思思热精品在线观看| 国产精品爽爽久久久久久| 五月婷婷婷| 一本色道久久88加勒比| 中文精品在| 五月色无码| 亚洲人人96@| 人妻射精AV| 五月天婷婷AV| 久久免费操| 26uuu丁香婷婷五月| 91精品丝袜久久久久久| 日韩人妻AV在线| 国产色网站| 欧美成人无码高清一区二区三区| 欧美xx激情视频在线观看| 日韩成人综合网| 六月婷婷日| 五月天婷婷综合免费| 大香蕉啪啪啪| 九九色之九九色之88| 激情色中文| 色七七色九九| 色逼综合网| 丁香六月婷婷综合激情欧美| 天天综合网网欲色| 国产乱妇无乱码大黄AA片| 99啪在线视频| 天天爽天天做| 日本少妇裸体做爰高潮片| 日本nghangse中文字幕| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 激情操逼婷婷| 久久精品色| 欧美色性色好| 婷婷五月综合免费在线| 天天 青草 丝袜制服 在线| 久久人操| 天天综合 99久久婷婷| 思思热在线视频99| 国产乱人偷精品人妻A片| 色域五月婷婷丁香| 日本婷久久| 9 1 A v久久久| 五月丁香WWW| 激情五月天综合| 精品久久婷婷| 五月丁香亭亭| 狠狠色大香蕉| 伊人色综合网| 久久国产成人9999久久久久| 五月婷在线色视频| 影音先锋91在线资源站| 婷婷五月婷婷五月| 97色色婷婷| 中文字幕在线日亚州9| 91久久五月天| 亚洲视频五区| 丁香花五月天激情| 色婷婷香蕉| 综合99综合久久久久久久| www.五月婷| www.亭亭五月天| 五月婷婷 婷婷五月 一区二区 久久久 | 五月丁香婷婷爱| 久久久久久9热不雅视频| 五月丁香婷在线| 九九9久九9国产视频| 九九九九九无码| 97香蕉碰碰人妻国产欧美| www.久久爱| 婷婷九月色| 91操人视频| 性爱视频99| www.99热在线| 九九精品热| 五月婷六月综合在线观看| 开心五月婷婷激情| 色噜噜综合网| 国产成人一区二区三区在线观看| 亚洲人人操BD| 国产乱妇乱子伦| 久久婷婷原创视频| 任你操精品免费| 丁香久久五月婷综合| 97人人搞| 五月天六月天| 欧美97超碰| 天天日天天干天天爽| 九九色院| 久操操| 久久婷婷五月草视频| 亚洲殴洲精品Av在线| 思思热在线视频精品| 色久女| 色色色综合网| AV79| 久久之人妻| 天天爱天天做天天| 五月丁香六月激情综合| 可以免费看AV网站| 免费亚洲婷婷中文字幕| 丁香六月婷婷综合缴| 成人无码免费一区二区中文| 五月天开心激情综合网| 日本综合久| 久久婷婷六月综合国际| 91精品无码| 久久在线视频只有这里有精品| 丁香狠狠干| 99在线免费视频| 婷婷六月丁香开心深深爱| 亚洲网在线观看| 色婷婷狠狠| 久久草大香蕉| 婷婷久久婷婷| 亚洲最大成人综合网720P| 思思re99视频在线观看| 99r这里只有精品哦| 香蕉99网| 久久黄色免费视频| 黄色片精品| 久久精品99国产精品日本| 桃色激情网| 五月丁香在线视频观看| 五月天伊人综合| 99ER热精品视频| 这里有精品| 亚洲综合干| 天天综合五月| 狠狠干婷婷| 五月天激情小说网| 国产精品婷婷午夜在线观看| 性爱在线播放av| 一婬一伦一区二区三区| 99热这里只有精品8| 婷婷五月天色播| 六月婷五月丁香| AV五月丁香| 性爱技巧五月| 日韩精品视频中文字幕| 99自拍视频在线观看| 色色色综合| 日日懆天天懆| 婷婷丁香五月亚洲欧美| 亚洲av网址| 伊人免费视频9| 欧美性猛交 XXXX 乱大交| 99热爱爱干干日| 婷婷五月另类网站| 99日韩网站| 色琪琪一综合久久激情五月视频| 99热精品10| 黄色中文字目| 1024操逼| 三日本无码| 丁香五月花| www.91婷婷| 色播播五月天| 激情九色| 婷婷五月色| 丁香六月婷婷色XXXXX| 中文精品久久久久人妻不| WWW,五月| 影视av久久久噜噜噜噜噜三级| 久久天堂色| 午夜微拍福利| 九热视频免费观看| 人人97操| 第五婷婷伊人丁香色| 99色免费| 99久久精品色老| 99九九综合久久九九| 操操操Av| 日本一级| 可以免费观看的av| 国产AV一区二区三区最新精品| 丁香婷婷激情| 一本色道久久88加勒比| 色婷婷狠狠禁久久| 四射综合网| www91精品| 国产综合婷婷| 五月开心婷婷极品激情| 五月婷婷熟女| 26uuu另类亚洲欧美日本一| 激情五月天色婷婷| 欧美99视频| 亚洲天堂热| 国产激情综合五月久久| 一本色综合色| 97久久五月丁香婷婷| 婷婷五月天综合久久| 新97人人上人人| 精品无码av丁香五月激情| 丁香5月激情网| 色婷婷成人影片| www.夜夜騎夜夜狠| 久9视频免费播放| 操操啪| 中文字幕无码人妻少妇免费视频| 色狠狠色噜噜AV天堂五区| 婷婷伊人久久无码色五月| 五月婷婷激情综合| 热996精品在线观看| 粉嫩av懂色av蜜臀av熟妇| 色六月天天激情综合网| 婷婷色五月色| 91丨九色丨白浆| www.99视频| 亭亭五月天成人| 亚洲五月丁香六月婷婷| 激情五月六月婷婷| 亚洲日比视频| 91蜜桃婷婷狠狠久久综合9色| 新97人人上人人| 这里只有精品99视频| 日日爱699| 日韩成人中文字幕| 骚逼视频一区2区| 99综合久久| 五月天堂在线| 99视频精品在线| 婷婷五月天免费视频| 超碰九九热| 免费无码毛片一区二区A片| 黄色五月婷| 日日天天天| 天天草天天舔| 精品久久99| 五月天大香蕉婷| 激情综合网五月在线播放| 就99这里只有精品| 丁香婷婷影院| 99精品国产在热久久| 亚洲啪啪网| 五月婷婷啪啪网| 色色色9| 激情碰碰碰| 日韩砖区| 99视频久久| 丁香五月综合首页| 99热这里只有在线| 99久久国产宗和精品1上映| 久草嫩草在线观看| 五月天激情网页| 国产精品色色| 成人丁香五月| 欧美丁香婷婷五月| 五月婷啪| 91人人网| 991精品在线视频| 狠狠色噜噜色狠狠狠综合久久成人波| 午夜精品久久久久久久爽| 中文人妻主播久久| 超碰人人在线| 伊人五月天综合网| 大香蕉五月丁香| 伊人五月综合网| www.深爱激情| 精品国产a| 五月丁小婷婷激情四射| 色五月激情五月丁香五月婷婷啪啪综合 | 国产午夜精品久久久观看| 久草婷婷| 婷婷色五月激情强奸四射| 99热6精品| 久久性都花花世界成人免费视频| 青青草日本亚洲| 国产欧美精品AAAAAA片| 九九热99精品在线| 激情文学综合婷婷五月天丁香花| 色播五月丁香婷婷| 国产古装妇女野外A片| 狠狠88综合久久久久噜噜噜| 精品国产AV色一区二区深夜久久| 成人精品一区二区三区四区五区| 丁香六月婷| 天天插天天狠| 全部老头和老太XXXXX| 婷婷大美在线| 婷婷碰碰| 色五月aV| 国产在线视频1234| 中文字幕,综合,91| 国产日韩av片| 婷婷五月色天| 天天模,夜夜模夜夜爽| 国外亚洲成AV人片在线观看| 99在线精品在线视频| A1片久久| 久久婷五月| 激情婷婷五月亚洲| 久9热视频在线| 天天操夜夜爽歪歪| 色婷婷九月| 婷婷精品视频| 久久aaaa片一区二区| 丁香婷婷婷五月综合色情| 99久精品视频| 天天舔夜夜操www com| 色www久视频| 激情综合激情五月一起草| 超碰久热| 色综合激情| 九九综合伊人| 大婷婷色呦呦噜噜色呦呦噜噜| 9热超碰| 色五狠狠| 91狠狠综合久久| 欧美婷婷成人| 婷婷色网站| 五月丁香婷婷啪啪网| 激情五月天偷拍综合网| 99亚色色色| 久久无码成人| 五月婷婷熟女| 婷婷丁香五月欧美人| 婷婷综合在线播放| 婷婷综合性爱网| www.五月天婷婷| 婷婷五月天激情四射五月天激情| 色五月色综合| 久久婷五月天| 99热99免费| 久久久久9| 99精品久久久久久| 久久精品这里只有精品免费首页| 婷婷情色激情| 黄色大片又大粗又爽| 色99免费视频中文| 日本色五月婷婷| 超碰在线99| 色婷婷AV在线观看| 色优久久| 91视频精品99| 五月丁香在线婷婷美女| 日日夜夜青青草| 久碰婷婷视频| 3DAV亚洲香蕉久久 一区二区| 欧美人妻一区二区| 俺去也综合| 青青草深爱激情网| 亚洲丁香婷婷五月天综合色| 永久免费一区二区三区| 99se丁香| 八戒青柠影视剧在线观看| 午夜婷婷久久| 色综合久久88色综合天天99| 超碰人人91| 美女激情婷婷| 亚洲综合999| 久久婷婷六月综合国际| 久久五月天婷婷视频| 久久玖玖综合| 丁J香六月首页| 丰满人妻一区二区三区| www.夜夜| 色吧五月婷婷| 久久久激情| 色综合五月| 五月激情六月婷婷| 天天狠狠六月婷丁香影院| 五月婷婷久久网| 日日日日做夜夜夜夜无码| 色狠狠综合网| 婷婷久久丁香五月| 成人永久免费视频在线观看| 天堂综合久| 97超碰欧美中文字幕| 黄色av网站在线免费播放| 少妇AB又爽又紧无码网站| 久久丁香五月| 丁香伊人网| Av大香蕉| 欧美日韩aaa| 婷婷五月天伊人网| 99精品色| 天天草狠狠擦| 伊人春天av| 久久天堂精品| 色伊人啪| 色综合久久天天综合网| 操久久网| 五月丁香久久综合| 深爱网深爱综合网| 五月婷婷福利| 久久久久久人妻久久久久久久久久人妻久久久 | 日91高清无玛| 丁香五月婷婷超碰在线| 99思思| 久热免费视频| 成熟妇人A片免费看网站| 嫩BBB槡BBBB搡BBBB| 图片区 小说区 区 亚洲五月| 麻豆AV一区二区三区| 国产AV一区二区三区最新精品| 极品人妻VIDEOSSS人妻| 成人网站高清无码| caop在线视频| 丁香五月天人体| 天天天摸夜夜夜玩| 天天日天天舔| 少妇高潮A片无套内谢麻豆传| 日韩无码AV电影网站| 日韩无码亚欧无码| 九色91美女| 久久精品五月天| 国产成人片| 婷婷五月综合社区在线| 久久久久久99精品无码| 99 热| 婷婷五月天偷拍| 久久精彩视频| 超碰99在线| 婷婷99狠| 婷婷久热| 九九这里都是精品| 开心深爱激情网| 丁香情色五月| 欧洲亚洲免费视频9| 狠狠色婷婷7777久| 九九性视频| 四色永久成人网站| 97人人干视频| 五月婷婷色色| 日本五月婷婷| 开心激情婷婷| 九九99香蕉在线视频播放| 久久婷婷六月| 五月天播播中文字幕 | 99热欧| 99精品综合视频| 欧美va视频| 久久久久久9热不雅视频| 97久久人人| 欧美va欧美va差| 五月天久久婷婷| www.无码com| 深爱五月天婷综合| 五月天激情影院| 狠狠色噜噜狠狠狠狠狠色综合久久| 99久久99九九九99九他书对| 日本婷婷色日| 日韩成人中文| 永久思思热在线| 亚洲va成人va成人va在线观看| 成人va在线播放| www.91在线看| 操射国产日本| 天堂成人A片永久免费网站| 激情综合五| 五月婷婷婷丁香播| 婷婷九九色| 五月激激网w'w'w| 婷婷久久网| 丁香六月婷婷开心婷婷网| 亭亭五月天黑人2014| 91丨九色丨东北熟女| 91干视频| 婷婷五月丁香欧洲| 婷婷久久欧美| 国产色五月婷婷| 99精品偷自拍| 伊人网欧美在线男人天堂五月丁香| 婷婷九月丁香| 伊人玖玖网| 5月婷婷激情网| 综合色色五月| 九九视频精品在线免费| AV在线大香蕉| 九九热欧美| 狼人婷婷久久| 久久久久久久久久91| 噜噜视频| 九九大香蕉黄色影院| 日本熟女二区| 91性交在线播放| 狠狠色五月| 电影91久久久| 99热在线中文字幕| 99免费超碰在线| 五月丁激情| aV直接看| 99国产这里只有精品| 人人肏逼视频在线一区二区| 婷婷丁香五月天在线| 99热免费18| 婷婷五月天开心激情网| 丁香久久激情俄| 天天日天天干天天爽| 国产亚洲99久久| 9久国产| 久久婷婷五月丁香网| 久久婷五月综合| 97人妻碰碰碰碰碰久久久久久| 国产性爱一级| 中文字幕不卡+婷婷五月| 久久综合干| 五月丁香六月激情综合网| 538在线精品| 久久婷婷五月天激情| 久久九九激情五月天 | 六月丁香婷婷开心综合基地| 五他月天啪啪啪| 99热97| 久久婷婷五月丁香网| 亚洲免费婷婷| 狠狠狠五月婷婷六月丁香| 九九久久玖玖爱| 丁香五月婷婷五月天| 婷婷丁香激情综合色情| 国产成人精品亚洲线观看| 99久久婷婷五月天| 激情五月天视频| 欧美性爱5月天天天看| 亚洲激情亚洲激情| 久热爱大香蕉在线蜜臀悦色 | 六月色激情| 婷婷五月天av| 天天操天天谢| 嫩草国产| 伊人婷婷五月天| 在线可以看的av网址| 久久伦乱| 国产精品国产成人国产三级| 天天色激情| 91热久久| 无码少妇高潮喷水A片免费| 99视频这里只有精品10| 婷婷中文在线| 国产成人精品一区二三区熟女在线| 看国产探花操逼三级片| 伦乱天堂| 96丁香婷婷九月蜜桃综合久久| 五月深爱网| 天天搡日日搡aaaaⅩ| 农村熟妇高潮精品A片| 综合色播| 色综合综合色| 中文字幕久久婷九女同| 99热99色| 色五月综合资源推荐| 五月天丁香成人社| 色9999综合久久| 操碰97| www色婷婷com| 丝袜激情网| 啪啪九九色| 噜噜视频| 五月婷婷啪啪| 久久久区区一久久久久久| 婷婷综合色图| 亚洲蜜乳AV| 欧美性做爰大片免费看办公室| 丁香六月婷婷久久综合| 色婷五月丁香久亚洲| 欧美情月伍月天| 9999热在线观看| av一级棒av| 色综合天天综合成人网| 99自拍网| 婷婷丁香五月亚洲免费| 婷婷另类开心| 久久久27操| 日韩欧美婷婷丁| BBWCUCKOLD精品熟妇| 91热久久| 亚洲成人噜噜| 思思久久99热只有频精品66| www婷婷| 五月天婷婷影院影院观看| 另类在线| 激情六| 97操碰碰无码视频| 九九久久污| 国产女生爱爱AA| 最近免费中文字幕大全高清大全1| 亭亭色色五月天| 天天噜| 97色色网| 五月天网站免费欧美| 欧美久久婷婷| 亚洲性爱日韩无码| 六月丁香好婷婷| 久久一二三视频| 激情综合五月.....| 99色干| 国产激情久久久| 97久久人人| www久| 男女99免费视频| 六月婷婷激情图片| 日本系列_4页_777FP| 婷婷五月丁香香蕉| 九月丁香八月婷婷久久综合久97| 日韩大片艹艹| 99热欲| 亚洲成人AV高清字幕| 免费视频WWW在线观看网站| 8090在线影视少妇| 欧美成人在线观看| 久久婷婷免费| 99久久久精品| 91婷婷色 | 日韩黄色电影| 国产操B视频| 999婷婷综合| 婷婷丁香六月五月天| 日韩 欧美 国产 一区 二区| 99久热这里只有精品视频删减版| 一起草无码| 五月婷五月婷伊人伊人五月婷| 综合狠狠伊人| 婷婷五月综合欧美在线播放| 色婷婷激情五月天在线观看| 亚州色色色| www.五月丁香| 九九视屏| 五月天激情小说| 97精品人人A片免费看| 超极99精品| 九九色区| 另类天堂| 丁香婷婷五月六月天| 91色情播放| 超碰在线观看9| 色婷婷婷婷| 中文字幕乱码亚洲精品一区| 99ri国产精品| 婷婷伊人综合中文字幕| 狠狠五月激情在线| 99久久終合| 丁香五月婷婷激情四射| 永久的网站AAAA| 99视频在线观看视频| 99综合网| 超碰精品在线| 热99.com婷婷| 六月丁香花婷婷| 色婷婷五月天小说网| 久久99精品久久久久久三级| 五月丁香色婷婷| 4399精品一区二区| 丁香婷婷黄网站| 婷婷中文字幕版| 中文久久婷婷| 精品一二三区久久AAA片 | 丁香六月av| 丁香婷婷五月| 思思热视频在线| 九九综合图片网| 激情小说五月天社区丁香| 色综合综合色| 五月色亚洲| 精品久久久91久久影视网| 天堂综合久久| 亚洲精品乱码久久久久久综合| 五月开心久久| 性色做爰片在线观看WW| 中文字幕av亚洲| 精品久久久久久久人妻| 另类在线| CAOBIBI| 99惹在线精品免费观看| 国产日韩欧美性生活| 最新日韩久热免费视频看看| 性爱先锋AV| 精品色| 亚洲日本三级片| 人妻性操逼中文字幕 国产| 五月婷婷丁香狠狠撸久久| 99在线免费观看| 99热8在线| 99五月丁香丁| 久草热在线视频| 日本久久色| 精品99这里有| 天天综合五月天| 99ri视频在线观看| 色综合播放| 五月丁香色色网| 亚洲成人无码网站| 五月婷婷自拍视频| 激情第四色| 天天操夜夜爽天天操| 人人摸人人| 99久久欧美| 99色综合| av在线中文| 久草视频大香蕉99| 亚洲性图一区二区三区| 日本三级中国三级99人妇网站| 色站9/| 99爱免费视频| 激情五月婷婷色综合| 五月丁香999| 天天色视频| 思思99热这里只有精品| 五月天操逼网| 久久九九国产| 9月色婷婷| 色五月中文字幕| 激情色视频| a级毛片一区二区免费视频| 人妻videos人妻高清| 五月丁香婷婷色| 色欲婷婷夜夜| 99热免费精品热久久66| 狠狠综合久久| 99热这里是精品| 婷婷丁香十月| 亚洲精品一区中文字幕乱码| 久久激情五月天| 99性视频| 九九热a| 久热九九| 影音先锋噜一噜| 91色在线/日韩| 五月丁香六月综合情在线观看| 超碰亚洲天堂| 五月丁香啪| 亚洲国产无线乱码在线观看| 天天舔天天摸天天射| 丁香婷婷大香蕉| 这里只有免费的精品| 玖玖色综合色| 六月久久狠狠| 丁香五月停停基地| 97碰| 婷婷放心五日爱| 免费无码毛片一区二区A片| 午夜九九电影| 丁香五月天大香蕉啪啪| 日本成人噜噜噜| 亚洲免费观看高清完整版AV线| 色狠狠999综合| 99在线免费视| www,999日本色| 人人草人人视| 色噜噜97视频在线观看| 九九激情网| 色丁香五月天| 日本欧美成人片AAAA| 色欲资源网| 超碰av天堂| 国产在这里只有精品| 5月丁香综合网| 超热久碰.com| 99热婷婷| 婷婷五月天视频小说| 狠狠色九月| 99热日本| 狠狠色激情综合| 毛片新网地| 欧美日韩成人| 伊人在线视频| 天天日日夜夜爽| 一本色道久久综合狠狠躁一二三| 激情丁香九九五月综合网| 天天操夜夜啊| 天堂美国久久| 国产 码在线成人网站| www.五月天婷婷姐姐| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 天堂网色色| 色色亚洲| 天天操电影院色狼性av| 色噜噜狠狠色综合无码久久欧美| 丁香五月婷婷色综合| 无码啪啪| 爱婷婷五月| www.91操| 亚洲视频另类| 天天天干夜夜夜操| 五月天,激情四射,婷婷频道| 亚洲综合激情五月久久| 人人操超碰| 天天综合五月天| 夜夜做夜夜愛| 五月婷婷六月丁香| 婷婷五月六月| 欧美搡BBBBB摔BBBBB| 日韩精品一品二区三区的使用体验| 日韩狠狠色婷婷| 丁香久月婷| 日日操夜夜撸| 七七色色综合| 综合网五月天123| 天天爽爽日日做做| 日韩操女| 99热在线观看| 色五月激情五月开心五月| 在线综合网| 天天 青草 制服丝袜 在线| 天天色天天爱天天舔| 六月婷婷影院| 一起草av| g00d人体西西| 91色性感五月婷婷丁香| 亚洲中文乱字字幕在线永久| 五月开心激情| 99爱精品视频| 成人五月天色天堂| 51成人| 久热9热| 黄色网址五月婷婷| 色噜噜综合网| 丁香五月婷婷影院| 第四色五月婷婷| 26uuu精品一区二区| 色色亚卅| 开心婷婷五月激情网小说| 9色在线视频| 99精品女人天堂| www.色欲丁香婷婷| 五月婷婷网久久| 先锋五月婷婷丁香草草| 99热国内精品| 婷婷五月色情| 超热久碰.com| 色吊丝av中文字幕| av网站免费在线| 久热re视频在线观看网站| 成人无码髙潮喷水A片| 99综合| 狠狠操综合| 国产67194| 久久这里只有精品22| 五月天堂在线| 全国最新疫情| 99热最新网址| 婷婷丁香五月天小说| 97性视频| 97碰啪啪| 婷色五月| 77799热| 梁铮版蜘蛛女在线观看| 五月永久激情| 五月激情偷拍婷婷| 丁香五月激情站| 思思热久久久在线| 夜丁香五月婷婷| 狠狠操天天干| 秋霞AV淫| 丁香九月久久| 成人短视频在线观看| 婷婷五月成人| 无码一区精品一区视频| 黄色热99| 97碰碰碰免费公开在线视频| 少妇2做爰HD韩国电影| 婷婷五月天开心网| 亚洲九九99精品视频在线播放| 亚洲日本激情| 精品成人在线| 久久狠狠干| 国产操B视频| 国产成人精品一区二三区熟女在线| 99热亚洲精品66| 丁香五月婷婷激情中文| 婷婷十月激情综合网| 色五月成人网| 99热这里只有精品9| 综合久久综合久久| 精品一二三区久久AAA片| 91精品久久久久久久久久| 亚洲a片免费观看| 中文字幕激情综合| 中文激情网| 天天综合天天玩夜夜玩天天玩夜夜玩| 五月婷婷丁香av| 婷婷五月天在线观看| 天天综合五月| 九九综合九九| 国产乱妇乱子在线播视频播放网站| 色逼综合网| 91视频精品99| 这里只有精9| 五月天婷婷久久视频| 久久婷婷五月天懂色| 丁香成人五月天| 久久玖玖99| 91人人网| 操丝袜视频影院导航| 五月天婷婷基地综合网| 久热在线中文字幕色999舞| 新男人天堂人妻| 婷婷综合偷拍| 婷婷免费精品视频| 婷婷五月深深爱| 婷婷五月电影院| 性欧美大战久久久久久久83| Www.sesese丁香| 日本久久超碰| 秋霞电影理论| 婷婷色在线视频| 亚洲视频在线观看| …亚洲黄色在线播放日韩、av中文a…| 99riAv1国产在线观看| 色婷婷国色天香综合| 九九热在线观看视频| 双性美人被调教到喷水A片| 色五月婷婷青娱乐| 激情狠狠丁香月| 久久婷婷国产| 亚洲情欲久久| 99精品视频免费在线播放| 另类激情五月| 色五月婷婷中文字幕| 天天操天天谢| 五月丁香综合激情网| 丁香婷婷综合喷| 欧美性爱特黄一级aaaassss| 狠狠干综合网| 欧美丰满熟妇BBB久久久| 99热在线资源| 九九视频这里有精品| 婷婷综合五月| 六月色 亚洲| 丁香开心深爱| 久久婷婷色| 亚洲有码在线视频| 亚洲99视频| 婷婷伊人綜合中文字幕小说| 激情五月份婷婷| 五月激情久久综合网| 精品一二三区久久AAA片| 婷婷色影院| 99热免费观看| 超碰婷婷五月| 婷婷美女精品视频| 丁香婷婷色五月激情综合| 婷婷九月在线| 色 五月婷婷基地| 天天拍天天操| 成人午夜免费电影| 丁香五月激情无码视频| 97干在线| 97婷婷狠狠| 色天五月天在线观看视频| 伊人成综合五月婷婷| 成年人99热| 色婷婷8| 五月丁香婷婷国产精品综合| 九月丁香婷婷| 伊人影音无码一区二区三区| 91丨九色丨国产打屁股| 五月丁香婷婷成人版| 五月天成人综合| av电影在线播放| 五月婷婷综合精品| 综合久久五| 婷婷干五月综合在线播放| 久久与婷婷| 婷婷五月天色|