計(jì)智能體:防幻覺(jué)架構(gòu)與多Agent協(xié)作實(shí)踐)
1. 項(xiàng)目緣起與整體設(shè)計(jì)1.1 為什么會(huì)有這個(gè)項(xiàng)目做硬件設(shè)計(jì)的朋友應(yīng)該都有體會(huì)電源設(shè)計(jì)這件事兒看著是“選個(gè)芯片、搭個(gè)外圍電路、算幾個(gè)電阻電容”實(shí)際上每一環(huán)都是細(xì)節(jié)。拓?fù)湓趺催x、環(huán)路怎么補(bǔ)償、MOS管驅(qū)動(dòng)電流夠不夠、電感飽和電流留多少裕量、熱耗怎么算任何一個(gè)點(diǎn)拍腦袋后面打板回來(lái)都是改版重來(lái)的成本。我一直在琢磨怎么把大模型真正用進(jìn)硬件設(shè)計(jì)流程里。市面上通用聊天機(jī)器人問(wèn)個(gè)概念還行真讓它幫我算一個(gè)buck電路的電感值、選一個(gè)滿足紋波要求的輸入電容或者檢查一下原理圖里反饋電阻的取值合不合理它要么答得模模糊糊要么一本正經(jīng)地給出一個(gè)完全沒(méi)法用的結(jié)果。大模型在這種場(chǎng)景下暴露出的最大問(wèn)題就兩個(gè)字幻覺(jué)。后來(lái)Deepseek出來(lái)之后我花了挺長(zhǎng)時(shí)間評(píng)估它做硬件設(shè)計(jì)底座的可能性。推理能力確實(shí)能打尤其在數(shù)學(xué)計(jì)算和邏輯推理這類(lèi)任務(wù)上和那些需要“硬湊答案”的模型完全不是一個(gè)畫(huà)風(fēng)。但光有底座不夠要在真實(shí)的電源設(shè)計(jì)流程里用起來(lái)還缺一層能把模型、工具、知識(shí)庫(kù)、校驗(yàn)邏輯串起來(lái)的骨架。這個(gè)骨架就是標(biāo)題里的Harness。這套架構(gòu)搞了大半年斷斷續(xù)續(xù)迭代了好幾版。從最初的“一問(wèn)一答”腳本做到現(xiàn)在的多agent協(xié)作、帶完整防幻覺(jué)機(jī)制的智能體系統(tǒng)中間踩坑無(wú)數(shù)。這篇就把整個(gè)架構(gòu)從頭拆一遍把那些真正有效的設(shè)計(jì)決策和那些讓我返工的坑都整理出來(lái)。1.2 Harness在架構(gòu)里的定位先說(shuō)說(shuō)Harness這個(gè)詞。很多人第一次聽(tīng)到會(huì)以為是個(gè)具體的軟件其實(shí)它在AI工程領(lǐng)域更像是一種“裝配層”的概念。模型是發(fā)動(dòng)機(jī)Harness是底盤(pán)和傳動(dòng)系統(tǒng)。它負(fù)責(zé)把模型、工具調(diào)用、外部數(shù)據(jù)、執(zhí)行流程、結(jié)果校驗(yàn)這些部件裝配到一起形成一個(gè)能穩(wěn)定干活兒的整體。我這套架構(gòu)里Harness承擔(dān)了幾個(gè)核心職責(zé)第一編排多agent的協(xié)作流程讓規(guī)劃、計(jì)算、校驗(yàn)各司其職第二管理工具調(diào)用把仿真軟件、計(jì)算腳本、數(shù)據(jù)庫(kù)查詢這些外部能力封裝成agent可以調(diào)用的接口第三落地防幻覺(jué)機(jī)制在模型輸出和最終答案之間加一道硬約束。為什么不用那種“一個(gè)prompt走天下”的簡(jiǎn)單方式因?yàn)殡娫丛O(shè)計(jì)這個(gè)場(chǎng)景對(duì)精度的要求太苛刻了。你問(wèn)“這個(gè)buck電路的電感取多大”一個(gè)通用模型可能直接給你一個(gè)公式、代幾個(gè)數(shù)、出個(gè)結(jié)果看著挺像那么回事兒但如果你把輸入電壓范圍、開(kāi)關(guān)頻率、紋波要求這些邊界條件稍微改一改它的答案可能就徹底不對(duì)了。這不是模型笨是這種開(kāi)放式問(wèn)答的結(jié)構(gòu)本身就不適合承載高精度的工程設(shè)計(jì)任務(wù)。所以我的設(shè)計(jì)原則很簡(jiǎn)單模型負(fù)責(zé)“理解”和“規(guī)劃”工具負(fù)責(zé)“計(jì)算”和“驗(yàn)證”知識(shí)庫(kù)負(fù)責(zé)“約束”和“參考”最后再加一道獨(dú)立的校驗(yàn)環(huán)節(jié)。讓模型做它擅長(zhǎng)的事但絕不讓它成為唯一的信息來(lái)源。1.3 面向的讀者和適用場(chǎng)景這篇分享適合兩類(lèi)人。一類(lèi)是做AI應(yīng)用工程、正在研究怎么把大模型落地到專(zhuān)業(yè)領(lǐng)域的開(kāi)發(fā)者你可以看看在硬件設(shè)計(jì)這種對(duì)精度要求極高的行業(yè)里防幻覺(jué)體系具體是怎么落地的。另一類(lèi)是硬件工程師尤其是做電源設(shè)計(jì)的你可以看看agent能幫你處理哪些重復(fù)性高、規(guī)則明確的工作以及哪些環(huán)節(jié)目前仍然需要人來(lái)兜底。這套架構(gòu)不挑具體領(lǐng)域。防幻覺(jué)的思路、Harness的編排方式、工具增強(qiáng)的路徑換到結(jié)構(gòu)設(shè)計(jì)、熱設(shè)計(jì)、成本估算、PCB布局審查這些場(chǎng)景骨架完全可以直接復(fù)用只是換一套垂直領(lǐng)域的工具和知識(shí)庫(kù)而已。2. 防幻覺(jué)體系把錯(cuò)誤扼殺在流程里2.1 幻覺(jué)從哪來(lái)先認(rèn)清敵人模型在生成token的時(shí)候本質(zhì)上是在做概率采樣——根據(jù)前文信息預(yù)測(cè)下一個(gè)最可能的token。它沒(méi)有一個(gè)“從外部數(shù)據(jù)庫(kù)查證”的自覺(jué)。這就導(dǎo)致一個(gè)結(jié)果當(dāng)訓(xùn)練數(shù)據(jù)里沒(méi)有覆蓋某個(gè)具體場(chǎng)景時(shí)它會(huì)傾向于編造一個(gè)看起來(lái)合理的答案來(lái)填補(bǔ)空白。在通用問(wèn)答場(chǎng)景里這種編造最多是誤導(dǎo)人。但在電源設(shè)計(jì)場(chǎng)景里一個(gè)編造的環(huán)路增益數(shù)據(jù)、一個(gè)隨便算出來(lái)的熱阻值、一套不匹配的器件參數(shù)組合直接就能毀掉一次設(shè)計(jì)。更麻煩的是硬件設(shè)計(jì)里的錯(cuò)誤往往不會(huì)當(dāng)場(chǎng)暴露——原理圖審查時(shí)看不出來(lái)等到板子打回來(lái)測(cè)試才發(fā)現(xiàn)效率不對(duì)、紋波超標(biāo)、甚至芯片燒了。所以要建立防幻覺(jué)體系第一步就是改變提問(wèn)方式。你不能讓模型自由發(fā)揮寫(xiě)答案要把它變成一個(gè)必須在約束條件下完成任務(wù)的執(zhí)行者。每一道輸出都要能追溯到計(jì)算過(guò)程每一個(gè)數(shù)據(jù)都要有來(lái)源。2.2 四層防幻覺(jué)機(jī)制的設(shè)計(jì)我在架構(gòu)里落地了四層防幻覺(jué)機(jī)制層層遞進(jìn)互相兜底。第一層是結(jié)構(gòu)化約束層。所有發(fā)給模型的任務(wù)都不是開(kāi)放式問(wèn)答而是填入式的任務(wù)單。比如讓模型算電感prompt里明確寫(xiě)清楚輸入?yún)?shù)表、輸出字段表、計(jì)算步驟要求模型只需要按照指定流程執(zhí)行。這一層解決的是“自由發(fā)揮”的問(wèn)題。第二層是計(jì)算工具層。所有涉及數(shù)值計(jì)算的任務(wù)模型自己不直接算而是生成計(jì)算參數(shù)、調(diào)用封裝好的數(shù)學(xué)工具去算。比如環(huán)路穩(wěn)定性分析我封裝了一個(gè)專(zhuān)門(mén)的計(jì)算模塊模型只需要把開(kāi)環(huán)增益、相位裕度、穿越頻率這些參數(shù)提取出來(lái)傳給工具工具返回結(jié)果模型再基于結(jié)果生成分析報(bào)告。這一層解決的是“數(shù)值精度”的問(wèn)題。第三層是知識(shí)約束層。我在知識(shí)庫(kù)里維護(hù)了一份電源設(shè)計(jì)規(guī)則庫(kù)包含降額設(shè)計(jì)規(guī)則、器件選型邊界、拓?fù)溥m用場(chǎng)景、典型電路參考。模型在生成方案時(shí)必須經(jīng)過(guò)規(guī)則匹配違反規(guī)則的方案直接打回。這一層解決的是“領(lǐng)域常識(shí)”的問(wèn)題。第四層是交叉驗(yàn)證層。關(guān)鍵輸出在進(jìn)入最終報(bào)告之前會(huì)經(jīng)過(guò)一個(gè)獨(dú)立的驗(yàn)證agent復(fù)核。這個(gè)驗(yàn)證agent不知道規(guī)劃agent的結(jié)論它只拿到原始需求和計(jì)算過(guò)程重新走一遍推理比對(duì)兩個(gè)結(jié)果是否一致。這一層解決的是“系統(tǒng)性幻覺(jué)”的問(wèn)題——有時(shí)候模型的錯(cuò)誤不是單點(diǎn)的而是一整套聽(tīng)起來(lái)自洽但完全錯(cuò)誤的邏輯鏈條單靠規(guī)則很難攔住雙模型交叉驗(yàn)證是目前最有效的手段。2.3 結(jié)構(gòu)化輸出的強(qiáng)制約束這里展開(kāi)說(shuō)說(shuō)結(jié)構(gòu)化約束層的具體做法。我的prompt模板里每個(gè)設(shè)計(jì)任務(wù)都定義了嚴(yán)格的輸出schema用JSON格式約束字段名和字段類(lèi)型。比如電感選型任務(wù)的輸出必須包含計(jì)算依據(jù)選用的公式、輸入?yún)?shù)值、計(jì)算結(jié)果、器件推薦型號(hào)、降額校驗(yàn)結(jié)果。模型只能在這個(gè)schema的框架內(nèi)填空不能自由發(fā)揮。這個(gè)設(shè)計(jì)不是為了好看而是為了把模型的輸出變成可解析、可校驗(yàn)的數(shù)據(jù)結(jié)構(gòu)。后續(xù)的規(guī)則引擎、工具調(diào)用、交叉驗(yàn)證全部基于這個(gè)數(shù)據(jù)結(jié)構(gòu)操作。我試過(guò)不約束schema的版本讓模型用自然語(yǔ)言輸出計(jì)算結(jié)果。結(jié)果是十個(gè)答案里有八個(gè)格式都不一樣有的寫(xiě)“電感值建議取6.8uH”有的寫(xiě)“L6.8μH”有的寫(xiě)“考慮到紋波要求電感選擇6.8微亨”。解析邏輯根本沒(méi)法寫(xiě)規(guī)則引擎也沒(méi)法自動(dòng)化。改成結(jié)構(gòu)化輸出之后整個(gè)流程才順暢起來(lái)。2.4 防幻覺(jué)硬規(guī)則是模型的底線最后還要強(qiáng)調(diào)一點(diǎn)防幻覺(jué)機(jī)制不是讓模型變得“不撒謊”而是讓模型“沒(méi)有撒謊的空間”。在四層機(jī)制之下模型即使產(chǎn)生了幻覺(jué)也會(huì)在某個(gè)環(huán)節(jié)被攔截。要么參數(shù)不合法被規(guī)則引擎打回要么數(shù)值異常被工具層發(fā)現(xiàn)要么與驗(yàn)證agent結(jié)論不一致被標(biāo)記復(fù)核。這意味著在架構(gòu)設(shè)計(jì)上你要把“模型直接輸出最終答案”的通路徹底堵死。用戶看到的每一個(gè)數(shù)據(jù)一定是經(jīng)過(guò)工具計(jì)算、經(jīng)過(guò)知識(shí)校驗(yàn)、經(jīng)過(guò)交叉確認(rèn)之后的產(chǎn)物。這條原則我建議所有做專(zhuān)業(yè)領(lǐng)域agent的人牢牢記住模型輸出是半成品不是成品。3. 工具層設(shè)計(jì)模型的大腦工具的雙手3.1 為什么必須引入外部計(jì)算工具很多人覺(jué)得大模型本身就具備數(shù)學(xué)能力Deepseek的推理能力又這么強(qiáng)直接讓它算不行嗎實(shí)測(cè)下來(lái)讓模型算一個(gè)簡(jiǎn)單的分壓電阻值輸入10V目標(biāo)3.3V分壓電流0.5mA它給出的結(jié)果可能是對(duì)的但你會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題它每次給出的計(jì)算過(guò)程版本都不一樣。有時(shí)候是精確代公式有時(shí)候是近似估算有時(shí)候直接跳過(guò)中間過(guò)程給出一個(gè)“憑經(jīng)驗(yàn)”的結(jié)果。對(duì)于工程設(shè)計(jì)來(lái)說(shuō)過(guò)程不可復(fù)現(xiàn)就等于錯(cuò)誤。你今天讓它算電感它用了一種方法明天同樣的輸入可能換了另一種方法——也許結(jié)果碰巧一樣但工程上沒(méi)人敢依賴這種隨機(jī)正確性。所以工具層的設(shè)計(jì)原則是把計(jì)算從模型的概率世界里剝離出來(lái)放到確定性的工具世界里。模型負(fù)責(zé)理解需求、提取參數(shù)、選擇計(jì)算路徑實(shí)際的數(shù)值運(yùn)算全部交給封裝好的工具模塊。3.2 工具封裝的三層結(jié)構(gòu)我的工具層分成三層。最底層是基礎(chǔ)計(jì)算庫(kù)就是純函數(shù)式的計(jì)算模塊。電感紋波計(jì)算、環(huán)路增益計(jì)算、熱阻計(jì)算、降額校驗(yàn)、PCB走線載流計(jì)算這些都是明確的公式和算法輸入?yún)?shù)給到位輸出就是確定性的。中間層是數(shù)據(jù)接口把器件數(shù)據(jù)庫(kù)、規(guī)格書(shū)解析結(jié)果、參考設(shè)計(jì)庫(kù)這些數(shù)據(jù)源封裝成查詢接口。agent需要查某個(gè)MOS管的導(dǎo)通電阻、某個(gè)電容的ESR、某個(gè)電感的飽和電流走的是數(shù)據(jù)接口而不是靠模型“回憶”。最上層是仿真封裝封裝了對(duì)外部仿真軟件的調(diào)用。比如需要做環(huán)路穩(wěn)定性仿真agent可以生成仿真輸入文件、調(diào)用仿真程序、解析仿真結(jié)果。這一層目前只做自動(dòng)化調(diào)用仿真結(jié)果的解讀仍然需要經(jīng)過(guò)校驗(yàn)環(huán)節(jié)。這個(gè)分層設(shè)計(jì)的好處是每一層都可以獨(dú)立測(cè)試、獨(dú)立替換?;A(chǔ)計(jì)算庫(kù)可以寫(xiě)單元測(cè)試保證正確性數(shù)據(jù)接口可以單獨(dú)驗(yàn)證數(shù)據(jù)源的準(zhǔn)確性仿真封裝出了問(wèn)題不會(huì)影響上層邏輯。3.3 模型和工具的協(xié)作模式先規(guī)劃后執(zhí)行在我的Harness架構(gòu)里模型和工具的協(xié)作是典型的“先規(guī)劃后執(zhí)行”模式。規(guī)劃agent收到用戶需求后先拆解任務(wù)、確定計(jì)算路徑、識(shí)別需要的工具和數(shù)據(jù)生成一份執(zhí)行計(jì)劃。然后執(zhí)行器根據(jù)這個(gè)計(jì)劃逐步調(diào)用工具每一步拿到確定性結(jié)果之后再交給生成agent匯總。這里有個(gè)關(guān)鍵細(xì)節(jié)模型在規(guī)劃階段也要輸出結(jié)構(gòu)化數(shù)據(jù)不能只輸出自然語(yǔ)言描述。因?yàn)閳?zhí)行器要自動(dòng)解析計(jì)劃并執(zhí)行所以計(jì)劃本身必須是機(jī)器可讀的。我定義了一個(gè)計(jì)劃schema包含任務(wù)列表、每個(gè)任務(wù)依賴的工具、輸入?yún)?shù)映射、輸出變量名。舉個(gè)例子一個(gè)完整的buck電路參數(shù)計(jì)算任務(wù)規(guī)劃agent生成的計(jì)劃可能是這樣第一步查數(shù)據(jù)接口獲取器件的開(kāi)關(guān)頻率范圍第二步調(diào)用基礎(chǔ)計(jì)算庫(kù)的電感計(jì)算公式生成候選電感值列表第三步對(duì)每個(gè)候選值做紋波校驗(yàn)第四步調(diào)用熱阻計(jì)算模塊檢查電感溫升最后匯總結(jié)果生成設(shè)計(jì)報(bào)告。每一個(gè)步驟都是確定性的模型不參與數(shù)值運(yùn)算只負(fù)責(zé)生成計(jì)劃和解釋結(jié)果。這套模式下模型的幻覺(jué)影響范圍被壓縮到了“計(jì)劃選擇”這個(gè)層面而計(jì)劃層面的錯(cuò)誤可以在執(zhí)行階段被參數(shù)校驗(yàn)環(huán)節(jié)發(fā)現(xiàn)。3.4 工具調(diào)用錯(cuò)誤的兜底機(jī)制工具調(diào)用也不是絕對(duì)安全的至少有三類(lèi)問(wèn)題我踩過(guò)。第一類(lèi)是參數(shù)傳遞錯(cuò)誤模型提取的輸入?yún)?shù)和用戶需求不一致比如把輸入電壓范圍的上限當(dāng)成典型值傳給計(jì)算工具算出來(lái)的結(jié)果自然就錯(cuò)了。第二類(lèi)是公式選型錯(cuò)誤比如算反激變壓器時(shí)用了正激的公式結(jié)果完全不可用。第三類(lèi)是數(shù)據(jù)查詢無(wú)結(jié)果模型查不到匹配的器件時(shí)可能強(qiáng)行推薦一個(gè)參數(shù)不達(dá)標(biāo)的型號(hào)。針對(duì)這三類(lèi)問(wèn)題我在架構(gòu)里加了三道保險(xiǎn)。參數(shù)傳遞錯(cuò)誤靠的是規(guī)則校驗(yàn)——工具接口定義里寫(xiě)明每個(gè)參數(shù)的物理范圍比如輸入電壓必須是正數(shù)、開(kāi)關(guān)頻率必須在100kHz到2MHz等工業(yè)合理范圍內(nèi)超出范圍直接報(bào)錯(cuò)打回。公式選型錯(cuò)誤靠的是任務(wù)類(lèi)型標(biāo)記——每個(gè)任務(wù)在規(guī)劃階段就被打上類(lèi)型標(biāo)簽執(zhí)行器根據(jù)類(lèi)型選擇對(duì)應(yīng)的公式庫(kù)不允許模型自由指定公式。數(shù)據(jù)查詢無(wú)結(jié)果的處理是讓模型必須明確說(shuō)明查無(wú)結(jié)果并建議替代方案不允許編造一個(gè)不存在的器件型號(hào)。4. 電源硬件設(shè)計(jì)的垂直能力注入4.1 知識(shí)庫(kù)不是資料庫(kù)是約束庫(kù)做垂直領(lǐng)域agent大家第一步都會(huì)想到搭知識(shí)庫(kù)。但怎么搭、放什么內(nèi)容差別很大。很多人把規(guī)格書(shū)、應(yīng)用筆記、參考設(shè)計(jì)一股腦塞進(jìn)去讓模型自己去檢索結(jié)果效果很差——檢索出來(lái)的內(nèi)容可能不相關(guān)也可能相關(guān)但模型不知道怎么用。我的做法是把知識(shí)庫(kù)定位成“約束庫(kù)”而不是“資料庫(kù)”。里面放的不是公開(kāi)文檔原文而是經(jīng)過(guò)提煉的規(guī)則化知識(shí)。每一條知識(shí)都是一個(gè)約束條件比如“輸入電容的紋波電流額定值必須大于計(jì)算出的最大紋波電流”、“電感的飽和電流必須大于最大峰值電流的1.2倍”、“反饋電阻的精度等級(jí)選擇取決于輸出電壓精度要求”。這樣做是出于一個(gè)考慮規(guī)則才能被機(jī)器自動(dòng)校驗(yàn)資料不行。你讓模型讀一篇50頁(yè)的電源設(shè)計(jì)應(yīng)用筆記它理解到什么程度你完全不可控。但你把里面的關(guān)鍵約束提煉成一條條規(guī)則模型在生成方案時(shí)只需要逐條比對(duì)這個(gè)過(guò)程是可檢查、可審計(jì)的。4.2 電源設(shè)計(jì)核心任務(wù)的agent分工架構(gòu)里我設(shè)計(jì)了四個(gè)專(zhuān)職agent每個(gè)負(fù)責(zé)一類(lèi)任務(wù)避免一個(gè)agent什么都干、什么都干不精。任務(wù)理解agent負(fù)責(zé)接收用戶需求提取關(guān)鍵參數(shù)把自然語(yǔ)言描述轉(zhuǎn)化成結(jié)構(gòu)化的設(shè)計(jì)輸入。用戶說(shuō)“做一個(gè)12V轉(zhuǎn)3.3V的buck輸出電流3A紋波小于50mV”它需要補(bǔ)全隱含的邊界條件——輸入電壓范圍、開(kāi)關(guān)頻率選多少、工作溫度范圍、成本敏感還是效率敏感這些不確定項(xiàng)會(huì)生成澄清問(wèn)題回問(wèn)用戶。方案規(guī)劃agent負(fù)責(zé)設(shè)計(jì)路徑?jīng)Q策。輸入電壓范圍決定了拓?fù)浣Y(jié)構(gòu)輸出功率決定了器件選型方向紋波要求決定了濾波器的設(shè)計(jì)優(yōu)先級(jí)。它會(huì)生成一份方案大綱包括拓?fù)溥x擇理由、關(guān)鍵器件選型邏輯、需要計(jì)算的項(xiàng)目列表、需要仿真的項(xiàng)目列表。計(jì)算執(zhí)行agent負(fù)責(zé)調(diào)用工具層完成所有數(shù)值計(jì)算。電感選型計(jì)算、功率管損耗估算、環(huán)路補(bǔ)償參數(shù)計(jì)算、熱設(shè)計(jì)校驗(yàn)每一項(xiàng)計(jì)算都會(huì)記錄輸入?yún)?shù)、計(jì)算公式、計(jì)算過(guò)程和結(jié)果版本保證全程可追溯。驗(yàn)證agent負(fù)責(zé)在最終輸出之前把所有計(jì)算結(jié)果拉通檢查。它檢查計(jì)算過(guò)程是否用了正確的公式、參數(shù)是否在合理范圍內(nèi)、器件選型是否滿足降額要求、多個(gè)計(jì)算項(xiàng)目之間的數(shù)據(jù)是否能互相印證。這個(gè)驗(yàn)證agent的核心價(jià)值在于獨(dú)立性——它不參與任何計(jì)算只負(fù)責(zé)挑錯(cuò)。4.3 從需求到方案的完整任務(wù)拆解用一個(gè)實(shí)際例子說(shuō)明整個(gè)agent協(xié)作流程。假設(shè)用戶提交需求“設(shè)計(jì)一個(gè)24V轉(zhuǎn)5V/2A的buck電源”。任務(wù)理解agent先做需求解析提取的關(guān)鍵參數(shù)是輸入電壓范圍假設(shè)用戶說(shuō)24V輸入需要進(jìn)一步確認(rèn)是否允許波動(dòng)到20V~28V、輸出電壓5V、輸出電流2A。它會(huì)生成澄清問(wèn)題輸入電壓波動(dòng)范圍是多少紋波要求多少工作環(huán)境溫度范圍有沒(méi)有效率要求用戶補(bǔ)充之后方案規(guī)劃agent生成設(shè)計(jì)方案拓?fù)溥x同步buck效率優(yōu)先開(kāi)關(guān)頻率選300kHz在效率、器件體積、環(huán)路設(shè)計(jì)難度之間取平衡輸入電容和輸出電容拓?fù)溥x型電感感值初步根據(jù)典型紋波率30%估算控制芯片候選型號(hào)列出來(lái)。計(jì)算執(zhí)行agent執(zhí)行具體計(jì)算根據(jù)輸入輸出參數(shù)計(jì)算占空比范圍20V輸入時(shí)占空比0.2528V輸入時(shí)0.179根據(jù)紋波電流要求計(jì)算最小電感值根據(jù)輸出紋波要求計(jì)算輸出電容容值和ESR上限根據(jù)功率計(jì)算功率管電流應(yīng)力并初選MOS管。驗(yàn)證agent做交叉檢查確認(rèn)所有計(jì)算使用了正確的輸入?yún)?shù)確認(rèn)電感飽和電流大于最大峰值電流的1.2倍以上確認(rèn)輸出電容的ESR滿足紋波要求確認(rèn)所有器件選型的電壓、電流、功率降額在合理范圍內(nèi)生成最終的設(shè)計(jì)報(bào)告。可以看到模型在整個(gè)流程里只承擔(dān)“理解”和“決策”類(lèi)工作——理解需求、選擇拓?fù)?、?guī)劃路徑、解釋結(jié)果。所有數(shù)值類(lèi)工作全部由工具完成所有正確性類(lèi)工作全部由規(guī)則和驗(yàn)證環(huán)節(jié)完成。4.4 垂直規(guī)則庫(kù)的建設(shè)方法與實(shí)踐規(guī)則庫(kù)的建設(shè)是這個(gè)系統(tǒng)比較費(fèi)功夫的部分。我的做法是把資料分成幾類(lèi)第一類(lèi)來(lái)自公開(kāi)的教材和應(yīng)用筆記比如開(kāi)關(guān)電源設(shè)計(jì)相關(guān)的經(jīng)典書(shū)籍、芯片廠商的應(yīng)用筆記第二類(lèi)來(lái)自在多次設(shè)計(jì)、改版中沉淀的經(jīng)驗(yàn)教訓(xùn)這部分是最有價(jià)值的第三類(lèi)來(lái)自行業(yè)標(biāo)準(zhǔn)和設(shè)計(jì)規(guī)范。每條規(guī)則入庫(kù)時(shí)都要明確三件事適用場(chǎng)景、判定條件、處置動(dòng)作。比如“電感飽和電流裕量不足”這條規(guī)則適用場(chǎng)景是電感選型判定條件是“最大峰值電流 × 1.2 電感飽和電流”處置動(dòng)作是“標(biāo)記警告并建議重新選型”。規(guī)則入庫(kù)之后還要定期清理——有些規(guī)則在新器件、新拓?fù)涿媲耙呀?jīng)不適用了留在庫(kù)里只會(huì)在校驗(yàn)時(shí)誤傷合理的方案。5. 架構(gòu)部署實(shí)踐與運(yùn)行觀測(cè)5.1 硬件配置與模型部署架構(gòu)部署首要考慮的是模型在哪里跑。硬件設(shè)計(jì)這個(gè)場(chǎng)景對(duì)數(shù)據(jù)安全要求比較高設(shè)計(jì)數(shù)據(jù)往往不太可能直接傳到云端API所以核心的推理任務(wù)我優(yōu)先考慮本地部署。實(shí)測(cè)下來(lái)Deepseek系列模型在消費(fèi)級(jí)工作站上做推理關(guān)鍵要卡準(zhǔn)顯存和內(nèi)存的平衡。我這邊用了兩張顯卡并行加載模型結(jié)合量化方案把顯存占用壓了下來(lái)同時(shí)保住了推理質(zhì)量。幾個(gè)G的模型文件放顯存上下文相關(guān)的KV cache放內(nèi)存靠框架的調(diào)度能力把兩者的帶寬用起來(lái)跑50~100輪的agent協(xié)作推理流程速度和精度都還能接受。具體到部署方式我建議分三層模型服務(wù)層負(fù)責(zé)加載模型、提供推理接口、agent編排層跑Harness框架、管理多agent協(xié)作、工具服務(wù)層跑計(jì)算庫(kù)、數(shù)據(jù)接口、仿真封裝。這三層可以部署在同一臺(tái)機(jī)器上也可以拆開(kāi)分布式部署看任務(wù)并發(fā)量來(lái)定。5.2 單機(jī)部署/Docker化與內(nèi)網(wǎng)部署為了方便遷移和復(fù)現(xiàn)我把整個(gè)系統(tǒng)做了Docker化。鏡像里打包了模型推理服務(wù)、Harness運(yùn)行環(huán)境、工具庫(kù)依賴、規(guī)則庫(kù)文件。推到內(nèi)網(wǎng)私有倉(cāng)庫(kù)之后在任何一臺(tái)部署了Docker的機(jī)器上都能直接啟動(dòng)。內(nèi)網(wǎng)部署有幾個(gè)注意點(diǎn)第一模型文件本身比較大要先傳到內(nèi)網(wǎng)存儲(chǔ)再掛載進(jìn)容器不要在鏡像構(gòu)建時(shí)打進(jìn)去否則每次更新鏡像都要重新傳輸。第二工具層如果依賴外部軟件比如仿真程序要做好路徑映射和權(quán)限配置。第三內(nèi)網(wǎng)環(huán)境往往沒(méi)有外網(wǎng)訪問(wèn)能力所有依賴包要在構(gòu)建鏡像時(shí)提前拉好。我的部署腳本里做了兩個(gè)版本開(kāi)發(fā)版用docker-compose一鍵起全套服務(wù)生產(chǎn)版用systemd管理容器生命周期加上自動(dòng)重啟。這套部署方式在后續(xù)遷移和擴(kuò)展的時(shí)候會(huì)省很多事。5.3 觀測(cè)體系agent的可觀測(cè)性設(shè)計(jì)agent系統(tǒng)比普通應(yīng)用難觀測(cè)的地方在于它不是單線程執(zhí)行的而是多agent并行協(xié)作每一步都有模型推理和工具調(diào)用出錯(cuò)的位置可能藏在任何一個(gè)環(huán)節(jié)。我做的觀測(cè)體系包含三個(gè)維度。第一個(gè)維度是流程追蹤每個(gè)用戶請(qǐng)求生成一個(gè)trace_id貫穿所有agent的調(diào)用鏈每一步記錄了執(zhí)行時(shí)間、輸入輸出摘要、調(diào)用的工具和參數(shù)。第二個(gè)維度是關(guān)鍵指標(biāo)包括工具調(diào)用成功率、規(guī)則校驗(yàn)被攔截的次數(shù)、驗(yàn)證agent發(fā)現(xiàn)的差異數(shù)、平均響應(yīng)時(shí)間、token消耗量。第三個(gè)維度是結(jié)構(gòu)化日志所有模型輸出和工具返回都以結(jié)構(gòu)化格式記錄方便事后回溯和分析。這套觀測(cè)體系的價(jià)值在排查問(wèn)題時(shí)體現(xiàn)得最明顯。有次用戶反饋某個(gè)計(jì)算結(jié)果“看著不太對(duì)”我直接按trace_id拉起全鏈路日志看到的是計(jì)算執(zhí)行agent生成公式時(shí)選了正確的公式但傳入?yún)?shù)時(shí)把輸入電壓范圍的上限和下限搞反了這個(gè)錯(cuò)誤被驗(yàn)證agent攔截并更正了。如果沒(méi)有觀測(cè)體系這類(lèi)問(wèn)題根本定位不到。5.4 性能優(yōu)化與并發(fā)處理的取舍如果只是單用戶使用性能壓力并不大。但如果你想把a(bǔ)gent能力開(kāi)放給團(tuán)隊(duì)使用就要考慮并發(fā)了。我實(shí)測(cè)發(fā)現(xiàn)兩個(gè)性能瓶頸第一個(gè)是模型推理的并發(fā)能力多請(qǐng)求同時(shí)到達(dá)時(shí)推理服務(wù)會(huì)排隊(duì)影響響應(yīng)時(shí)間第二個(gè)是工具層的計(jì)算密集任務(wù)比如批量仿真參數(shù)掃描會(huì)占用大量CPU。在并發(fā)優(yōu)化上我的取舍是優(yōu)先保交互體驗(yàn)把用戶無(wú)感知的耗時(shí)任務(wù)放到異步隊(duì)列里處理。具體做法是任務(wù)理解、方案規(guī)劃這類(lèi)需要用戶等待的環(huán)節(jié)走同步推理計(jì)算執(zhí)行環(huán)節(jié)如果任務(wù)量大拆成子任務(wù)投遞到異步隊(duì)列完成后推送通知。這樣用戶體驗(yàn)更平滑系統(tǒng)的整體吞吐量也上去了。6. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄6.1 大模型計(jì)算的精度問(wèn)題這是我最先遇到、也最需要解決的問(wèn)題。測(cè)試階段用Deepseek直算一個(gè)buck電感值輸入同樣的參數(shù)跑十次能算出七八個(gè)不同的結(jié)果。雖然大多數(shù)在正確值附近但對(duì)工程設(shè)計(jì)來(lái)說(shuō)這完全不可接受。解決方案就是前面說(shuō)的工具層模型不再直接算數(shù)而是生成計(jì)算參數(shù)、調(diào)用確定性計(jì)算函數(shù)。這一步改完之后同樣的輸入跑一百次結(jié)果完全一致精度由計(jì)算函數(shù)本身保證不再受模型概率性影響。如果你的應(yīng)用場(chǎng)景沒(méi)法完全剝離模型計(jì)算那至少要在prompt里強(qiáng)制要求“分步計(jì)算每步展示結(jié)果最終結(jié)果保留兩位小數(shù)”并且加交叉驗(yàn)證環(huán)節(jié)。但說(shuō)實(shí)話對(duì)于工程精度要求高的場(chǎng)景工具化計(jì)算是唯一可靠的路。6.2 Agent規(guī)劃路徑出錯(cuò)的處理有次測(cè)試反激電源設(shè)計(jì)任務(wù)方案規(guī)劃agent給出的拓?fù)溥x擇建議是正激。原因是用戶需求里有“多路輸出”這個(gè)特征模型把它關(guān)聯(lián)到了正激拓?fù)涞亩嗦份敵鰞?yōu)勢(shì)忽略了功率等級(jí)、輸入電壓范圍和成本約束這些更關(guān)鍵的決策因素。這類(lèi)問(wèn)題的本質(zhì)是模型在做決策時(shí)容易被單一特征誤導(dǎo)缺乏全局權(quán)衡能力。我的處理方式是給規(guī)劃agent加了一層規(guī)則前置過(guò)濾在模型接收需求之前先由規(guī)則引擎根據(jù)硬約束條件篩掉一部分不可能的方案。比如功率超過(guò)200W直接排除反激拓?fù)漭斎腚妷悍秶^(guò)一定跨度直接排除正激拓?fù)溥@些硬規(guī)則在模型之前就把路堵死。6.3 知識(shí)庫(kù)內(nèi)容沖突的應(yīng)對(duì)知識(shí)庫(kù)建到一定規(guī)模后容易出現(xiàn)內(nèi)容沖突。比如一條規(guī)則說(shuō)“陶瓷電容的DC偏壓特性不可忽略”另一條參考數(shù)據(jù)給出某個(gè)案例里直接忽略偏壓特性做了簡(jiǎn)化計(jì)算。這兩條同時(shí)存在時(shí)模型校驗(yàn)環(huán)節(jié)可能不知道聽(tīng)誰(shuí)的。我的做法是給每條知識(shí)加優(yōu)先級(jí)和適用范圍標(biāo)簽。專(zhuān)用場(chǎng)景的規(guī)則優(yōu)先級(jí)高于通用規(guī)則新版本規(guī)則優(yōu)先級(jí)高于舊版本來(lái)源可靠的規(guī)則優(yōu)先級(jí)高于經(jīng)驗(yàn)總結(jié)。校驗(yàn)引擎在匹配到多條規(guī)則時(shí)按優(yōu)先級(jí)決定采用哪條。6.4 多Agent協(xié)作中的“重復(fù)勞動(dòng)”早期版本的架構(gòu)里規(guī)劃agent和計(jì)算agent偶爾會(huì)重復(fù)做同一件事——規(guī)劃agent可能順手算了個(gè)粗略的電感值計(jì)算agent不知道這事又按完整流程算了一遍。浪費(fèi)token是小事關(guān)鍵是兩遍計(jì)算如果出現(xiàn)偏差可能引起后續(xù)校驗(yàn)環(huán)節(jié)的誤判。解決的方案是明確每個(gè)agent的職責(zé)邊界用契約接口來(lái)約束規(guī)劃agent的輸出只能是執(zhí)行計(jì)劃不允許包含計(jì)算結(jié)果計(jì)算agent的輸入只能是執(zhí)行計(jì)劃不允許自行假設(shè)參數(shù)。架構(gòu)上做了強(qiáng)制隔離問(wèn)題就徹底消失了。6.5 模型推理速度與精度的平衡這個(gè)問(wèn)題問(wèn)的人很多加了這么多防幻覺(jué)環(huán)節(jié)響應(yīng)速度會(huì)不會(huì)慢到?jīng)]法用實(shí)測(cè)下來(lái)確實(shí)比以前直接問(wèn)答慢但慢得值。單輪問(wèn)答大約1秒完整的電源參數(shù)計(jì)算流程大約25秒包含多次推理和十幾次工具調(diào)用。如果覺(jué)得慢可以從三個(gè)方向優(yōu)化。第一模型本身用更高吞吐的推理框架吞吐能提升好幾倍第二減少不必要的交叉驗(yàn)證——不是所有輸出都需要第四層驗(yàn)證只對(duì)關(guān)鍵數(shù)值類(lèi)輸出開(kāi)啟第三并行化——不同計(jì)算任務(wù)之間如果沒(méi)依賴關(guān)系可以同時(shí)執(zhí)行總耗時(shí)會(huì)大幅下降。7. 一些補(bǔ)充的收獲7.1 干凈數(shù)據(jù)是agent的地基做完這個(gè)項(xiàng)目之后我最大的感觸是agent的效果上限不取決于模型多聰明而取決于你把數(shù)據(jù)整理得多干凈。這里的“數(shù)據(jù)”指的是規(guī)則、計(jì)算公式、工具接口、驗(yàn)證邏輯每一條都要有明確的定義、邊界和可觀測(cè)性。數(shù)據(jù)干凈了模型只需要做輕量的理解和規(guī)劃效果自然穩(wěn)定數(shù)據(jù)混亂模型再?gòu)?qiáng)也會(huì)被帶偏。7.2 有價(jià)值的工具比復(fù)雜的模型更重要第二個(gè)體會(huì)是關(guān)于工具投入的。我一開(kāi)始把大量精力花在調(diào)整prompt、優(yōu)化模型行為上后來(lái)發(fā)現(xiàn)效果提升最明顯的其實(shí)是把工具層算準(zhǔn)、把規(guī)則庫(kù)建全。一旦計(jì)算工具穩(wěn)定了校驗(yàn)規(guī)則覆蓋到位了模型的很多“幻覺(jué)問(wèn)題”根本不會(huì)觸達(dá)最終結(jié)果。7.3 從自動(dòng)化到流程善后目前這套架構(gòu)處理從需求到參數(shù)計(jì)算的完整鏈路已經(jīng)沒(méi)有大問(wèn)題但如果要往更高階的方向演進(jìn)還需要在流程善后方面大量投入。所謂善后就是設(shè)計(jì)產(chǎn)出的下游環(huán)節(jié)——生成原理圖、對(duì)接PCB布局、輸出制造文件。這些環(huán)節(jié)每一道都可能出錯(cuò)都需要自己的校驗(yàn)體系。如果你也想做類(lèi)似的方向我的建議是不要一上來(lái)就追求一個(gè)全能的系統(tǒng)。先把一個(gè)最有價(jià)值、最容易量化收益的場(chǎng)景做到極致比如buck電路的參數(shù)計(jì)算和器件選型做到結(jié)果可信、過(guò)程可追溯、體驗(yàn)流暢再逐步擴(kuò)展拓?fù)涓采w范圍和下游環(huán)節(jié)。這樣一步一個(gè)腳印走下來(lái)系統(tǒng)的可靠性和你的信心都會(huì)穩(wěn)步增長(zhǎng)。