欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

Agent-Reach:多智能體協(xié)作的通信底座與消息路由實踐

Agent-Reach:多智能體協(xié)作的通信底座與消息路由實踐 多智能體這塊最近兩年被炒得很熱但真正在項目里把多個Agent拉到同一張桌子上協(xié)作的時候你會發(fā)現(xiàn)一個很尷尬的問題各個Agent之間根本夠不著對方。它們各自封裝在自己的框架里跑在自己的進程里用的是各自的工具調(diào)用協(xié)議消息格式各說各話。我這個項目Agent-Reach就是沖著這個痛點去的——它解決的核心問題是Agent觸達(dá)讓一個Agent能夠發(fā)現(xiàn)另一個Agent的存在、了解它能干什么、然后把任務(wù)和結(jié)果可靠地遞過去。這不是一個華而不實的框架而是一套輕量的、可以直接嵌進現(xiàn)有系統(tǒng)的Agent間通信與發(fā)現(xiàn)基礎(chǔ)設(shè)施。下面我把整個項目的設(shè)計思路、核心實現(xiàn)、踩坑過程都展開聊聊尤其是那些只在真實流量下才會暴露的問題。1. 多智能體協(xié)作的圈地困境Agent成了孤島協(xié)作成了妄想先回顧一下我為什么要做這件事。在做Agent-Reach之前我參與過一個電商客服場景的項目里面有三個Agent一個負(fù)責(zé)售前咨詢的、一個負(fù)責(zé)訂單狀態(tài)查詢的、一個負(fù)責(zé)售后處理建議的。三個Agent分別基于不同的框架搭出來的售前的用了LangChain訂單查詢的是自己寫的一套意圖識別加工具調(diào)用售后那個直接調(diào)外部RPA接口。最開始的設(shè)計是三個Agent串行跑用戶問一句售前Agent判斷該不該轉(zhuǎn)給訂單Agent然后由售前Agent的代碼里寫死一個調(diào)用訂單Agent的函數(shù)。這個方案看似沒毛病跑起來之后全是麻煩。比如訂單Agent換了個部署地址售前Agent的代碼就得跟著改比如想新增一個物流咨詢Agent售前Agent的代碼要重新發(fā)布一版。更頭疼的是三個Agent之間傳消息完全沒有統(tǒng)一格式售前傳過去的是幫我查一下訂單訂單Agent那邊需要的是結(jié)構(gòu)化JSON中間還得套一層轉(zhuǎn)換邏輯。這些小問題疊加在一起就是典型的硬編碼集成之痛。我當(dāng)時理想中的形態(tài)是這樣的Agent之間不直接握手而是通過一個公共的通訊錄互相發(fā)現(xiàn)消息格式統(tǒng)一某個Agent掛掉或者升級的時候不影響其他Agent的整體運行。這就是Agent-Reach立項的最初動機。所以Agent-Reach的第一層價值是解耦第二層價值是標(biāo)準(zhǔn)化。它做的事情不是一個Agent框架而是一個中間層。打個比方Agent-Reach不負(fù)責(zé)教你怎么做Agent它負(fù)責(zé)的是給Agent們發(fā)名片和信箱。從技術(shù)選型上看當(dāng)時有幾個現(xiàn)成方案可以選比如消息隊列Kafka、RabbitMQ加一個服務(wù)注冊中心Consul、Etcd。但我試過之后發(fā)現(xiàn)太重了——Kafka解決的是大數(shù)據(jù)量消息的吞吐問題而我這個場景的消息量一天也就幾萬條而且大部分是短小的一問一答為這個上Kafka有點殺雞用牛刀。Consul那套偏向微服務(wù)治理健康檢查、KV存儲確實都有但Agent之間的消息路由語義——這個任務(wù)該發(fā)給哪個Agent、怎么回傳結(jié)果——它是不懂的我還是得自己在上層寫一套路由邏輯。思來想去與其拼裝兩個輪子不如自己做一個正好合適的輪子。Agent-Reach的本質(zhì)就是一個帶語義能力的Agent注冊與消息路由服務(wù)底層用輕量的消息通道承載通信上層實現(xiàn)了Agent能力描述、發(fā)現(xiàn)、定向投遞和結(jié)果回傳。接下來我會把每一塊設(shè)計拿出來細(xì)講。2. Agent-Reach的定位與總體架構(gòu)不造Agent只疏通Agent之間的路先說清楚架構(gòu)邊界這是后面所有細(xì)節(jié)討論的前提。Agent-Reach包含四個核心模塊Agent注冊表Agent Registry、能力目錄Capability Catalog、消息路由層Message Router、以及客戶端SDKAgent-Reach Client。2.1 注冊表設(shè)計每個Agent都要有一張實名名片注冊表是整個系統(tǒng)的地基。每個Agent接入時向注冊表登記一份元數(shù)據(jù)內(nèi)容包括Agent的全局唯一ID、名稱、描述、能力標(biāo)簽、通信地址比如WebSocket的URL或者消息隊列的主題名、當(dāng)前狀態(tài)、負(fù)載指標(biāo)。這張名片會帶一個版本號Agent每次變更能力或者地址名片版本遞增。這里有個很關(guān)鍵的設(shè)計決策注冊表不要做成AP可用性優(yōu)先模型而要傾向CP一致性優(yōu)先模型。為什么不學(xué)Eureka那套因為Agent發(fā)現(xiàn)一旦讀到過期數(shù)據(jù)消息就會發(fā)到一個已經(jīng)不存在的實例上直接導(dǎo)致任務(wù)失敗。相比之下寧可短暫地發(fā)現(xiàn)不到某個Agent也不要發(fā)現(xiàn)到一個幽靈Agent所以Agent-Reach的注冊表內(nèi)部用了Raft協(xié)議做多節(jié)點同步保證三個副本之間的數(shù)據(jù)強一致。實測下來幾個節(jié)點之間的同步延遲在毫秒級別對Agent發(fā)現(xiàn)這種低頻操作完全夠用。名片信息的具體結(jié)構(gòu)是這樣定義的{ agent_id: order-agent-01, name: 訂單狀態(tài)查詢Agent, version: 3, capabilities: [ { name: query_order, description: 根據(jù)訂單號查詢訂單當(dāng)前狀態(tài), input_schema: { type: object, properties: { order_id: {type: string} }, required: [order_id] }, output_schema: { type: object, properties: { status: {type: string}, eta: {type: string} } } } ], transport: { type: ws, endpoint: ws://10.0.1.12:9201/agent }, status: online, heartbeat_interval_sec: 15, max_concurrent_tasks: 10 }這份JSON就是Agent的名片。消費者也就是其他Agent拿到名片后不需要提前知道調(diào)用細(xì)節(jié)只靠名片里的capabilities就能判斷這個Agent能不能幫我干活、該怎么傳參數(shù)。接口契約的問題在這里就解決了以前是代碼里硬寫函數(shù)調(diào)用現(xiàn)在是數(shù)據(jù)驅(qū)動的動態(tài)路由。2.2 能力目錄與匹配邏輯讓誰該處理這件事變成可計算的注冊表只是存儲能力目錄才是智能的地方。能力目錄負(fù)責(zé)維護能力名到Agent集合的映射并對外提供匹配服務(wù)。比如調(diào)用方傳一個自然語言描述或者結(jié)構(gòu)化的任務(wù)標(biāo)簽?zāi)夸浄?wù)返回能處理這個任務(wù)的Agent列表按匹配度排序。最開始我直接用關(guān)鍵詞匹配能力名后來發(fā)現(xiàn)根本不夠用。同樣是查訂單這件事A Agent管的是B2C訂單B Agent管的是B2B訂單光看能力名query_order分不出來。所以我把匹配升級成了兩層第一層是硬匹配基于能力標(biāo)簽的精確匹配速度快適合已知明確標(biāo)簽的調(diào)用第二層是軟匹配用Embedding做語義相似度計算調(diào)用方發(fā)來的任務(wù)描述和已有Agent能力描述算余弦相似度大于一個閾值才進入候選集。軟匹配的引入讓Agent-Reach對上層應(yīng)用非常友好——調(diào)用方不需要記住每個Agent的能力名只要用一句人話描述任務(wù)系統(tǒng)幫他找Agent。這一步當(dāng)時落地的時候花了不少功夫踩過Embedding模型選型的坑后面會詳細(xì)講。2.3 消息路由層設(shè)計請求/響應(yīng)和異步任務(wù)兩條腿走路消息路由是第三個模塊也是通信語義的核心。Agent之間協(xié)作的模式其實就兩種一種是同步的請求/響應(yīng)比如幫我查一下訂單12345的狀態(tài)立刻要結(jié)果另一種是異步任務(wù)投遞比如幫我把這批1000個訂單做異常回訪不用立刻出結(jié)果完成后通知我。Agent-Reach對兩種模式分別做了通道設(shè)計。同步通道直接走WebSocket長連接實現(xiàn)上類似一個輕量RPC異步通道則持久化到內(nèi)嵌的消息存儲里Agent上線后拉取積壓任務(wù)。之所以不用外部隊列是因為異步任務(wù)數(shù)量和Agent會話狀態(tài)有強關(guān)聯(lián)存到注冊表同一套存儲里反而簡單——Agent斷線期間的任務(wù)會在它恢復(fù)心跳后自動補發(fā)。路由決策本身也不復(fù)雜按照這個優(yōu)先級處理調(diào)用方顯式指定了agent_id直接定向投遞調(diào)用方傳了能力名路由層查能力目錄取匹配度最高的在線Agent調(diào)用方什么都沒傳只有一段任務(wù)描述路由層走語義匹配如果候選Agent都在忙達(dá)到max_concurrent_tasks上限任務(wù)進入等待隊列而不是直接失敗。前三條都好理解第四條值得多說一句。Agent-Reach默認(rèn)不丟任務(wù)有背壓機制。調(diào)用方發(fā)來一個任務(wù)如果目標(biāo)Agent繁忙這個任務(wù)會在路由層排隊由調(diào)用方?jīng)Q定等待超時時間。實際項目里我會建議調(diào)用方設(shè)置一個合理的超時默認(rèn)30秒超過就返回繁忙請稍后再試由上層Agent決定是換個Agent還是告訴用戶稍等。2.4 客戶端SDK的邊界只做三件事絕不多做客戶端SDK的設(shè)計初衷是接進去簡單拿到別的Agent的能力簡單發(fā)消息簡單。所以SDK只封裝了三類能力注冊與心跳、發(fā)現(xiàn)與訂閱拿到名片、監(jiān)聽Agent上下線事件、消息發(fā)送與接收同步和異步兩種模式。有個很刻意的設(shè)計SDK不做Agent能力編排不做多步流程控制也不內(nèi)置提示詞模板。這些交給上層Agent框架或者業(yè)務(wù)流程去處理。Agent-Reach是一個路由器而不是大腦大腦應(yīng)該屬于每個Agent自己這也是我堅持的原則。如果SDK越界做了編排Agent的自主性就被架空了那就跟傳統(tǒng)ESB服務(wù)總線沒有本質(zhì)區(qū)別了。3. 核心模塊逐行拆解注冊表、心跳與路由的實現(xiàn)細(xì)節(jié)這一節(jié)直接上實現(xiàn)。Agent-Reach服務(wù)端我用Go寫的原因很簡單單機并發(fā)吞吐高、部署就是一個二進制文件、內(nèi)存占用小。客戶端SDK先做了Python版本因為接Agent的團隊主力語言就是Python后來補了TypeScript版本給前端低代碼平臺用。3.1 注冊表存儲結(jié)構(gòu)一張表搞定所有元數(shù)據(jù)注冊表底層用SQLite單機模式或TiKV集群模式存儲但對外暴露的是內(nèi)存視圖。Agent的元數(shù)據(jù)維護在內(nèi)存里的一個并發(fā)安全Map里key是agent_idvalue是完整的元數(shù)據(jù)對象。每次寫入或者更新時同時寫持久化存儲并廣播變更事件。Go語言里這個結(jié)構(gòu)大致是這樣type Registry struct { mu sync.RWMutex agents map[string]*AgentMeta byCaps map[string]map[string]struct{} // capability - set of agent_id watchers map[string][]chan AgentEvent } type AgentMeta struct { AgentID string json:agent_id Name string json:name Version int json:version Capabilities []Capability json:capabilities Transport TransportInfo json:transport Status AgentStatus json:status LastHeartbeat time.Time json:last_heartbeat } type AgentEvent struct { Type string // registered, updated, offline, online AgentID string Meta *AgentMeta }byCaps這個反向索引是匹配性能的關(guān)鍵。能力匹配的請求一來先按能力名取Agent集合再逐個看狀態(tài)和負(fù)載避免了全表掃描。注冊、更新、心跳都通過mu.Lock()保護這個鎖在低并發(fā)下毫無壓力但到了Agent數(shù)量上百、心跳頻率高的場景單把大鎖會成為瓶頸。我后來做了分片鎖優(yōu)化按Agent ID哈希分成32個分片各自獨立加鎖吞吐量提升明顯。3.2 心跳機制與僵尸Agent清理心跳的設(shè)計要回答兩個問題多久算超時超時了誰負(fù)責(zé)清理我的做法是Agent默認(rèn)每15秒發(fā)一次心跳注冊表在3個心跳周期45秒沒收到就標(biāo)記為offline再過2個周期75秒還沒恢復(fù)就把Agent從活躍列表里移除并廣播下線事件。這個時間窗口不是拍腦袋定的跟Agent的業(yè)務(wù)類型有關(guān)系——客服Agent 45秒沒心跳基本就是進程掛了但如果是有長耗時任務(wù)的Agent比如批量處理回訪進程活著但主線程被阻塞心跳發(fā)不出去也是常事。所以我在心跳API之外還加了一個獨立的/ping探活接口路由層的健康檢查用這個接口注冊表的離線判定用心跳兩者分離。僵尸Agent的清理邏輯我建議做成軟刪除。不直接從agents里抹掉元數(shù)據(jù)而是只在byCaps活躍索引里摘除元數(shù)據(jù)保留24小時方便排查問題。線上問題排查時你會感激這個設(shè)計——Agent崩潰后你想查它崩潰前的元數(shù)據(jù)版本如果被物理刪了就得從頭查日志。3.3 消息路由的投遞語義At-Least-Once與去重Agent之間消息投遞的語義我直接定成了At-Least-Once至少一次。這不是偷懶是成本權(quán)衡下的理性選擇。Exactly-Once在高吞吐消息系統(tǒng)里要靠事務(wù)消息或冪等消費來逼近對Agent協(xié)作這個場景來說成本太高。At-Least-Once配合消息里的全局唯一ID讓接收方做冪等去重效果足夠。每個消息的骨架長這樣{ message_id: uuid-v7-xxxx, trace_id: trace-abc-123, task: { type: sync, capability: query_order, input: { order_id: 20250101001 }, timeout_ms: 30000 }, source: { agent_id: pre-sale-agent-01, session_ref: chat-session-7788 }, target: { agent_id: order-agent-01 } }message_id是全局去重的依據(jù)UUID v7自帶時間排序?qū)懭氪鎯Φ臅r候?qū)λ饕押谩race_id用來串起一次跨Agent協(xié)作的完整鏈路——用戶的一個問題可能觸發(fā)三個Agent先后處理靠trace_id能把整個鏈路的行為日志撈出來。這個字段特別值得重視沒有它排障就是大海撈針。路由層接收到消息后按如下流程處理校驗target.agent_id是否在線在線則通過WebSocket把消息推送過去等待接收方ACKACK不代表任務(wù)完成只代表消息被Agent進程收到了如果30秒內(nèi)沒有ACK標(biāo)記為投遞失敗重試最多3次重試仍失敗消息進入死信表同時給調(diào)用方返回一個投遞超時響應(yīng)。這里有個小坑WebSocket連接本身可能假死。TCP連接還在但Agent進程已經(jīng)卡死消息發(fā)過去沒有響應(yīng)。所以ACK超時機制必須存在不能只靠TCP層面的連通性判斷。3.4 Python SDK的接入代碼三行登記一行發(fā)消息Python SDK的目標(biāo)是讓接入成本降到最低。Agent上線時的注冊代碼from agent_reach import AgentReachClient, SyncCall client AgentReachClient(registry_urlws://reach-server:8800/registry) # 聲明能力完成注冊 client.register( agent_idorder-agent-01, name訂單狀態(tài)查詢Agent, capabilities[ { name: query_order, description: 根據(jù)訂單號查詢訂單當(dāng)前狀態(tài), input_schema: {...}, output_schema: {...} } ] ) # 處理入站請求 client.on_capability(query_order) def handle_query_order(input_data: dict) - dict: order_id input_data[order_id] status query_order_db(order_id) return {status: status, eta: 2025-02-01 14:00} # 啟動監(jiān)聽開始接收消息 client.start()再看出站調(diào)用一個Agent想調(diào)用另一個Agent的能力時result client.call_sync( capabilityquery_order, input{order_id: 20250101001}, timeout_ms30000 ) # Business 語義錯誤 if result.get(error_code): fallback_to_another_agent(capabilityquery_order_v2) print(result[data][status])call_sync內(nèi)部封裝了能力發(fā)現(xiàn)、路由請求、等待響應(yīng)、超時重試這幾件事。對上層調(diào)用方來說就是一行函數(shù)調(diào)用完全不用感知對方Agent到底在哪臺機器上、用的是什么框架、內(nèi)部怎么實現(xiàn)的。這種動態(tài)發(fā)現(xiàn)統(tǒng)一契約的體驗比自己在代碼里寫死HTTP調(diào)用要舒服得多改一個Agent的部署位置系統(tǒng)里的其他Agent什么都不用動。4. 接入真實業(yè)務(wù)三類Agent跨框架協(xié)作的完整通路設(shè)計講完了來看實際接入效果。當(dāng)時我們在測試環(huán)境搭了三類AgentA跑在LangChain上B是CrewAI里定義的角色型AgentC是一套完全自研的規(guī)則加LLM混合Agent。三個框架各走各的唯一共性就是都裝了Agent-Reach的Python SDK。4.1 LangChain Agent接入用Tool封裝打通最省事LangChain Agent本身有一套Tool機制它把外部功能抽象成Tool來調(diào)用。我做的事很簡單把Agent-Reach的call_sync封裝成一個LangChain的BaseTool。from langchain.tools import BaseTool from agent_reach import AgentReachClient class ReachTool(BaseTool): name: str agent_reach_query description: str ( 當(dāng)用戶需要查詢訂單狀態(tài)時使用。 輸入為訂單號字符串輸出為訂單狀態(tài)與預(yù)計送達(dá)時間。 ) def _run(self, order_id: str) - str: client AgentReachClient(...) result client.call_sync( capabilityquery_order, input{order_id: order_id}, timeout_ms20000 ) return json.dumps(result, ensure_asciiFalse)這樣LangChain的Agent在推理時如果判斷需要查詢訂單就會自動調(diào)用這個ToolTool內(nèi)部走Agent-Reach把任務(wù)路由到訂單Agent。整個過程對LangChain是無感知的——它只覺得自己調(diào)用了一個普通Tool實際上背后的目標(biāo)Agent跑在另一個框架里。4.2 CrewAI角色Agent接入同步轉(zhuǎn)異步避免阻塞CrewAI的多Agent是角色扮演式協(xié)作Agent之間通過Task傳遞工作。這里遇到一個實際問題CrewAI的Agent執(zhí)行任務(wù)時如果卡在一個同步調(diào)用上很久整個流程會變慢。所以我給CrewAI的Agent封裝的是Agent-Reach的異步調(diào)用模式。具體做法是CrewAI的Agent啟動時注冊進Agent-Reach并聲明自己的角色能力當(dāng)CrewAI內(nèi)的Agent遇到需要外部協(xié)作的任務(wù)通過call_async發(fā)出消息不等結(jié)果立刻返回任務(wù)已提交。CrewAI流程繼續(xù)推進外部Agent完成后再通過回調(diào)通知結(jié)果把結(jié)果喂回對應(yīng)的session。這條路跑通之后效果很好CrewAI的內(nèi)部流程沒有被跨框架通信阻塞住整個協(xié)作節(jié)奏更接近真實的團隊工作方式。4.3 自研Agent接入最大的阻力是對話輪次的傳遞自研Agent接入時遇到一個有意思的問題那套規(guī)則加LLM混合Agent里每次對話都要攜帶上下文輪次。一開始我把整個對話歷史塞進消息input里結(jié)果消息體積動不動就幾十KB路由和存儲的壓力都上來了。后來我調(diào)整了消息契約input里只傳必要字段和會話指針真正完整的對話歷史存在Agent自己的持久層里。Agent-Reach的消息體里只帶一個session_ref字段接收方拿到引用后自己去共享存儲里撈上下文。這么一改消息體積降到幾KB幾乎不影響路由性能業(yè)務(wù)側(cè)也更清爽。這個經(jīng)驗很重要消息通道不是數(shù)據(jù)倉庫別把該存庫的東西塞進消息里。跨Agent的消息應(yīng)該是任務(wù)指令必要的參數(shù)引用而不是整包的數(shù)據(jù)搬運。4.4 前端低代碼平臺的TypeScript SDK后來低代碼平臺也要接Agent所以補了TypeScript SDK。瀏覽器的WebSocket客戶端和服務(wù)端交互能力發(fā)現(xiàn)API、消息發(fā)送API都支持。前端腳本里可以這樣寫import { AgentReachClient } from agent-reach/sdk; const client new AgentReachClient({ registryUrl: wss://reach-server/registry, }); await client.connect(); const availableAgents await client.listOnlineAgentsByCapability(query_order); const res await client.callSync({ capability: query_order, input: { order_id: 20250101001 }, timeoutMs: 30000, });低代碼平臺做一個拖拽流程編排每個節(jié)點綁定一個能力調(diào)用幾十種業(yè)務(wù)流程都能拖著拖著就配完不用再為每種流程寫專門的集成代碼。5. 上線前必須面對的五個坑從超時風(fēng)暴到消息亂序上面聽起來一切順利但生產(chǎn)環(huán)境跑起來之后問題一個接一個。我按踩坑的時間順序梳理了五個最典型的問題每個都有實際的思考過程和解決路徑。5.1 坑一注冊表讀寫鎖引發(fā)的超時風(fēng)暴系統(tǒng)上線第一周就出事。某個中午流量高峰突然大量調(diào)用方報超時。查日志發(fā)現(xiàn)注冊表的API響應(yīng)時間從正常2毫秒飆升到800毫秒再一看注冊表的鎖等待嚴(yán)重。根因是這樣的我當(dāng)時byCaps反向索引和agents主Map共用一把大鎖mu。Agent心跳每15秒一次幾十個Agent的心跳本來沒壓力但有個Agent在頻繁更新元數(shù)據(jù)——它的調(diào)用方每次調(diào)完就更新一次最近調(diào)用統(tǒng)計這個統(tǒng)計寫在元數(shù)據(jù)里。高峰期每秒鐘幾十次更新跟心跳的寫鎖、調(diào)用的讀鎖互相排隊鎖競爭直接拖垮了API。解決方式分兩步。第一步把最近調(diào)用統(tǒng)計從Agent元數(shù)據(jù)里拆出去單獨放到Redis里跟注冊表完全解耦第二步把大鎖拆成32個分片鎖按Agent ID哈希分片不同分片的讀寫互不阻塞。改完后單機壓測從原先的每秒約2000次注冊表操作提升到約1.6萬次后續(xù)再也沒在這個位置出過問題。這個坑給了一個教訓(xùn)別把高頻率的統(tǒng)計信息跟低頻的元數(shù)據(jù)放在同一個存儲結(jié)構(gòu)里讀多寫多互相攪和遲早出事。5.2 坑二語義匹配的Embedding模型選型失誤能力目錄的軟匹配最初用的是本地部署的一個通用中文Embedding模型當(dāng)時貪它體積小、部署簡單。上線后發(fā)現(xiàn)匹配效果很差售后退款流程和查詢訂單狀態(tài)明明在業(yè)務(wù)上是強相關(guān)的模型算出來的相似度才0.35低于我設(shè)的0.65閾值導(dǎo)致Agent匹配失敗率高調(diào)用方經(jīng)常收到找不到可用Agent的錯誤。后來做了個對照實驗同一批測試樣本換成當(dāng)前主流的商用Embedding接口相似度直接跳到0.7以上效果好了不止一個檔次。差距主要在于模型的語料覆蓋和訓(xùn)練規(guī)模通用小模型對行業(yè)術(shù)語和業(yè)務(wù)流程的理解深度遠(yuǎn)不夠。最后我采用了雙模型策略離線場景批量任務(wù)、異步分析用本地小模型因為對實時性要求不高、又不依賴外部服務(wù)在線場景同步Agent調(diào)用用小模型先快速粗篩再用大模型精排。粗篩閾值放低到0.5精排閾值0.7這樣既保實時性又保準(zhǔn)確率。5.3 坑三Agent重啟后的狀態(tài)錯亂這個坑很隱蔽。某次訂單Agent發(fā)布新版本重啟后進程起來了SDK自動重新注冊狀態(tài)很快變成online。但老版本進程還沒完全退出它還持有一個舊的WebSocket連接路由層手上的Agent地址是新的老連接也沒斷干凈。于是老進程在半死狀態(tài)下偶爾還能收到新連接建立之前就在途的消息處理完往回發(fā)結(jié)果時結(jié)果發(fā)到了已失效的舊連接上調(diào)用方就丟了響應(yīng)。后來我在SDK里加了一個優(yōu)雅退出流程Agent進程收到SIGTERM信號后先發(fā)一個deregistering事件給注冊表注冊表把該Agent標(biāo)記為draining路由層不再給它發(fā)新任務(wù)只等已有任務(wù)跑完最后SDK再關(guān)閉連接。整個過程強制要求在10秒內(nèi)完成超時就強殺。加上這個機制后發(fā)布期間的丟消息問題基本絕跡。5.4 坑四消息亂序引發(fā)的臟數(shù)據(jù)異步任務(wù)場景下調(diào)用方給目標(biāo)Agent連發(fā)了多條消息——比如批量更新多個訂單狀態(tài)。到了目標(biāo)Agent那邊處理線程是并發(fā)跑的兩條消息的處理完成順序和發(fā)送順序不一致導(dǎo)致先發(fā)起的更新反而后落地最終數(shù)據(jù)庫里的狀態(tài)成了舊的。這個問題在單機單線程的Agent內(nèi)部不會出現(xiàn)但Agent內(nèi)部一旦用線程池并發(fā)處理就必然出現(xiàn)。解決方式在消息語義上做了兩件事一是支持給消息加sequence序號接收方按序處理同一session內(nèi)的消息二是提供一個同步屏障選項——發(fā)送方可以要求只有前一條消息處理完成才允許投遞下一條。這兩種方式實際上把并發(fā)還是順序的選擇權(quán)交還給業(yè)務(wù)方對順序敏感的消息走同步屏障對順序不敏感的批量任務(wù)繼續(xù)保持并發(fā)提升吞吐。5.5 坑五WebSocket連接的半開問題WebSocket連接假死是分布式系統(tǒng)的老熟人。某一端進程還活著但事件循環(huán)卡死了TCP層面看起來連接還在實際上消息已經(jīng)發(fā)不過去。排查這類問題特別費勁因為撥測連通性沒問題但業(yè)務(wù)消息就是石沉大海。我在Agent-Reach里加了心跳Ping/Pong機制路由層每隔30秒給每個Agent連接發(fā)PingAgent收到后必須回Pong。如果連續(xù)3次Pong沒回來路由層就主動斷開連接并標(biāo)記離線。同時Agent側(cè)SDK也加了空閑連接探活——如果Agent覺得自己空閑超過60秒主動發(fā)一個輕量探活消息確保連接不只是看起來活著。這套雙端探活機制上線后假死連接不用再靠人工重啟解決。6. 結(jié)合真實負(fù)載的調(diào)優(yōu)經(jīng)驗從配置參數(shù)到架構(gòu)演進項目跑到第二個月系統(tǒng)漸漸穩(wěn)定了。這時候我回頭看有些參數(shù)和架構(gòu)選擇如果在一開始就能明確能少走不少彎路。6.1 關(guān)鍵參數(shù)清單與建議值很多同學(xué)拿到手第一句話就是參數(shù)該怎么配我總結(jié)了一張常用表都是實測下來比較穩(wěn)的值參數(shù)建議值說明心跳間隔15秒太短會放大無效請求太長導(dǎo)致離線感知過慢離線判定45秒3個周期保證在漏判和誤判之間取平衡同步調(diào)用超時30秒低于這個值慢Agent容易被誤殺高于這個值調(diào)用方體驗差投遞重試次數(shù)3次一次投遞失敗大概率是目標(biāo)Agent抖動3次足夠覆蓋能力匹配TopN3匹配度排名前3的Agent里挑一個可用性最高的消息體大小上限1MB大于1MB的應(yīng)該走共享存儲而不是塞消息體這些參數(shù)不是死的每個業(yè)務(wù)場景要根據(jù)Agent的響應(yīng)耗時和可用性預(yù)期調(diào)整。核心原則是超時時間不要低于Agent的P99響應(yīng)時間否則你會經(jīng)常殺掉那些只是慢但沒壞的Agent。6.2 單機部署到集群部署的平滑過渡Agent-Reach服務(wù)端支持從單機到三節(jié)點的平滑演進。單機模式下所有模塊跑在一個進程里配置一個node_rolestandalone集群模式下節(jié)點分為registry-leader和registry-followerRaft協(xié)議負(fù)責(zé)選主和數(shù)據(jù)同步消息路由層則完全無狀態(tài)可以水平擴展。路由層是無狀態(tài)的這點很重要——它不保存任何會話數(shù)據(jù)所有狀態(tài)都在注冊表里所以水平擴容就是在前面加負(fù)載均衡器后面起新節(jié)點不需要遷移任何數(shù)據(jù)。如果未來想進一步擴展可以把消息的可靠存儲拆到獨立的消息隊列里路由層進一步瘦身成純粹的轉(zhuǎn)發(fā)邏輯。但就目前這個項目的負(fù)載來看日均消息量幾萬條峰值幾十條/秒單機加一個從節(jié)點做故障切換完全夠用沒有必要為了高級感上重型基礎(chǔ)設(shè)施。6.3 可觀測性trace_id是排障的生命線最后強調(diào)一下可觀測性。Agent-Reach給Agent-Reach自己加了一整套鏈路追蹤每次跨Agent調(diào)用都生成一個trace_id從調(diào)用方發(fā)出、路由層接收、目標(biāo)Agent處理、結(jié)果回傳全鏈路日志都打上這個trace_id。排查問題時一條trace_id就能把整條鏈路的時間線拉出來。我強烈建議任何Agent協(xié)作系統(tǒng)都要把鏈路追蹤作為第一優(yōu)先級能力而不是可有可無的錦上添花。Agent協(xié)作的排障難度和單體應(yīng)用完全不同單體應(yīng)用一行堆棧就能定位Agent協(xié)作要跨三四個進程如果沒有貫穿全鏈路的trace_id一個用戶說響應(yīng)慢的問題你可能要花半天時間才能定位到是哪個環(huán)節(jié)慢。加上trace_id后三分鐘就能定位。7. 關(guān)于Agent-Reach后續(xù)演進的一些個人思考項目到現(xiàn)在已經(jīng)跑了幾個月Agent-Reach的價值已經(jīng)驗證過了三個不同框架的Agent通過它實現(xiàn)了互相調(diào)用、動態(tài)發(fā)現(xiàn)、統(tǒng)一契約團隊不再為Agent之間的接口變更和部署位置變更做無休止的聯(lián)調(diào)。我自己在維護過程中總結(jié)了幾件下一步值得做的事。第一是把動態(tài)編排能力加進來。現(xiàn)在系統(tǒng)只解決發(fā)現(xiàn)和路由但Agent之間的協(xié)作流程還是寫死的。如果引入簡單的編排描述語言比如一份JSON定義先調(diào)用A Agent再根據(jù)A的結(jié)果決定調(diào)B還是C那么業(yè)務(wù)流程的變化就不需要改代碼只改編排配置。這個方向我看好但對正確性的要求會高很多得處理好編排流程和業(yè)務(wù)狀態(tài)的一致性問題。第二是多租戶隔離?,F(xiàn)在所有Agent在同一個注冊表里。如果業(yè)務(wù)線多了不同團隊的Agent天然應(yīng)該隔離——A團隊的Agent不能用B團隊的能力。方向是引入租戶概念注冊表按租戶分域能力目錄和消息路由按租戶權(quán)限做校驗。這塊做起來不復(fù)雜但涉及權(quán)限模型設(shè)計得想清楚跨租戶協(xié)作這種邊界情況怎么處理。第三是Agent質(zhì)量度量。系統(tǒng)跑著跑著注冊表里會有大量歷史數(shù)據(jù)——哪些Agent被調(diào)用得多、哪些Agent經(jīng)常超時、哪些能力匹配總是失敗。這些數(shù)據(jù)可以加工成Agent可用性報告、質(zhì)量評分。如果能做出來對上層做Agent調(diào)度決策會是很好的數(shù)據(jù)支撐。最后說說對Agent生態(tài)的一點個人體會。Agent-Reach這類基礎(chǔ)設(shè)施的價值不在于讓單個Agent變聰明而在于讓多個Agent能夠像同一個團隊一樣協(xié)作——各自有專長、知道隊友能干什么、消息能可靠送達(dá)。單Agent的能力天花板終究有限真正的質(zhì)變發(fā)生在協(xié)作層。這個項目讓我比較欣慰的地方是它沒有跟任何具體Agent框架綁定是一個獨立的中間層。等以后Agent框架之間的邊界越來越模糊類似Agent-Reach這樣的通信底座可能會成為Agent架構(gòu)里不可或缺的一塊。如果你手上也有幾套割裂的Agent在跑試試把發(fā)現(xiàn)、路由、契約這三件事抽出來做成一個獨立服務(wù)你會明顯感受到集成成本和變更成本同時降下來。這就是Agent-Reach最核心的一句話總結(jié)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
激情操逼婷婷| 日夜操B| VfJxEwPH| 日韩成人av在线| 9久热| 91蜜桃婷婷狠狠久久综合9色| 亚洲另类视频| 久机视频这只有精品| 超碰久热| 国产AV不卡福利| 中文字幕不卡+婷婷五月| 久久99热这里只有| 婷婷王月天影院| 91色在线 | 日韩| 综合一区二区三区| 久久激情五月婷婷| 99国产99| WWW,色五月| 日韩欧美一区二区三区四区| 五月丁香久久综合精品| 97五月天| 99ER热精品视频| 一起草日本| 丁香六月激情| \\五月天婷婷激情| 开心五月天激情网站| 丁香婷婷五月天激情四射| 伊人无码高清| 九九热99免费视频| 婷婷五月天亚洲天堂| 天天爽天天摸天天爱| 9久热| 久99999热视频在线观看免费| 91在线操逼视频| 超碰无码老师| 91精品久久久久久| 久久人妻www| 五月丁香综合啪啪| 久久婷婷七月丁香| 99er6免费视频热播| 激情美女五月天激情在线| 99激情视频| 五月六月婷| 五月丁香五月综合欧美| 久久玖玖综合| 久久这里只有精品07 | 丁香五月电影| 五月欧美色色五月| www.婷婷五月| 国产.亚洲.欧洲视频在线| 草榴视频网| 九九激情网| 五月天天爽| 欧美色久| 成人做爰A片免费看视频| 丰满老熟妇BBBBB搡BBB| 一起肏在线视频| 精品五月视频婷婷在线观看| 婷婷欧美激情综合| 五月婷婷操操| 婷婷五月丁香91| 婷婷六月插屄激情| www.婷婷| 91九色在线| 久久五月天大美女| 天天操综合网| AV变态另类一区二区| 天天做天天爱天天搞| 亚州日本欧州韩美高青高潮一| 丁香六月伊人| 久久久天堂国产精品女人| 色伊人婷婷| 狠色色狠网| 婷婷五月天亚洲| 这里只有精品视频在线| 婷婷五月天Av| 婷婷狠狠97| 色综合伊人网| 亚洲蜜乳AV| 51成人| 婷婷伊人激情婷婷| 丁香五月天激情| 丁香五月综合网| 婷婷九色| 开心五月网| 欧美性猛交99久久久久99按摩| 九九精品9| 亚洲色色在线| 免费观看亚洲AV片| 色吧五月婷婷| 99热综合在线| 99热这里只有精品99| 九月丁香久久网| 人人操插| 激情综合99| 无码91中文字幕| 五月天色欧美| 综合久久五月天| 9色91视频| 8区视频在线| 九九热手机在线视频| 99热最新| 色婷婷婷婷成人网| 99自拍视频在线观看| 99精品在线| 人人操五月天| 五月丁香人妻| 天堂色婷婷| 久久色五月天| 丁香花五月天激情| 九九99在线免费在线观看视频| 日本操逼九九九九58日本操逼| 超碰久热| 激情五月天啪啪视频| 国产成人av在线| 激情爱爱网站| 粉嫩av蜜桃av蜜臀av| 久久99大全| 人妻久久人妻久久第一区| 九久九精品| 丁香五月婷婷乱| 少妇性按摩无码中文A片| 再綫Av免费視品| 欧美婷婷五月天综合| 天天干 夜夜爽| 婷婷五月亚洲综合| 激情五月综合网| 激情五月天天| 开心五月激情站| 疯狂做受XXXX高潮A片| 婷婷九月色| www夜夜| www,色婷婷| 狠狠色综合精品视频在线| 九久热| 天干夜夜操| 91色综合网站在线| www.五月天| 99日精品视频| 激情综合婷婷| 婷婷五月天熟妇| 丁香五月天操B| 亚洲精品五月| 婷婷五月天AV在| www久久艹| 91丨九色丨熟女|新版| 国产激情婷婷| 婷婷久久五月天丁香| 久9热在线视频| 9月色婷婷| 五月婷婷中文字幕| 97色色婷婷| 99视频久久| 91丨九色丨大屁股| 色级停停| 欧美日本国产欧美日本韩国99 | 97色在线观看视频| 综合在线网| 婷婷五月天基地| 婷五月丁香| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 国产99久久久国产精品免费看| 五月综合亚洲色| 玖玖资源在线视频| 五月婷婷开心爱| 丁香五月综合| 这里只有久久精99| 激情国产五月| 久久婷婷内射| 婷婷色系婷色| 人人操婷婷| 2020日日干| 五月丁香婷婷啪啪| 日韩野外 无套| 日本激情综合| 极品少妇婷婷五月| 色色五月婷婷| 久久久精品人妻录| 久久五月天激情美女| 激情四射五月天| 五月花亭亭| 人人性久久| 色五月婷婷大香蕉| sesesesezonghe| 99色色网| 99热8| av在线免费网站| 9久精品视频| 国产精品成人AV在线| www.久久| 色J香五月天| 欧美在线干| 亚洲春色奇米影视| 韩国激情五月天综合网| 91色综合久久| 五月婷婷综合网| 99热这里只有精品69| 六月婷婷天堂| 人妻人人操| 亚洲一区二区无码蜜乳av| www.henhenl| 天天干,夜夜爽| xxx日本东京热| 色色五月天婷婷丁香| 91五月天| 亚洲激情五月天| 色五月xxx| 九九偷拍网| 九九九九综合| 69er小视频| 成人短视频免费观看| 120分钟婬片免费看| 五月丁香六月激情欧美综合| 九九热这里只有精品首页| 国产AV一区二区三区最新精品| 99热网站在线观看| 超碰人人操在线| 99ER热精品视频| 激情美女五月天激情在线| 99操视频| 香蕉五月婷婷| 五月综合久久| 婷婷五月色情| 第四色婷婷色五月| 五月婷婷激情四季| 色色五月天网站| 91人人爱| 玩熟女五十AV一二三区| 欧美精品999| 天天五月情| 色综合爽| 4399在线观看免费高清黄色视频| 婷婷五月天久久| 婷婷五月18永久免费视频| 99热国品免费| 最新日韩久热免费视频看看| 亚洲啪啪自拍| 五月丁香色欲| 婷香五月激情视频| 久久久婷婷婷| 丁香五月人妻熟女| 成人噜噜网| 秋霞AV淫| 97婷婷丁香| 欧美69色| 丁香五月www| 99热这里只有精| 这里只有精品久久| 五月丁香中文字幕| 麻豆123区| 精品色情一区二区三区四区| 激情五月综合网最新| 99ri国产精品| 亚洲亚洲人成综合网络| 久久六月天| 综合五月激情| 五月丁香花激情综合网| 五月婷婷福利| 五月天精品综合| 人妻久久做| 色婷婷狠狠爱| www.婷婷.com| 丁香五月www| 激情五月最新网址| 午夜精品久久久久久久爽| 97精品综合久久| 亚洲成人在线播放| 天天操夜夜操| 26UUU欧美| 日本色色视频| 欧美日韩大黄| 狠狠干在线视频| 久久婷婷五月综合97色一本| 婷婷五月综合久久中文字幕| www婷婷| av五月丁香婷婷网| 欧美人人草草| 最近中文字幕在线中文视频| 婷婷五月六月| 天天日天天爽| 99热6精品| 狠狠爱激情网| 久热黄色| 色女人久久| 99欧州偷拍视频| 婷婷午夜精品久久久| 丁香五月久久综合| 色情五月天婷婷| 久热2025无码| www.久久久久久| 九九99偷拍视频| 狠狠狠狠青草| 激情综合网五月丁香| 婷婷色在线观看| 91久操| 久久精品99久久| 丁香婷婷色色| site:901-07.com| 97碰在线视频| 99热在这里只有免费精品| 深爱五月天天| 久久66精品| 天天天天天久久久久久| 丁香五月婷婷偷拍| 激情综合网五月婷婷| 大香蕉网站,大香蕉综合| 超碰资源在线| 香蕉久久国产AV一区二区| 99ri国产在线| 丁香婷婷五月| 色爆五月| 9久热在线视频精品| 色色色色综合网| 伊人久久大香线蕉av一区| 五月丁香婷婷色色| 亚洲日韩26uuu| 激情纯色婷婷五月天在线不卡视频| 五月天六月丁香| 色五月五月天| 色五月欧美| www.久久| 婷婷99狠狠躁天天躁| 亚洲激情av| 99精品无码| 九九av| 久久婷婷五月| 99免费青青蜜臀| 色婷在线视频| 欧美成人无码一区二区三区| 婷婷五月丁香五月天| 停停五月丁香| 久久久久9| 激情婷婷激情在线不卡| 大香蕉精品视频| 99re最新地址视频| 思思久久96热在精品国产,| 久久欧洲综合网| 婷婷五月天Av| 婷婷色色网站| 99热18| 激情五月婷婷综合视频| 超碰99久久| 五月香婷婷| 777米奇影视第四色| 婷婷六月激情综合| 欧美日韩成人在线网| 无码九九| 99er6热在线观看精品6| 91九色精品熟女内射| 日本不卡一区二区三区| 99热亚洲| 天天干天天日日| 九九精品视频在线6| 丁香六月欧美| 国产亚洲成AV人片在线观黄桃| 日韩av在线播放综合网| 激情综合网丁香| 天天插轮理| 噜噜色噜噜网| 天天插天天干| 久久婷婷综合网| 亚洲色综久久五月| 狠狠搞狠狠操| A级毛片高清免费不卡播放谢谢谢谢| 97人人看一| 九九伊人网| 天堂草在线看www| 婷香五月激情视频| 日本色色色色色色色色一色二色| 婷婷五月花| 综合久久首页| 99在线看片| 亚洲无线视频| 婷婷丁香黄色| AV美美午夜| 夜丁香五月婷婷| 色墦五月丁香| 九热电影av| 婷婷五月丁香av网站| 另类视频五月天| 亚洲国产精品二二三三区| 色色色干| 97超碰在线免费观看| 人人摸人人操人人爱| 成人片在线播放| 五月婷婷官网色| 中文字幕日本最新乱码视频| 九九激情网| 久久AV电影| 色色色热| 超碰二区| 婷婷五月在线观看| 综合超碰熟| 夜夜骑日日操| 991国产精选视频在线播放下载| 色婷婷电影| 好看的国产精品| 久久狠狠干| 九九精品热| 网色99| 超碰爱爱爱| 麻豆忘忧草午夜| 亚洲欧洲自拍图片专区五月天| 六月婷婷影院| 久久久天堂国产精品女人| 无码色色色色色 | 久久久久9| 日本久久久97| 色五月婷婷久久大| 欧美日综合| 国产午夜精品一区二区三区嫩草| 综合激情专区| 亚洲色婷婷婷婷人人爽| 99色在线| 99热在线免费观看精品| 亚洲成人综合在线| 色五月丁香总合网| 无码人妻电影| 丁香九月激情久久| 婷婷色婷婷| 伊人大蕉香| 丁香五月婷在线观看| 日逼AV影音先锋男人资源站| 91久久婷婷| 91超碰在线观看| 在线免费视频caop| 另类五月激情| 婷婷五月综合免费在线| 99热99热不卡| 婷五月天| 色停停五月,在线观看| 区啪精品| 一起草无码| 久久综合影院| 国产精品成人在线| 精品人人操| www.操.com| 亚洲视色| 婷婷色五月大香蕉在线观看| 91视频精品99| 欧美黑人大吊| 色婷五月天| 狠狠色婷婷| 色综合五月| 久久久www| 99热免费| 黑人无码一区| 色99在线| 五月天激情网图片 - 百度| 亚洲无码色| 另类天堂| 成人色图情色成人网 www.5b5b5bcom 五月天| 91中文在线| 男人综合网| 亚洲激情四射色| 五月丁香六月婷婷不卡免费无码| 激情五月天色播| 婷婷丁香午夜综合影视| 99久久超级| 色导航色婷婷五月天在线观看| 色色色色丁香| 99热在线观看免费精品| 99热欧美精品| 色婷婷天堂| 97九色视频| 天天做天天爱天天爽综合网| 99ri精品在线| 日良久久| 婷婷五月激情综合| jiZZdr| 天天人人综合| 九月丁香网婷婷| 99色视频在线| 91久久精品无码一区二区三区| 婷婷五月天在线综合| 久热丁香| 99热99干| 日逼免费视频| 亚洲啪啪网| 激情色色色| 天天久久综合| 欧美三级黄色片久久| 夜夜骑夜夜撸| 五月婷婷香蕉| 一本久久婷婷| 久久性爱视频这里只有精品 | 亚洲色激婷| 激情网五月天| 日韩精品色| 影音先锋五月天婷婷丁香在线观看| 99re久热只有精品6在线直播| 色一情一乱一乱一区91Av| 久久久人妻人伦| 久久婷婷五月天激情新地址| 99re思思久久| 久久这里只有精彩| 红桃91人妻爽人妻爽| 九九99免费理论| 六月丁香婷婷天堂| 99热免费18| 丁香五月婷婷网| 丁香五月六月久久综合| 狠狠 久久| 97极品在线| 清色五月天| 玖玖色资源| 久久五月婷| 亚洲色综合性| 超碰二区| 六月激情网| 色色亚洲五月天| 婷婷久久久久| 九九激情| 天天干,夜夜爽| 六月伊人婷婷| 无码yw| 国产肥白大熟妇BBBB视频| 五月婷婷啪啪网| 婷婷丁香五月麻豆| 亚洲在线播放| 免费看欧美成人A片无码| 色综合五月| 婷婷成人综合五月| 婷婷成人网五月天| 91啪啪网| 99久久超级| 色综合久久88色综合天天看| 色婷婷电影网| 日本韩国视频在线观看社区免费的9| 五月丁香欧美在线| 丁香色六月婷婷| 91九九热| 婷婷丁香在线| 久久丁香五月| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 久久66精品| 久婷狼色诱惑在线| 丁香婷婷五月| 婷婷五月播| 青青草伊人婷婷| 丁香 久久| 婷婷综合成人五月天| 九热...av| 综合狠狠干| 少妇被下春药玩弄A片| 五月婷婷丁香综合,亚洲天堂| 日本久久人| 99久久天堂婷婷| 六月婷婷五月丁香| 99热精品中文字幕| 婷婷五月天色综合翘| 丁香五月激情综合| 九九热大香蕉| 激情宗合网激情五月天| 色~性~乱~伦~噜| 99九九99九九九视频精品| 超碰成人在线观看| 五月婷婷激情五月| 先锋资源996| 中文字幕综合| 五月激情四射网站| 色五月婷婷久久| 99视频只有精品| 中文字幕簧片| 色婷婷视频| 亚洲性视频| 五月激情在线| 91青娱乐青青草| 天天日天天狠狠操| 97干在线看| 大香蕉伊人丁香五月| 狠狠操狠狠操| 美女五月天| 色综合久久五月天| 欧美狠狠草| 一级精品999WWW| 国产综合婷婷| 色九九九综合| www.99热国产| 少妇水多A片太爽了| 欧美槡BBBB槡BBB少妇| 99熟女视频| 久久久精品色| 99re思思精品视频在线观看| 大香蕉婷婷色| 999九九九久久久99HD| 国产综合色婷婷精品久久| 五月色俺婷婷| caopeng超碰| 丁香六月婷| 婷婷久久影院| 久久婷婷色情7777网站| 97九色视频| 99热有精品在线观看| 亚洲区在线| 色九月丁香婷婷蜜桃在线观看| 婷婷激情视频| 色婷婷久久| 996er热| 99热这里只| 五月天成人在线视频网站| 免费婷婷| 色情久久久| 狠狠狠狠狠狠狠狠| 五月久久婷婷天堂视频| 精品五月天| 毛片毛片毛片毛片| 停停五月色宗合| 婷婷五月亚洲一本在线丁香| 26uuu国产激情视频| 丁香桃色网| 综合激情五月天六月婷免费视频| 天天射影视综合网| 免费试看小视频 99| 性生活久久人妻| 26UUU欧美| 久久综合五月天| 色婷婷裸体色性在线| 婷婷五月激情视频在线| 五月亚洲| 天天爱综合网| 婷婷香蕉| 大香蕉久久青青| AV网址大全在| 爆乳熟妇一区二区三区爆乳| 天天天操天天天爰| 另类图片五月天婷婷| 狠狠干伊人| 日本五月婷婷| 老司机日日夜夜青草| 久久久婷婷婷| AA片在线观看视频在线播放| 激情五月天第四色| 91九色国产| 天天艹夜夜爽| 天天插天天爽| 亚洲五月婷婷| 久久婷婷五月综合啪| 99热精品中文字幕| 狠狠色丁香乆乆| 婷婷五月天中文字幕| 色区久久| 成年人99热| 免费五月婷婷网| 99久.| 国产亚洲色婷婷久久99精品91| 色欲av伊人久久大香线蕉影院 | 天天舔天天爽| 久久性操| 色婷婷久久| 久久综合五月情| 丁香青青五月天| 色欲天天综合网| 天天开心婷婷丁香五月| 五月激激激情综合网| 9 1超碰九色| 久久caop| 久久刺激网| 人妻操逼视频。| 五月宗合激情网| 五月天久久网站| 性做爰1一7伦| 182TV亚洲| 国产精品色色色色| enecarbon-materials.com污K127封锁请涟系@wip1688 | 久久9精品| 亚洲精品a成人在线播放| 伊人色五月| 亚洲精品操一操、噜一噜、摸一摸、爽| AV九九| 日日撸日日操| 五月婷婷婷婷| 狠狠色综合图片| 大香蕉AV在线| 色五月激情五月天| 亚洲尤物在线| 99在线免费视频| 99热精品在线观看| 超碰在线资源| 99综合| 六月婷婷网站| 91大屁股精品| 少妇AB又爽又紧无码网站| 色娸娸综合网| 99精品这里只有免费视频| 色婷亚洲| 久久曰曰| 美女黄频aⅴ视频| www,五月天激情| 日本色狠狠| 大战熟女丰满人妻AV| 91丨九色丨熟女|新版| 日韩一66精品| 婷婷六月天| 91黄色五月天视频| 凹凸探花电影| 婷婷丁香久久| 婷婷五月天亚洲综合| 色情五月丁香婷婷网| 亚洲第一视频 久久| 成人AV在线电影| 色综合色色| 97操碰在线视频| 丁香五婷| 九九视频这里是精品五月| 久草五月天| www久久久久久久久久久| 97人人干| 天天日天天爽夜夜爽| 五月丁香网站| 性韩日色婷婷五月天激情啪啪XXX| 亚洲第一色色色| 色婷婷六月天| 激情小说色五月| 色情综合| 丁香五月婷婷香| av在线免费播放观看| 丁香五月色情| 婷婷亚洲综合| 亚洲小电影在线观看黄999| 五月婷婷六月少妇激情| 色狠狠综合| 色丁香五月| 久久这里只有精品视频1| 人妻熟女一区二区AV| 婷婷五月69| WWW久久久| 超碰99成人在线| 综合网五月天123| 国精产品一区一区三区免费视频| 99碰碰中文| 99国产性感视频| 91妻人人爽人人看片| 精品久久婷婷五月天| 五月天.com| 婷婷色中文字幕| 色色色色热| 丁香五月激情欧美| 亚洲日日日| 日韩ww| 五月激情精品视频| 色婷婷五月综合| 五月婷婷色欲| ...婷婷国产成人亚洲日韩| 婷婷天天日婷婷| 色色色综合网| 九九青草热| 日韩av免费版| 有哪些A片网站| 婷婷五月天最新网址| 亚洲性图一区二区| 激情久久久| 一起操 91N.com| 婷婷色色婷婷| 欧美激情 日韩无码 婷婷 五月天| 五月丁香久久久日婷婷久久婷婷日| 亚洲色五月天是什么| 丰满女老板BD高清A片| 激情五月天之六月婷婷| 婷婷情色开心五月天99| 五月天伊人手机在线播放AV| 欧美搡BBBBB摔BBBBB| 思思热思在线精品视频| 在线视频99| 9久热精品在线视频| 日本www五月婷婷| 五月婷婷色播| 丁香五月视频在线观看| 国产免费一区二区在线A片视频| 欧美内射AA| 99精品视频偷拍| 五月天激情视频| 国产精品成人网站| 色欲一二三| 婷婷五月超碰| 国产午夜一区二区三区| 大香蕉久热| 99视频网址| 丁香婷婷色情| 人人九色| 伊人干综合| 99热综合| 婷婷 亚洲图片 丁香| 岛囯综合激情网| 激情五月激情综合网| 丁香六月激情毛片| 久久人人妻| 草榴视频网| 五月天婷婷色综合| 五月婷婷久久内射| 激情丁香五月| 另类视频综合| 激情无码五月天| 亚洲天堂热| 激情爱爱网站| 日本三级中国三级99人妇网站| 婷婷五月天成人导航| 亭亭玉月丁香| 色欲资源网| 4399在线观看免费高清毛片| 丁香五月六月综合激情| 久久AAAA片一区二区| 超碰成人影视| 九九色图| 日韩影院三级| 婷婷综合在线| 天天做好综合色| 91919191919久久成人视频| 人人人操B超碰| 91九色精品| 亚洲中文字幕在线观看| 激情www| 99视频极品在线香蕉| www久| 婷婷丁香五月,狠狠综合| 婷婷五月六月| 欧美日韩成人免费在线| 亚洲五月丁| 婷婷五月丁香香蕉| 丁香五月激情综合| 亚洲日日操| 久久精品系列| 国产精产国品一二三在观看| 亚洲综合网激情小说| 日hao1区| 婷婷五月天基地| 日韩操| 98永久精品| 精品一区二区三区免费毛片爱| 五月丁香六月婷婷,婷| 五月婷视频在线观看| 久久人人九九| www开心激情网| 亚洲免费在线观看岛国| 大香蕉啪啪网| 五月丁香成年黄色| 六月婷婷五月丁香首页| 婷婷五月天毛片| 天天噜噜| 精品人妻久久久| 在线精品97| 99热这里只有精品1025| 色噜噜在线| 久久久99日本大片| 午夜无码熟熟妇丰满人妻 | 79亚洲精品少妇| 婷婷99丁香| 99在线精品免费视频| 日本色狠狠| 天天狠狠色噜噜| 青草青草久热这里只有精品| 日韩精品电影| 丁香性爱在线视频| 色情五月天丁香社区| 九九热99视频| 成人午夜在线视频| 五月综合激情| 日本色天堂| 五月丁香婷婷三级| 天天开心天天色| 青青久在线视频免费观看| 99热地址| 日日操,天天操| 九九家庭影院| 91精品无码| 日本欧美成人片AAAA| 色狠狠色噜噜AV天堂五区消防| 99久热视频在线| 激情综合婷婷| 成功精品影院| 久噜久噜| 五月丁香色色综合| 97影院一级片| 視频福利乱色| 青吴乐视频| 少妇水多A片太爽了| 五月天婷婷在线观看| 色青五月天| 久久作爱| 热久久这里只有三级视频| 激情综合网五月天| 婷婷五月骚厕所| 日本一级黄色电影| 精品网站:999WWW| 色就色94欧美setu| 日韩成人无码| 丁香五月婷婷基地| 久久久18| 五月天狠狠| 天天搞天天色综合| 婷婷五月天777| 9er热在线精品视频| av国产精品偷| 久久五月天色婷婷| 热日韩欧美| 人妻内射一区二区在线视频| 97精品自拍| 99热在线精品观看| 无月播播激情在线观看视频| 久久人妻系列| 亭亭色天香| 狠狠干五月天婷婷网| 狠狠爱婷婷色| 色五月大香蕉婷婷| 婷婷丁香综合| 毛片九九九九九九| 日本女色人人| 九七色色六月丁香| 666555。COm毛片| 亚洲天天操| 99这里只有| 人人摸人人澡人人| 热99在线精品| 久久丁香久久| 婷婷四色五月| 艾小青av| 天天操天天日天天爽| 国产精品色色色色| 五月婷在线色视频| 激情婷婷综合| 婷婷操逼网| 婷婷亚洲五| 3pAV| 五月色婷婷影视在线电影| 亚洲中文字幕网| 亚洲精品色色| 色9999日韩国产| 丁香五月自拍| 色婷婷婷婷| 日本情色一区二区| 婷婷五月丁香99| 99热久久日本| 热久91| 亚洲成Av人片乱码色第1集| 免费无码毛片一区二区A片| 26uuu亚洲| 久久婷五月| 婷婷大乡焦噜噜| 日操五月婷| 久久婷婷成人视频| 开心五月丁香综合久久| 一级A片天天操夜夜操| 丁香五月激情天AV无码| www久久久| 三级三久久线久久99久目本WW| 婷婷激情五月天激情小说| 婷婷五月丁香99| 五月丁香综合影院| 亚洲黄色网址| 五月天色色无码| 国产看真人毛片爱做A片| 成人做爰A片免费看网站找不到了| 99男人的天堂| 高清无码入口| 久色精品| 国产精品色色| 色噜噜丁香| 六月婷婷AV| 91超碰人人操| 97人人草| 激情网站综合五月天| 97深爱伊人综合| 99热在线这里| AV在线观看网站| 伊人五月天| 曰本久久女| 色情婷| 成人精品人妻| 开心婷婷五月天综合| ww亚洲ww在线观看| 这里只精品| 婷婷六月久久综合导航| 色综合久久天天综合网| 无码少妇高潮喷水A片免费| 26uuu| 超碰国产在线播放| 五月丁香色婷婷色| 超碰av天堂| 五月天激情偷拍| 99久久黄色顶级视频| 99惹精品视频| www.99热最新视频8| 丁香五月天啪啪| 婷婷射丁香| 婷婷的激情五月| 深爱五月婷| 六月丁香婷| www九九免费视频| 色婷综合| 91成人电影| 99久久99视频只有精品| 色婷婷丁香五月高清在线| 人妻系列久久久久久久久久久| 91色综合网| 五月丁香六月婷婷综合网| 色五月亚洲五月天| 久久久久人妻中文| 99热只有这里有精品| 五月天丁香网| 熟惀91九色在线| www.爱婷婷.com| 欧美丁香婷婷天天操| 天天日,天天射,天天舔| 婷婷五月天激情基地| 97丁香五月| 色五月婷婷五月| 婷婷国产五月天17c| 日韩成人电影在线播放| 五月激情五月丁香| 激情五月丁香亭亭| 99精品在线观看| 9久热精品在线视频| 99a级片| 色色色色色爱| 婷婷五月婷婷| 啪精品| 人人干人人干骚美女| 五月综合激情图片| 婷婷五月天偷拍| 激情无码网| 99久视频| 影音先锋五月婷婷| 91九色 婷婷| 婷婷色网| 特级西西4444www无码| 五月婷婷丁香| 熟惀91九色在线| 99热性色| 亚洲综合在线伊人婷| 色区域网站视频| 婷婷五月草| 日本少妇裸体做爰高潮片| 九九色婷婷Av| AV大香蕉| 狠狠的日| 2015在线中文字幕| 亚洲午夜av| 99热这里只有精品 搜| 丁香五月在线| 色综合色色色色色色综合| 久久性爱视频| 99热在线播放| 国产毛片精品一区二区色欲黄A片| 九九精品re免费视频| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 操日本三片99| 激情六月五月婷婷综合网| 日韩综合久久| 九久久九精品视频| 九九久久精品| 婷婷五月色情天| 八戒青柠影视剧在线观看| 99re热精品在线视频| 99亚洲视频| 无码AV免费精品一区二区三区| 91碰操| 开心五月综合激情综合五月| 91狠狠色| 殴美97色| 久久激情综合| 深爱婷婷网| 午夜丁香 婷婷| 2023天天日夜夜爽| 亚洲综合草草| 91919191919久久成人视频| 九月婷婷久久久| 日韩九九| 久久99草五月婷婷| 五月丁香好婷婷姑娘综合网| 激情爱爱网站| 婷婷玖玖丁香| 91dy.av| 伊人激情AV一区二区三区| 久久丁香| 99精品久久久久| 亚洲精品永久久久久久| 鲁鲁色五月| 亚洲狠狠婷婷综合久久久| 亚洲啪视频| 1024欧美看片| 久久婷婷色五月| 色色色九九九五月婷婷| 清色五月天| 久久这里只精品| 啪啪黄页网| 色五月婷婷五月丁香五月| 精品人妻伦一二三区久久| 色综合久久88| 婷婷99狠狠| 99久久精彩视频| 草做免费在线观看| 久久久av久av久片一区二区| 久久这有这里精品| 91久久久久久| 六月丁香射婷婷欧美色图片| 色色色热| 亚洲国产成人AV在线| 婷婷丁香人妻天天久久| 大大香蕉综合在线| 色婷五月天网站| 91九色首页| 91se在线视频| 久久久久久久人妻| 欧美人与性动交CCOO| 色色色激情| 五月天色色网站| 国产操B视频| 午夜色婷婷| 久久久人妻不卡| 91啪啪网| 日本视频欧美观看免费| 青青草成人网| 丁香婷婷色色| 丁香五月婷婷啪啪啪| 六月婷基地| 人妻综合网| www.久久| 婷婷五月综合体验看| 色综合久久中文| 久久精品夜色噜噜亚洲a∨| 五月丁香大相交| 国产67194| 激情五月丁香社区| 亚洲综合丁香五月天| 久久一级片| 99re热在线视频| 人人澡天天色天天做| 色激情五月| 九九热91| 天天操天天操天天操天天操天天操天天操| 狠狠综合网| 日本三级日本三级99| 中文字幕激情综合| www.婷婷五月.com| 99爱免费在线视频| www.99热| 五月丁香综合伦理片| 任我干视频在线观看| 色婷婷综合五月| 国产高潮白浆一区二区| 久久婷婷六月综合| 天天插天天射天天干| 婷婷开心五月| 99视频九九热| 丁香婷婷六月天| 五月婷六月综合在线观看| 色和综合网| 婷婷五月精品中文字幕| 亚洲免费观看高清完整版AV线| 婷婷丁香精品视频在线观看| 色婷久| 色五月婷婷影院| 天天综合网91| 色欲婷婷五月天丁香| 五月丁香色婷婷熟女| AV性爱在线| 91人妻视频| 狠狠情色| 五月色综合| 伦乱天堂| 这里有精品| 婷婷亚洲在线| 久久久久久99精品无码| 99热久| 五月婷婷啪啪网| 综合九色| 欧美99视频| 密臀久久| AA片在线观看视频在线播放| 婷婷丁香高潮了| 99久久综合狠狠综合久久| 激情深爱五月| 色播五月丁香| 91狼友视频在线观看| 黄色AV日韩| 亚洲久久婷婷| 婷婷玖玖丁香| 五月婷婷九| 亚洲 激情 中文| 激情宗合 激情宗合| 第九色区av天堂| 人人综合五月人人婷婷| 成人在线综合| www超碰| 五月婷无码| 色玖玖综合| 狠狠爱综合网| www.人人操人人看人人想人人摸 人人人人操,COM | 五月丁香少妇| 婷婷六月综合激情| 色播五月婷婷五月| 人人色人人摸人人看| 青青草大香| 综合激情站| 天天色综网| 99热99日…..| 亚洲天堂制| 九九色逼| 天天日,夜夜爽| 亚洲婷婷综合视频| 天天爽天天操| 婷婷五月天啪啪| 五月天婷婷影院| 国产精品男人AV不卡| 亚洲操逼片| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 五月成人网站| 丁香性爱在线视频| 婷婷丁香六月天| 4399啪啪视频| 婷婷六月综合基地| www.五月激情红色| 91精品91久久久中77777| 99热精品在线观看| 伊人久久丁香婷婷六月五月综合| 综合九九日本| 久热这里| 99热综合| 九九色之九九色88| 亚洲黄色av网站| 嫩草AV久久伊人妇女超级A | 操B无码视频国语| 99色视频| 热99免费在线| 欧美性丁香色色五月天综合爱爱| 久久婷婷一级片| 五月丁香六月婷婷激情网| 5月婷婷激情6月| 丁香婷婷六月婷婷六月婷婷六月婷婷| 午夜精品人妻无码一区二区三区| 天天婷婷天天| 狠狠色丁香久久| www.玖玖九| 日本少妇裸体做爰高潮片 | 久久AAAA片一区二区| 99啪| 亚洲爆乳无码精品AAA片蜜桃| 中文在线视频久1| 26uuuu精品一区二区| 色丁香五月| 激情五月天。| 丁香五月性| 超碰97干| 色五月婷婷亚洲最大| 狠狠操狠狠爱| 69久久99精品久久久久婷婷| 人人操人人妻| 婷婷香草网| 丁香五月欧美成人| 日本欧美成人片AAAA| 色婷婷色五月色丁香| 婷婷五月天美女| 综合玖玖偷拍| 31色区视频免费看| 性爱激情综合网| 97高清国语自产拍| 97人人草| 激情五月综合婷婷| 色欲久久久久| 婷婷五月天亚洲综合网| WWW五月天| 亚洲天堂热| 色色色色色热| 99精品热视频| 另类激情五月| 午夜丁香综合婷婷|