戰(zhàn):Laya輕量路由與Jev深度復(fù)盤(pán)方案)
給Agent做判斷器這事我一開(kāi)始其實(shí)是拒絕的。市面上不少Agent跑起來(lái)像開(kāi)盲盒模型自己決定調(diào)哪個(gè)工具經(jīng)常在錯(cuò)誤分支上越走越遠(yuǎn)日志翻半天也找不到是哪一步出了問(wèn)題。后來(lái)我在鏈路里塞了一個(gè)獨(dú)立的“判斷器”讓它在每個(gè)關(guān)鍵節(jié)點(diǎn)上決定“該不該做、下一步做什么、做到什么程度”整個(gè)系統(tǒng)的穩(wěn)定性肉眼可見(jiàn)地變好了。圈子里聊得比較多的兩個(gè)方向一個(gè)叫Laya一個(gè)叫Jev。Laya是那種輕量、快速、專門(mén)做第一道閘門(mén)的判斷器Jev則是偏重推理、適合做深度審查和復(fù)盤(pán)的判斷器。兩者到底怎么選、怎么部署、怎么接入現(xiàn)有Agent框架這篇就把我實(shí)測(cè)過(guò)的方案和踩過(guò)的坑一次性說(shuō)清楚。想給Agent加控制層的開(kāi)發(fā)朋友可以參考這份完整的落地記錄。1. 判斷器到底是什么先搞清楚我們要給Agent補(bǔ)什么能力1.1 Agent為什么需要一個(gè)“判斷器”很多Agent項(xiàng)目跑著跑著就失控根源在于大模型本身的概率性輸出。你讓模型決定下一步調(diào)哪個(gè)工具它大概率會(huì)按上下文猜一個(gè)但“大概率”不等于“一定正確”。指令遵循再好的模型在模糊表達(dá)、多輪對(duì)話、長(zhǎng)上下文壓縮之后都可能做出錯(cuò)誤選擇。舉一個(gè)我實(shí)際遇到的場(chǎng)景。一個(gè)客戶支持Agent用戶問(wèn)“我的退款到哪了”模型直接調(diào)用的是“創(chuàng)建工單”而不是“查詢退款狀態(tài)”。從語(yǔ)言模型角度看兩句都跟退款相關(guān)選錯(cuò)情有可原但從業(yè)務(wù)角度看這就是一次事故用戶被導(dǎo)到一條完全錯(cuò)誤的處理鏈路里。判斷器要解決的正是這類“模型自由發(fā)揮導(dǎo)致的確定性缺失”問(wèn)題。判斷器不是簡(jiǎn)單的if-else也不是把Prompt寫(xiě)得更長(zhǎng)。它是在Agent與工具調(diào)用之間插入的一個(gè)獨(dú)立決策層職責(zé)可以細(xì)分成三類意圖門(mén)控判斷用戶輸入是否滿足當(dāng)前節(jié)點(diǎn)的執(zhí)行條件不滿足就攔下來(lái)。工具路由從候選工具集合里選出最合適的一個(gè)而不是讓模型自己瞎猜。風(fēng)險(xiǎn)審查在執(zhí)行高成本操作發(fā)郵件、刪數(shù)據(jù)、轉(zhuǎn)賬之前再做一輪確認(rèn)。判斷器可以是規(guī)則、小模型、大模型或它們的組合。Laya和Jev就是兩條不同路線一個(gè)負(fù)責(zé)快一個(gè)負(fù)責(zé)深。1.2 Laya與Jev的兩條技術(shù)路線Laya在設(shè)計(jì)上追求低延遲和高吞吐。它通常是一個(gè)參數(shù)量較小的模型或者是一套規(guī)則加小模型的混合體部署在CPU上就能跑得很舒服。核心能力是快速分類、打分、過(guò)濾和路由。比如判斷用戶輸入屬于“查詢”還是“投訴”從五個(gè)候選工具里選一個(gè)這些都適合Laya干。Jev則追求推理深度。它更適合做復(fù)雜規(guī)劃、任務(wù)分解、錯(cuò)誤審查、安全審計(jì)這類“需要把事想明白”的工作。Jev的參數(shù)量更大需要GPU或較強(qiáng)的推理引擎支持響應(yīng)時(shí)間也明顯更長(zhǎng)。你不能讓Jev處理每一個(gè)請(qǐng)求否則Agent的延遲會(huì)高到?jīng)]法用??梢杂靡粋€(gè)生活化的類比來(lái)記Laya像機(jī)場(chǎng)安檢口負(fù)責(zé)快速分流包里有瓶水還是把刀一兩秒內(nèi)給出結(jié)果Jev像航線調(diào)度中心負(fù)責(zé)規(guī)劃全局路徑遇到惡劣天氣怎么改航線、哪架飛機(jī)先放行需要的是深度推理。Agent鏈路里安檢和調(diào)度都需要只是分工不同。兩者的差別我用表格梳理一下對(duì)比項(xiàng)LayaJev參數(shù)量級(jí)0.5B到3B左右7B到14B甚至更大典型硬件CPU即可流暢運(yùn)行需要GPU或高性能推理服務(wù)單次響應(yīng)時(shí)間幾十毫秒到幾百毫秒秒級(jí)甚至更長(zhǎng)上下文長(zhǎng)度短夠用即可長(zhǎng)支持多輪與復(fù)盤(pán)核心能力分類、過(guò)濾、路由、打分規(guī)劃、審查、分解、審計(jì)典型場(chǎng)景每個(gè)請(qǐng)求都可以過(guò)一遍低置信度升級(jí)、事后復(fù)盤(pán)部署成本低內(nèi)存占用小高需要顯存與算力規(guī)劃1.3 從鏈路位置看選型誰(shuí)該做前端誰(shuí)該做后端選型不是“哪個(gè)更強(qiáng)”而是“哪一層需要哪種能力”。我建議在Agent鏈路的前端放Laya在后端放Jev。前端判斷做在每次工具調(diào)用之前。Laya以極低延遲完成意圖識(shí)別和工具路由把90%以上的正常請(qǐng)求處理掉。這個(gè)過(guò)程不能重一重整個(gè)Agent的響應(yīng)就垮了。后端判斷做在關(guān)鍵節(jié)點(diǎn)或整輪任務(wù)結(jié)束之后。Jev負(fù)責(zé)復(fù)盤(pán)剛才的執(zhí)行路徑有沒(méi)有問(wèn)題是否出現(xiàn)了重復(fù)調(diào)用用戶真正想要的是不是已經(jīng)被滿足這屬于低頻高價(jià)值的判斷慢一點(diǎn)可以接受。更進(jìn)一步可以讓兩者串聯(lián)。Laya先給出一個(gè)置信度當(dāng)置信度低于某個(gè)閾值時(shí)把請(qǐng)求升級(jí)給Jev做深度判斷。這種“快慢結(jié)合”的模式在實(shí)踐中非常穩(wěn)。我后面的部署方案也是按這個(gè)思路搭的。2. 部署前的路線規(guī)劃決定后面會(huì)不會(huì)返工的三個(gè)問(wèn)題2.1 模型從哪來(lái)API還是本地權(quán)重部署判斷器之前先要決定用在線API還是本地權(quán)重。這個(gè)選擇會(huì)直接影響后續(xù)的架構(gòu)設(shè)計(jì)改起來(lái)代價(jià)很大最好一開(kāi)始就想清楚。只做驗(yàn)證和原型直接調(diào)API最省事。注冊(cè)、拿密鑰、按文檔調(diào)一下半天就能跑通。但進(jìn)入生產(chǎn)環(huán)境后問(wèn)題會(huì)冒出來(lái)單次調(diào)用的延遲和費(fèi)用不可控敏感數(shù)據(jù)出網(wǎng)有合規(guī)風(fēng)險(xiǎn)服務(wù)商一抖動(dòng)整個(gè)Agent就跟著抖。本地部署則剛好相反。前期要花時(shí)間拉模型、配推理引擎、做壓測(cè)但部署完就相對(duì)自由。并發(fā)自己控?cái)?shù)據(jù)不出內(nèi)網(wǎng)模型可以按需量化、裁剪、微調(diào)。費(fèi)用主要是硬件成本按調(diào)用量增長(zhǎng)基本是邊際遞減的。我給的決策參考是這樣開(kāi)發(fā)階段用API快速迭代生產(chǎn)階段切到本地權(quán)重如果業(yè)務(wù)本身有強(qiáng)數(shù)據(jù)隱私要求直接本地起步。模型權(quán)重可以從主流開(kāi)源模型托管平臺(tái)下載注意看license是否允許商用以及部署文檔對(duì)硬件的要求。2.2 跑在哪云端GPU、純CPU還是邊緣盒子判斷器的硬件選型取決于“跑什么模型”和“跑在哪一層”。我的經(jīng)驗(yàn)是分三檔云端GPU適合Jev這類重推理判斷器。7B到14B的量化模型在單張消費(fèi)級(jí)或入門(mén)級(jí)專業(yè)卡上就能跑出可用的速度配合vLLM這類推理引擎并發(fā)能力也夠。純CPU適合Laya這類輕量判斷器。1B到3B的量化模型用CPU推理單次響應(yīng)可以控制在幾百毫秒內(nèi)部署簡(jiǎn)單不用搶GPU資源。邊緣盒子適合有視覺(jué)能力或本地優(yōu)先需求的判斷器。比如巡檢Agent需要先判斷畫(huà)面里有沒(méi)有異常再?zèng)Q定要不要調(diào)用大模型做深度分析這時(shí)候判斷器就不適合放云端。邊緣側(cè)我實(shí)際用過(guò)兩種情況可以給你一個(gè)方向參考。在RK3588上部署YOLOv8這類目標(biāo)檢測(cè)模型先導(dǎo)出成RKNN格式并做量化單幀推理在幾十毫秒級(jí)別完全能在攝像頭端做實(shí)時(shí)判斷。在Jetson Orin系列設(shè)備上跑輕量級(jí)語(yǔ)言模型Orin Nano 8GB可以運(yùn)行量化后的7B模型但生成速度有限適合低頻判斷要做更復(fù)雜的深度推理Orin NX或更高配置會(huì)更穩(wěn)。2.3 并發(fā)怎么扛先想清楚流量模型很多Agent項(xiàng)目部署完才發(fā)現(xiàn)并發(fā)扛不住本質(zhì)是沒(méi)想清楚流量模型。Agent的并發(fā)和普通Web接口的并發(fā)完全不是一回事一個(gè)用戶請(qǐng)求可能觸發(fā)多次工具調(diào)用每次工具調(diào)用又可能觸發(fā)一次判斷器調(diào)用。這意味著用戶并發(fā)是10判斷器服務(wù)實(shí)際承受的請(qǐng)求可能達(dá)到幾十甚至上百。所以判斷器必須拆成獨(dú)立服務(wù)不要和Agent主進(jìn)程混布。同時(shí)在接入層做削峰常見(jiàn)做法是用Redis或消息隊(duì)列把判斷請(qǐng)求先接住再由worker從容地消費(fèi)。推理引擎的并發(fā)也要單獨(dú)配置Ollama里對(duì)應(yīng)的是num_parallel參數(shù)vLLM里對(duì)應(yīng)的是max_num_seqs參數(shù)。容量估算可以先用一個(gè)簡(jiǎn)單公式并發(fā)數(shù) QPS × 平均響應(yīng)時(shí)間。如果一個(gè)判斷器接口QPS是20平均響應(yīng)時(shí)間0.5秒那么至少需要10個(gè)并發(fā)位置再留50%緩沖就是15。但這只是初步估算真正上線前一定要壓測(cè)因?yàn)閠oken生成類服務(wù)的實(shí)際吞吐受顯存、上下文長(zhǎng)度、量化方式影響很大。3. 實(shí)操把Laya和Jev部署成獨(dú)立判斷器服務(wù)3.1 技術(shù)棧選型與目錄結(jié)構(gòu)我選用的方案是FastAPI加Ollama加Redis加Docker Compose。FastAPI負(fù)責(zé)對(duì)外提供HTTP接口自帶請(qǐng)求校驗(yàn)和自動(dòng)文檔開(kāi)發(fā)效率很高Ollama作為本地推理引擎支持拉取開(kāi)源模型并提供兼容接口Redis用來(lái)做任務(wù)隊(duì)列削峰Docker Compose負(fù)責(zé)一鍵拉起整套環(huán)境。如果只是內(nèi)部用一個(gè)極簡(jiǎn)APIFlask也完全夠用。我自己在一些內(nèi)部工具里就用過(guò)Flask包少、邏輯簡(jiǎn)單但一旦要接并發(fā)、做參數(shù)校驗(yàn)FastAPI能省不少事。這里不糾結(jié)框架選型核心是把判斷器服務(wù)和推理引擎分開(kāi)部署。目錄結(jié)構(gòu)我大致是這樣agent-judger/ ├── app/ │ ├── main.py # FastAPI入口 │ ├── schemas.py # 輸入輸出Schema │ ├── judger.py # 判斷器調(diào)用邏輯 │ └── queue.py # Redis隊(duì)列客戶端 ├── docker-compose.yml ├── Dockerfile └── .env3.2 Docker Compose與關(guān)鍵配置判斷器服務(wù)與Ollama用Docker Compose一起編排核心配置如下services: laya-api: build: . ports: - 8000:8000 environment: - LAYA_MODELqwen-laya-1.5b:q4_k_m - JEV_MODELqwen-je-7b:q4_k_m - OLLAMA_HOSThttp://ollama:11434 - REDIS_URLredis://redis:6379/0 depends_on: - ollama - redis ollama: image: ollama/ollama volumes: - ollama_data:/root/.ollama deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] redis: image: redis:7-alpine volumes: ollama_data:沒(méi)有GPU的機(jī)器把ollama服務(wù)里的deploy字段直接刪掉純CPU跑Laya是沒(méi)有問(wèn)題的。首次啟動(dòng)后需要先拉模型在容器里執(zhí)行兩條命令docker compose exec ollama ollama pull qwen-laya-1.5b:q4_k_m docker compose exec ollama ollama pull qwen-je-7b:q4_k_m這里有個(gè)細(xì)節(jié)模型名稱里的量化標(biāo)記很重要。q4_k_m是4-bit量化顯存占用和推理速度比較均衡是我目前用得最多的配置。如果你顯存充足或者只跑CPU可能連量化標(biāo)記都不想用但要記得推理速度會(huì)明顯下降。3.3 關(guān)鍵參數(shù)與調(diào)優(yōu)邏輯判斷器服務(wù)里最關(guān)鍵的參數(shù)是并發(fā)數(shù)、上下文長(zhǎng)度和重試策略。我直接說(shuō)經(jīng)驗(yàn)值再解釋為什么。num_parallel單卡環(huán)境建議設(shè)1到2。設(shè)大了看起來(lái)吞吐高實(shí)際到一定閾值直接OOM得不償失。Ollama默認(rèn)是4我之前沒(méi)改這個(gè)參數(shù)壓測(cè)到并發(fā)20時(shí)進(jìn)程直接崩了。num_ctxLaya設(shè)2048到4096Jev設(shè)8192到16384。判斷器不需要像對(duì)話模型那樣塞超長(zhǎng)上下文上下文越長(zhǎng)推理越慢顯存占用也越高。timeoutAPI層設(shè)30秒內(nèi)部調(diào)用重試最多2次采用指數(shù)退避。Jev偶爾會(huì)出現(xiàn)單次推理超過(guò)20秒的情況超時(shí)設(shè)太短會(huì)導(dǎo)致正常請(qǐng)求被誤判為失敗。隊(duì)列Redis隊(duì)列長(zhǎng)度設(shè)一個(gè)上限比如5000達(dá)到上限直接返回503讓上游Agent走降級(jí)策略。這些參數(shù)不是拍腦袋定的每個(gè)都需要壓測(cè)驗(yàn)證。我一般是先按經(jīng)驗(yàn)值設(shè)好再逐步增加并發(fā)觀察延遲和內(nèi)存的變化找到拐點(diǎn)后回調(diào)20%作為生產(chǎn)配置。3.4 接口約定判斷器的輸入輸出長(zhǎng)什么樣判斷器對(duì)外接口的設(shè)計(jì)直接決定Agent好不好接。輸入我定義為“場(chǎng)景加候選工具”輸出定義為“決策加理由”全部結(jié)構(gòu)化。請(qǐng)求體示例{ scene: customer_service, user_input: 我的退款到哪了, candidate_tools: [create_ticket, query_refund, transfer_human], context: ... }響應(yīng)體示例{ decision: query_refund, confidence: 0.92, reasons: [用戶明確詢問(wèn)退款狀態(tài)], next_action: call_query_refund_api }這里有個(gè)非常重要的原則輸出必須強(qiáng)約束。模型返回任何非JSON的內(nèi)容都應(yīng)該在代碼層直接攔截而不是僥幸解析。我見(jiàn)過(guò)太多Agent項(xiàng)目因?yàn)椤芭紶柦馕龀晒Α倍雎孕r?yàn)最后在極端case上翻車(chē)。用Pydantic定義響應(yīng)模型所有解析失敗都會(huì)被捕獲為judgment_failed然后讓Agent走默認(rèn)策略。這個(gè)設(shè)計(jì)確保判斷器永遠(yuǎn)不會(huì)把錯(cuò)誤信息傳遞給下游工具。4. 接入Agent框架與調(diào)優(yōu)讓判斷器真正落地4.1 判斷器在Agent框架里的位置判斷器不是一個(gè)獨(dú)立運(yùn)行的模型它必須嵌入Agent的主循環(huán)才有價(jià)值。結(jié)合現(xiàn)在主流的Agent編排思路我建議在兩個(gè)位置插入判斷邏輯工具調(diào)用前和整輪任務(wù)結(jié)束后。工具調(diào)用前的判斷由Laya負(fù)責(zé)它決定“這個(gè)請(qǐng)求該不該調(diào)工具該調(diào)哪個(gè)工具”。整輪任務(wù)結(jié)束后的復(fù)盤(pán)由Jev負(fù)責(zé)它審查“剛才的執(zhí)行過(guò)程有沒(méi)有問(wèn)題結(jié)果是否滿足用戶需求”。兩者的調(diào)用頻率完全不同配合方式可以用下面這段偽代碼理解def run_agent_loop(user_request, max_steps5): for step in range(max_steps): decision laya_judge(user_request, candidate_tools) if decision.decision need_human: transfer_to_human() return if decision.confidence 0.6: decision jev_review(user_request, history, decision) if decision.decision none: return result call_tool(decision.decision) if jev_review(history result).is_final: return result這段代碼增加了至少一次模型調(diào)用所以判斷器必須保持輕。這也是我一直強(qiáng)調(diào)Laya要輕量化的原因即使它只是做一個(gè)簡(jiǎn)單的二分類只要延遲高整個(gè)Agent就快不起來(lái)。4.2 降低延遲緩存、閾值、提示詞優(yōu)化判斷器接入后最大的痛點(diǎn)是延遲暴增。我試過(guò)幾個(gè)有效手段按收益從高到低排結(jié)果緩存相同輸入和候選工具組合短時(shí)間內(nèi)直接用上次的決策。我使用短時(shí)TTL緩存緩存時(shí)間設(shè)5分鐘命中率相當(dāng)可觀。低置信度升級(jí)給Laya設(shè)一個(gè)閾值只有置信度低于閾值才升級(jí)給Jev。這個(gè)策略把Jev的調(diào)用量直接降了一個(gè)數(shù)量級(jí)。提示詞里的白名單不把全部工具名塞進(jìn)去而是每次只給最相關(guān)的3到5個(gè)候選顯著縮短生成長(zhǎng)度。服務(wù)預(yù)熱模型加載后第一輪推理往往很慢服務(wù)啟動(dòng)時(shí)會(huì)主動(dòng)發(fā)一條空請(qǐng)求做預(yù)熱避免上線后的首次調(diào)用超時(shí)。延遲優(yōu)化沒(méi)有銀彈但組合起來(lái)效果明顯。我之前把Laya服務(wù)的P95延遲從1.8秒降到了300毫秒主要靠的就是白名單和緩存這兩個(gè)手段。4.3 日志、回退與安全審查判斷器會(huì)出錯(cuò)所以必須有完善的日志、回退和審計(jì)機(jī)制。日志要記錄決策內(nèi)容、置信度、原因和脫敏后的用戶輸入。出現(xiàn)誤判時(shí)這些日志是排查的唯一線索?;赝瞬呗砸礃I(yè)務(wù)風(fēng)險(xiǎn)分層低風(fēng)險(xiǎn)操作可以放行高風(fēng)險(xiǎn)操作寧可放棄也不能亂調(diào)。比如發(fā)送郵件、刪除數(shù)據(jù)這類操作判斷器超時(shí)或失敗時(shí)我傾向于直接轉(zhuǎn)人工而不是讓Agent自己決定。Jev另一個(gè)很有價(jià)值的用途是Agent記憶的安全審查。Agent在長(zhǎng)期運(yùn)行中會(huì)產(chǎn)生記憶這些記憶如果被污染會(huì)持續(xù)影響后續(xù)決策。讓Jev定期審查Agent記憶判斷哪些記憶值得保留、哪些可能誤導(dǎo)后續(xù)行為能有效減少長(zhǎng)期運(yùn)行中的漂移問(wèn)題。這個(gè)思路和Agent安全領(lǐng)域的實(shí)踐方向是一致的。5. 常見(jiàn)問(wèn)題與排查實(shí)錄5.1 部署和接入階段最常踩的坑我把項(xiàng)目過(guò)程中遇到的典型問(wèn)題整理成了速查表對(duì)著排查效率很高。現(xiàn)象可能原因解決方案服務(wù)啟動(dòng)慢或失敗模型未下載完整檢查模型目錄重新執(zhí)行pull命令并發(fā)一上來(lái)就崩潰num_parallel設(shè)過(guò)大顯存溢出調(diào)小并發(fā)觀察內(nèi)存變化輸出JSON頻繁解析失敗模型指令遵循弱提示詞約束不夠用強(qiáng)約束模板加few-shot代碼層強(qiáng)校驗(yàn)Jev頻繁觸發(fā)重試超時(shí)設(shè)太短把timeout調(diào)到30秒改用指數(shù)退避正常請(qǐng)求被誤攔判斷器閾值過(guò)高或樣本偏差降低閾值補(bǔ)充正向樣例CPU推理速度慢模型沒(méi)有量化或上下文太長(zhǎng)換量化版本調(diào)小num_ctx5.2 一次真實(shí)排查過(guò)程并發(fā)從10調(diào)到50后的連鎖問(wèn)題第一次壓測(cè)時(shí)我把并發(fā)從10調(diào)到50結(jié)果Laya服務(wù)的平均延遲從80毫秒漲到2秒整個(gè)鏈路像被掐住了一樣。最開(kāi)始我以為是Ollama并發(fā)參數(shù)不夠把num_parallel從1調(diào)到4結(jié)果情況更糟直接OOM。停掉服務(wù)后排查發(fā)現(xiàn)瓶頸不在模型推理本身而是Ollama單實(shí)例的請(qǐng)求隊(duì)列積壓。請(qǐng)求一個(gè)接一個(gè)排隊(duì)排隊(duì)時(shí)間遠(yuǎn)大于推理時(shí)間。后來(lái)把推理引擎從Ollama換成vLLM并發(fā)能力明顯改善延遲也恢復(fù)到了可接受范圍。這個(gè)案例說(shuō)明一個(gè)道理判斷器服務(wù)必須獨(dú)立部署、獨(dú)立壓測(cè)并且擴(kuò)容要分階段。不能指望一個(gè)默認(rèn)配置扛住所有流量也不能一上來(lái)就把并發(fā)拉滿。5.3 給新手的排查順序建議判斷器出問(wèn)題時(shí)最忌諱的是到處猜。我建議固定一個(gè)排查順序先看日志判斷是超時(shí)、OOM還是輸出格式錯(cuò)誤。單獨(dú)發(fā)一個(gè)測(cè)試請(qǐng)求看判斷器單次調(diào)用是否正常。用壓測(cè)工具直接壓判斷器服務(wù)排除Agent框架的干擾。再走全鏈路測(cè)試確認(rèn)Agent編排邏輯是否影響了判斷器。逐步調(diào)整并發(fā)和閾值每次只改一個(gè)變量。這套流程看起來(lái)簡(jiǎn)單但能省下大量排查時(shí)間。判斷器的核心價(jià)值是確定性和可控性如果在排查階段就一團(tuán)亂麻那這個(gè)判斷器本身就失去意義了。我個(gè)人在實(shí)際項(xiàng)目里的最終配置是Laya用1.5B的量化模型跑在CPU上負(fù)責(zé)前端路由Jev用7B的量化模型跑在GPU上負(fù)責(zé)深度復(fù)盤(pán)中間用Redis隊(duì)列隔開(kāi)避免流量尖峰互相影響。調(diào)優(yōu)大約一個(gè)月后整個(gè)Agent系統(tǒng)在50并發(fā)下能穩(wěn)定運(yùn)行。最后想提醒一句不要追求單個(gè)判斷器模型“看起來(lái)更聰明”判斷器最怕的是不可解釋和不穩(wěn)定。寧可讓它笨一點(diǎn)也要保證每次返回都符合約定。這個(gè)架子搭好之后后面換模型、換硬件都只是微調(diào)不會(huì)再傷筋動(dòng)骨。