作失控?社會(huì)性扎根的Agentic AI協(xié)調(diào)機(jī)制與工程實(shí)踐)
如果你最近在關(guān)注 AI 工程方向大概率會(huì)反復(fù)看到一個(gè)詞Agentic AI。這個(gè)詞被翻譯成“代理式 AI”或“智能體 AI”但翻譯本身不重要重要的是它代表了一類新的系統(tǒng)形態(tài)——AI 不再只是回答問題而是被賦予目標(biāo)、工具和行動(dòng)能力在真實(shí)業(yè)務(wù)流程里獨(dú)立完成任務(wù)。過去一年里單智能體應(yīng)用已經(jīng)不算稀奇讓一個(gè) Agent 讀代碼、寫測(cè)試、操作瀏覽器、處理工單都有成熟案例。但真正把項(xiàng)目復(fù)雜度推高一個(gè)量級(jí)的是另一種局面多個(gè)智能體同時(shí)在線各自帶著不同的角色、目標(biāo)、信息和約束共同完成一項(xiàng)任務(wù)。如果這個(gè)場(chǎng)景還沒讓你感到壓力說明你還沒有經(jīng)歷過多智能體協(xié)作失控的瞬間。比如兩個(gè) Agent 一個(gè)追求成本最低、一個(gè)追求體驗(yàn)最佳它們的決策天然沖突再比如三個(gè) Agent 各自基于不同數(shù)據(jù)源給出結(jié)論到底采納誰的沒有人說得清。這類問題在工程里表現(xiàn)為“協(xié)調(diào)難題”在學(xué)術(shù)里有一個(gè)更根本的表述我們?nèi)绾巫尪鄠€(gè)智能體在多元視角下達(dá)成協(xié)作而不是把差異強(qiáng)行壓平這正是“Socially Grounded Agentic AI社會(huì)性扎根的 Agentic AI”這個(gè)命題出現(xiàn)的原因。它主張當(dāng)智能體進(jìn)入社會(huì)性協(xié)作場(chǎng)景時(shí)單純依賴更大的模型、更多的工具是不夠的還需要借鑒人類社會(huì)中沉淀下來的協(xié)調(diào)機(jī)制——角色分工、規(guī)范約束、協(xié)商對(duì)話、審議決策。這篇文章會(huì)把這個(gè)偏學(xué)術(shù)的概念翻譯成工程語言講清楚三件事為什么多智能體協(xié)調(diào)是一個(gè)社會(huì)性問題社會(huì)理論能提供哪些可落地的機(jī)制以及一個(gè)最小化的多智能體協(xié)調(diào)系統(tǒng)應(yīng)該怎么寫。1. 這篇文章真正要解決的問題1.1 單智能體做得好不等于多智能體做得好當(dāng)前大部分 Agent 框架的核心能力都圍繞“單智能體”設(shè)計(jì)給定一個(gè)目標(biāo)Agent 自己規(guī)劃、調(diào)用工具、檢查結(jié)果、修正路徑。這種模式在處理單一職責(zé)任務(wù)時(shí)很好用比如“把這份文檔翻譯成英文”“找出這個(gè)倉庫里的潛在 bug”“根據(jù)需求生成接口代碼”。但真實(shí)業(yè)務(wù)很少只有一個(gè)角色。一個(gè)企業(yè)內(nèi)部的知識(shí)庫升級(jí)項(xiàng)目會(huì)同時(shí)牽扯研發(fā)、產(chǎn)品、業(yè)務(wù)、安全多個(gè)角色一個(gè)供應(yīng)鏈優(yōu)化任務(wù)會(huì)同時(shí)面對(duì)成本、時(shí)效、庫存、風(fēng)險(xiǎn)多個(gè)目標(biāo)一次技術(shù)選型評(píng)審工程團(tuán)隊(duì)看重可維護(hù)性業(yè)務(wù)團(tuán)隊(duì)看重交付速度管理層看重風(fēng)險(xiǎn)和投入產(chǎn)出比。當(dāng)這些需求被抽象成多個(gè) Agent 時(shí)問題就來了每個(gè) Agent 都是按照自己的目標(biāo)函數(shù)在行動(dòng)它們之間沒有天然的協(xié)調(diào)機(jī)制。把三個(gè)各自最優(yōu)的單智能體拼在一起得到的不一定是一個(gè)多智能體協(xié)作系統(tǒng)更可能是一個(gè)互相打架的系統(tǒng)。1.2 為什么社會(huì)理論會(huì)進(jìn)入 AI 工程視野計(jì)算機(jī)科學(xué)從社會(huì)科學(xué)里借概念不是新鮮事。分布式系統(tǒng)里的“共識(shí)算法”、推薦系統(tǒng)里的“信譽(yù)機(jī)制”、多智能體系統(tǒng)里的“協(xié)商協(xié)議”本質(zhì)上都在處理個(gè)體與群體的關(guān)系。但過去這些機(jī)制偏“計(jì)算機(jī)科學(xué)”側(cè)重點(diǎn)解決的是效率、容錯(cuò)和一致性。到了 Agentic AI 時(shí)代情況發(fā)生了變化。智能體背后是 LLM它們能理解自然語言、能生成看似合理的辯解、能在不同 prompt 下表現(xiàn)出不同人格。這意味著多智能體之間的互動(dòng)不再是簡(jiǎn)單的消息傳遞而是接近人類社會(huì)中的協(xié)商、博弈、誤解和妥協(xié)。一個(gè)工程團(tuán)隊(duì)里的沖突很可能原封不動(dòng)地出現(xiàn)在一組 Agent 之間。社會(huì)性扎根的 Agentic AI 提出的判斷是不要把多元視角當(dāng)作多智能體系統(tǒng)的副產(chǎn)物而要把社會(huì)性協(xié)調(diào)當(dāng)作系統(tǒng)設(shè)計(jì)的核心輸入。社會(huì)理論里關(guān)于角色分工、規(guī)范形成、協(xié)商審議、權(quán)威裁決的研究恰好提供了大量可借鑒的模式。1.3 適合讀這篇文章的讀者這篇文章適合三類讀者。第一類是正在設(shè)計(jì)或即將設(shè)計(jì)多智能體系統(tǒng)的工程師你在這里能拿到一套協(xié)調(diào)機(jī)制的思考框架和最小代碼骨架。第二類是技術(shù)負(fù)責(zé)人或架構(gòu)師你需要判斷 Agentic AI 平臺(tái)到底能不能承擔(dān)復(fù)雜組織級(jí)任務(wù)以及風(fēng)險(xiǎn)點(diǎn)在哪里。第三類是剛開始研究智能體方向的開發(fā)者這篇文章能幫你把“Agentic AI”這個(gè)熱詞背后的系統(tǒng)設(shè)計(jì)問題看得更清楚。如果你正在做純單智能體項(xiàng)目這篇文章也有價(jià)值因?yàn)槟銜?huì)發(fā)現(xiàn)當(dāng)前架構(gòu)在哪個(gè)復(fù)雜度拐點(diǎn)上會(huì)撐不住從而提前做設(shè)計(jì)預(yù)留。2. Agentic AI從“生成內(nèi)容”到“承擔(dān)行動(dòng)”2.1 什么是 Agentic AI先做一個(gè)簡(jiǎn)單對(duì)照。傳統(tǒng)生成式 AI 的核心能力是“生成”用戶給一個(gè) prompt模型返回一段文本、代碼或圖片。它不負(fù)責(zé)執(zhí)行不負(fù)責(zé)確認(rèn)結(jié)果不負(fù)責(zé)在環(huán)境里采取行動(dòng)。Agentic AI 的核心能力是“行動(dòng)”。一個(gè) Agent 系統(tǒng)通常會(huì)接收一個(gè)高層次目標(biāo)然后把目標(biāo)分解成步驟調(diào)用外部工具執(zhí)行這些步驟觀察執(zhí)行結(jié)果再?zèng)Q定下一步做什么。它不再是“你問我答”而是“你給我目標(biāo)我去推進(jìn)”。一個(gè)更通俗的類比是生成式 AI 像一位知識(shí)淵博的顧問你問什么它答什么Agentic AI 像一個(gè)被授權(quán)的員工它有目標(biāo)、有工具、有權(quán)限還會(huì)在做事過程中根據(jù)反饋調(diào)整自己。2.2 Agent 的四個(gè)核心能力一個(gè)可用的 Agent 系統(tǒng)至少要具備四類能力第一是規(guī)劃。給定目標(biāo)后Agent 要把目標(biāo)拆解成可執(zhí)行的子任務(wù)。規(guī)劃能力決定了一個(gè) Agent 面對(duì)復(fù)雜任務(wù)時(shí)是盲目執(zhí)行還是有條理地推進(jìn)。第二是工具調(diào)用。Agent 需要通過 API、代碼執(zhí)行器、瀏覽器、數(shù)據(jù)庫等工具與環(huán)境交互。沒有工具能力的 Agent 只能停留在“紙上談兵”。第三是記憶。Agent 需要記住任務(wù)上下文、歷史決策和用戶偏好。長(zhǎng)期記憶讓 Agent 在做決策時(shí)能參考過去經(jīng)驗(yàn)而不是每次都從頭開始。第四是反思與修正。Agent 執(zhí)行完一個(gè)步驟后需要觀察結(jié)果是否符合預(yù)期如果不符合要能調(diào)整策略。這是 Agent 區(qū)別于簡(jiǎn)單自動(dòng)化腳本的關(guān)鍵。2.3 為什么 Agentic AI 突然成為熱詞Agentic AI 成為“agentic ai”這個(gè)搜索熱詞背后的主角不是偶然。幾個(gè)技術(shù)條件在最近兩年同時(shí)成熟LLM 的指令遵循能力足夠穩(wěn)定能承擔(dān)復(fù)雜任務(wù)的中間步驟工具調(diào)用生態(tài)成熟模型可以穩(wěn)定地調(diào)用外部函數(shù)云端沙箱環(huán)境讓 Agent 可以安全地執(zhí)行代碼和操作流程。但更關(guān)鍵的推動(dòng)力來自需求側(cè)。企業(yè)過去買 AI 產(chǎn)品是為了“提高回答質(zhì)量”現(xiàn)在更想要“替代人工流程”。從“知道答案”到“把事做完成”這中間差的正是 Agent 這套行動(dòng)回路。需要清醒的是熱詞的流行度不等于技術(shù)成熟度。當(dāng)前 Agentic AI 平臺(tái)在單任務(wù)、窄場(chǎng)景下已經(jīng)可用但在開放場(chǎng)景、多角色協(xié)作、長(zhǎng)周期任務(wù)上離真正可靠還有明顯距離。這也是“多智能體協(xié)調(diào)”會(huì)成為下一個(gè)競(jìng)爭(zhēng)點(diǎn)的原因。2.4 單智能體架構(gòu)的邊界單智能體架構(gòu)有一個(gè)隱含假設(shè)系統(tǒng)里只有一個(gè)決策者它能掌握全部信息并且目標(biāo)清晰。這個(gè)假設(shè)在很多場(chǎng)景下成立比如“根據(jù)模板生成周報(bào)”“自動(dòng)修復(fù) CI 中的一個(gè)已知錯(cuò)誤”。但當(dāng)任務(wù)需要多方信息、多方利益和多方?jīng)Q策時(shí)單智能體架構(gòu)會(huì)碰到三個(gè)問題。第一沒有真正的沖突討論。一個(gè) Agent 可以假裝站在多個(gè)立場(chǎng)輸出觀點(diǎn)但本質(zhì)上它沒有獨(dú)立的視角和利益約束產(chǎn)出的“多方意見”往往是“一個(gè)聲音的三次重復(fù)”。第二無法代表不同立場(chǎng)。真實(shí)業(yè)務(wù)里的角色差異來自職責(zé)、信息范圍、KPI 的不同一個(gè)統(tǒng)一模型很難同時(shí)忠誠于兩個(gè)沖突的目標(biāo)。第三責(zé)任邊界模糊。當(dāng)一個(gè) Agent 同時(shí)負(fù)責(zé)提方案、批預(yù)算、做實(shí)施、做驗(yàn)收時(shí)出了問題連“哪個(gè)環(huán)節(jié)錯(cuò)了”都很難定位。所以從單智能體走向多智能體不是架構(gòu)上的炫技而是復(fù)雜業(yè)務(wù)任務(wù)的客觀需要。但多智能體一旦出現(xiàn)“協(xié)調(diào)”就成了繞不開的系統(tǒng)級(jí)問題。3. 多智能體協(xié)調(diào)一個(gè)被低估的系統(tǒng)難題3.1 目標(biāo)沖突不同視角的優(yōu)化方向不一致多智能體系統(tǒng)最常見的問題不是“某個(gè) Agent 能力不夠”而是“每個(gè) Agent 都按自己的目標(biāo)最優(yōu)行動(dòng)合起來卻得不到整體最優(yōu)”。舉一個(gè)很常見的例子。假設(shè)系統(tǒng)里有一個(gè)研發(fā) Agent負(fù)責(zé)技術(shù)方案長(zhǎng)期可維護(hù)性一個(gè)業(yè)務(wù) Agent負(fù)責(zé)按季度交付指標(biāo)推進(jìn)一個(gè)安全 Agent負(fù)責(zé)合規(guī)和風(fēng)險(xiǎn)控制。研發(fā) Agent 想重構(gòu)系統(tǒng)業(yè)務(wù) Agent 想盡快上線新功能安全 Agent 要求補(bǔ)齊審計(jì)能力。三個(gè)目標(biāo)單獨(dú)看都合理放在同一個(gè)項(xiàng)目時(shí)間表里就必然沖突。這種沖突靠 prompt 調(diào)優(yōu)很難根治因?yàn)樗墙Y(jié)構(gòu)性的。只要三個(gè) Agent 的角色和 KPI 不變它們的決策偏好就會(huì)持續(xù)發(fā)生碰撞。真正要解決的是設(shè)計(jì)一個(gè)協(xié)調(diào)機(jī)制讓沖突被顯性識(shí)別、有序討論、最終收斂。3.2 信息不對(duì)稱每個(gè)智能體只看到局部人類組織里不同部門掌握的信息范圍不同Agent 系統(tǒng)也一樣。研發(fā) Agent 看到的是代碼庫和測(cè)試結(jié)果業(yè)務(wù) Agent 看到的是用戶反饋和銷售數(shù)據(jù)財(cái)務(wù) Agent 看到的是預(yù)算和成本。它們各自基于局部信息做決策自然會(huì)出現(xiàn)結(jié)論不一致。信息不對(duì)稱帶來的工程后果是重復(fù)工作和決策互相覆蓋。一個(gè) Agent 已經(jīng)確定的技術(shù)方案另一個(gè) Agent 在不知道上下文的情況下可能重新推翻一個(gè) Agent 分配出去的資源另一個(gè) Agent 可能又重復(fù)申請(qǐng)一次。解決信息不對(duì)稱不只是“把共享數(shù)據(jù)庫接上”那么簡(jiǎn)單更重要的是讓 Agent 知道“我知道什么”“我不知道什么”“我該信任誰的判斷”。這已經(jīng)非常接近人類社會(huì)中的信息管理問題。3.3 規(guī)范缺失沒有共識(shí)的協(xié)作是混亂的多智能體系統(tǒng)里最容易被忽略的是行為規(guī)范。人類團(tuán)隊(duì)能高效協(xié)作不只是因?yàn)槌蓡T聰明還因?yàn)榇嬖谝惶状蠹叶甲袷氐囊?guī)則哪些事需要先審批哪些信息必須公開哪一級(jí)別的風(fēng)險(xiǎn)要升級(jí)處理。Agent 系統(tǒng)如果沒有規(guī)范層就會(huì)出現(xiàn)一系列問題某個(gè) Agent 擁有過高權(quán)限在未被授權(quán)的情況下執(zhí)行了高風(fēng)險(xiǎn)操作多個(gè) Agent 同時(shí)修改同一份配置互相覆蓋Agent 之間產(chǎn)生爭(zhēng)議后沒有一致的升級(jí)路徑最終卡死在僵局里。相當(dāng)于在沒有紅綠燈和交規(guī)的道路上每個(gè)司機(jī)駕駛技術(shù)都很好但整體交通依然會(huì)癱瘓。多智能體系統(tǒng)里的“交規(guī)”就是全局規(guī)則層和決策權(quán)限分配。3.4 責(zé)任分散AI 干多了誰對(duì)結(jié)果負(fù)責(zé)多智能體系統(tǒng)執(zhí)行完一個(gè)任務(wù)后如果結(jié)果出問題誰負(fù)責(zé)如果每個(gè)環(huán)節(jié)都是不同 Agent 決策的人類很難從中找到真正的責(zé)任點(diǎn)。更難辦的是每個(gè) Agent 都能基于自己的局部信息和目標(biāo)給出一個(gè)“看起來合理”的解釋。這種責(zé)任分散會(huì)帶來兩個(gè)現(xiàn)實(shí)后果。第一調(diào)試和追溯困難系統(tǒng)出了問題以后只能靠日志逐段還原成本很高。第二人類不敢放權(quán)。如果系統(tǒng)無法明確“哪個(gè)決策導(dǎo)致了什么結(jié)果”管理層只能在大事小事上都介入人工審批多智能體的自動(dòng)化價(jià)值就打了折扣。因此一套好的多智能體架構(gòu)必須從設(shè)計(jì)層面記錄決策軌跡并且為關(guān)鍵決策預(yù)留人工裁決節(jié)點(diǎn)。這不只是為了安全也是為了系統(tǒng)本身的可用性。4. 社會(huì)性扎根的 Agentic AI核心思想4.1 從個(gè)人智能到社會(huì)性智能傳統(tǒng) AI 追求的是“個(gè)人智能”一個(gè)模型能在多大程度上理解和解決一個(gè)問題。但真實(shí)世界里的多數(shù)復(fù)雜任務(wù)靠的不是某個(gè)個(gè)體的超人能力而是一群個(gè)體之間是否形成了有效的協(xié)作結(jié)構(gòu)?!癝ocially Grounded Agentic AI”想強(qiáng)調(diào)的正是這一層智能體的智能不能只看它單獨(dú)解決問題的能力還要看它在多智能體社會(huì)環(huán)境中的表現(xiàn)。一個(gè) Agent 是否能理解其它智能體的目標(biāo)、是否能遵守共同規(guī)范、是否能在沖突中提出建設(shè)性妥協(xié)這些“社會(huì)性能力”往往決定了整個(gè)系統(tǒng)的上限。這意味著評(píng)估一個(gè) Agent 的指標(biāo)也會(huì)發(fā)生變化。過去我們關(guān)心“模型回答正確率”未來還需要關(guān)心“Agent 在協(xié)作中是否尊重邊界、是否透明、是否可被問責(zé)”。4.2 多元視角不是噪聲是信息很多多智能體系統(tǒng)在設(shè)計(jì)時(shí)會(huì)本能地想把所有 Agent 的目標(biāo)統(tǒng)一成一個(gè)獎(jiǎng)勵(lì)函數(shù)或者用“多數(shù)投票”的方式把所有差異化觀點(diǎn)壓平。這種做法在簡(jiǎn)單場(chǎng)景下有效但在復(fù)雜業(yè)務(wù)中會(huì)損失重要信息。一個(gè)用戶增長(zhǎng)方案業(yè)務(wù) Agent 關(guān)注的是轉(zhuǎn)化率研發(fā) Agent 關(guān)注的是系統(tǒng)穩(wěn)定性法務(wù) Agent 關(guān)注的是合規(guī)邊界。這三個(gè)視角不是互相矛盾的噪聲而是同一個(gè)決策需要同時(shí)滿足的三組約束。真正的挑戰(zhàn)不是消除差異而是設(shè)計(jì)一個(gè)流程讓這些差異被完整表達(dá)、公平比較、最終形成可執(zhí)行的共識(shí)。社會(huì)性扎根的 Agentic AI 的判斷是多元視角是有價(jià)值的輸入系統(tǒng)的設(shè)計(jì)目標(biāo)應(yīng)當(dāng)是“在保留差異的前提下達(dá)成協(xié)調(diào)”而不是“提前消滅差異”。要做到這一點(diǎn)協(xié)商機(jī)制比統(tǒng)一指令更有效。4.3 社會(huì)理論如何映射到工程機(jī)制把社會(huì)理論映射到工程機(jī)制可以用下面這張表來對(duì)照社會(huì)理論概念工程對(duì)應(yīng)機(jī)制解決什么協(xié)調(diào)問題角色分工基于角色的 Agent 架構(gòu)職責(zé)邊界明確避免職責(zé)重疊與重復(fù)工作規(guī)范與制度全局規(guī)則層、Guardrails、權(quán)限邊界統(tǒng)一行為底線防止越權(quán)協(xié)商對(duì)話多輪提案與質(zhì)詢協(xié)議處理目標(biāo)沖突對(duì)齊信息民主審議結(jié)構(gòu)化討論加共識(shí)決策匯聚多元視角提升決策質(zhì)量權(quán)威與裁決人類協(xié)調(diào)者或 leader Agent 兜底打破僵局明確責(zé)任聲譽(yù)機(jī)制信任分、歷史履約記錄讓系統(tǒng)學(xué)會(huì)“該聽誰的”這些機(jī)制不是替代關(guān)系而是組合關(guān)系。一個(gè)成熟的多智能體系統(tǒng)通常會(huì)先靠角色分工減少?zèng)_突再用規(guī)范層防止越權(quán)在沖突發(fā)生通過協(xié)商流程處理在協(xié)商無法收斂時(shí)升級(jí)到權(quán)威裁決。社會(huì)理論的價(jià)值是讓這些機(jī)制不是零散的經(jīng)驗(yàn)而是一套有邏輯的完整框架。4.4 一個(gè)示例協(xié)商民主式的協(xié)調(diào)在眾多社會(huì)協(xié)調(diào)機(jī)制里協(xié)商民主式的“提案—質(zhì)詢—共識(shí)”流程特別適合作為多智能體協(xié)調(diào)的起步設(shè)計(jì)。它的核心思想是先讓每個(gè)智能體基于自己的視角提出完整方案然后允許其它智能體對(duì)方案提出質(zhì)疑最后基于質(zhì)疑反饋迭代方案逐步收斂共識(shí)。這個(gè)設(shè)計(jì)對(duì)應(yīng)到工程實(shí)現(xiàn)就是后面章節(jié)要寫的代碼骨架。它尤其適合那些“多個(gè)角色、多個(gè)目標(biāo)、需要共同決策”的任務(wù)場(chǎng)景比如技術(shù)方案選型、項(xiàng)目排期、預(yù)留分配、風(fēng)險(xiǎn)評(píng)審。當(dāng)然這不是唯一的協(xié)調(diào)機(jī)制。高頻低風(fēng)險(xiǎn)的場(chǎng)景可以用更輕量的規(guī)則比如自動(dòng)化的優(yōu)先級(jí)隊(duì)列低頻高風(fēng)險(xiǎn)的場(chǎng)景可以用更重型的審批鏈比如必須經(jīng)過人類確認(rèn)的逐級(jí)升級(jí)。選擇哪種機(jī)制取決于任務(wù)的沖突強(qiáng)度和風(fēng)險(xiǎn)等級(jí)。5. 架構(gòu)實(shí)戰(zhàn)最小化社會(huì)性協(xié)調(diào)示例5.1 整體結(jié)構(gòu)與文件說明為了把前面講的概念落到可運(yùn)行的代碼我設(shè)計(jì)了一個(gè)最小化的社會(huì)性協(xié)調(diào)系統(tǒng)。整個(gè)示例只包含四個(gè)文件智能體模型、協(xié)調(diào)流程、Prompt 模板、入口程序。這個(gè)示例不依賴任何第三方庫用的是 Python 3.10 以上的標(biāo)準(zhǔn)庫。它不調(diào)用真實(shí) LLM而是用固定字符串模擬智能體提案目的是讓你把注意力放在協(xié)調(diào)流程本身。真實(shí)工程中你只需要把智能體的提案方法替換成 LLM 調(diào)用即可。文件結(jié)構(gòu)與對(duì)應(yīng)職責(zé)如下. ├── agent_model.py # 智能體模型角色、視角、約束、提案與質(zhì)詢 ├── coordination.py # 協(xié)調(diào)流程提案、質(zhì)詢、共識(shí)判定、輪次控制 ├── prompts.py # LLM Prompt 模板真實(shí)工程中如何注入角色信息 └── main.py # 入口程序創(chuàng)建智能體并啟動(dòng)協(xié)調(diào)流程5.2 智能體模型定義先看智能體模型。一個(gè)智能體除了名字還應(yīng)該有角色、視角、偏好和約束。這里的關(guān)鍵設(shè)計(jì)是每個(gè)智能體都自帶一套獨(dú)立的constraints這決定了它后續(xù)提案和質(zhì)詢時(shí)的行為邊界。# 文件路徑agent_model.py 一個(gè)最小化的社會(huì)性智能體模型。 每個(gè)智能體包含身份、視角、能力邊界與偏好。 from dataclasses import dataclass, field from typing import Dict, List, Optional dataclass class Agent: name: str # 智能體唯一標(biāo)識(shí) role: str # 在團(tuán)隊(duì)中承擔(dān)的角色 perspective: str # 觀察問題的視角 preferences: Dict[str, float] field(default_factorydict) constraints: List[str] field(default_factorylist) def make_proposal(self, task: str) - str: 基于自己的視角生成提案。 演示版直接返回固定格式的字符串。 真實(shí)工程中應(yīng)在這里調(diào)用 LLM并將 role、 perspective、constraints 注入系統(tǒng)提示詞。 return ( f【{self.role}】方案優(yōu)先保證{self.perspective}目標(biāo)。 f建議采用最小驗(yàn)證路徑并在 2 周內(nèi)完成核心閉環(huán)。 ) def raise_objection(self, proposal: str, other: Agent) - str: 對(duì)其它智能體的提案提出異議。 這里返回結(jié)構(gòu)化的反對(duì)意見用于演示“交叉質(zhì)詢”環(huán)節(jié)。 return ( f{self.name} 對(duì) {other.name} 提出異議 f當(dāng)前方案未充分覆蓋 {self.perspective} 的風(fēng)險(xiǎn) f需要補(bǔ)充量化評(píng)估與回滾預(yù)案。 )這個(gè)模型的核心不是那些固定字符串而是constraints字段。在真實(shí)系統(tǒng)中約束會(huì)被寫進(jìn) Prompt限制 LLM 的輸出邊界在仲裁場(chǎng)景中約束又是判斷提案是否有效的重要依據(jù)。建議你在一開始設(shè)計(jì) Agent 模型時(shí)就把約束和偏好顯性建模而不是讓它們隱式混在自然語言里。5.3 協(xié)調(diào)流程實(shí)現(xiàn)協(xié)調(diào)流程是整個(gè)示例的核心。它實(shí)現(xiàn)了一個(gè)“提案—質(zhì)詢—共識(shí)”的循環(huán)。每一輪所有智能體先提出自己的方案然后相互質(zhì)詢接著計(jì)算當(dāng)前共識(shí)度如果共識(shí)度達(dá)到閾值流程結(jié)束否則帶著上一輪的異議進(jìn)入下一輪。# 文件路徑coordination.py 基于“提案-質(zhì)詢-共識(shí)”的多智能體協(xié)調(diào)流程。 這個(gè)流程的設(shè)計(jì)參照了協(xié)商民主理論先表達(dá)立場(chǎng) 再交叉質(zhì)詢最后嘗試收斂共識(shí)。 from typing import Dict, List from agent_model import Agent def _calc_consensus(proposals: Dict[str, str]) - float: 演示用共識(shí)度計(jì)算函數(shù)。 真實(shí)場(chǎng)景中應(yīng)該替換為向量語義相似度、 關(guān)鍵要素覆蓋率或評(píng)分模型給出的共識(shí)分?jǐn)?shù)。 if not proposals: return 0.0 # 演示邏輯當(dāng)提案數(shù)量大于 1 時(shí)暫時(shí)固定返回 0.5。 # 這樣做的目的是讓你看到機(jī)械協(xié)商無法收斂時(shí) # 系統(tǒng)最終必須把人拉進(jìn)決策閉環(huán)。 return 0.5 if len(proposals) 1 else 1.0 def run_coordination( task: str, agents: List[Agent], max_rounds: int 3, consensus_threshold: float 0.8, ): 執(zhí)行多智能體協(xié)調(diào)流程。 :param task: 需要協(xié)調(diào)完成的任務(wù)描述 :param agents: 參與協(xié)調(diào)的智能體列表 :param max_rounds: 最大協(xié)商輪數(shù) :param consensus_threshold: 共識(shí)度閾值 round_no 0 shared_context: Dict[str, str] {} while round_no max_rounds: print(f\n 第 {round_no 1} 輪協(xié)商 ) proposals {} for agent in agents: proposal agent.make_proposal(task) proposals[agent.name] proposal print(f[提案] {agent.name}: {proposal}) for agent in agents: for other in agents: if agent other: continue objection agent.raise_objection( proposals.get(other.name, ), other ) print(f[質(zhì)疑] {objection}) consensus _calc_consensus(proposals) print(f[共識(shí)度] {consensus:.2f}閾值 {consensus_threshold}) if consensus consensus_threshold: print( 共識(shí)達(dá)成協(xié)調(diào)結(jié)束。) return proposals, consensus, round_no 1 # 未達(dá)成共識(shí)時(shí)記錄當(dāng)前異議并更新共享上下文。 shared_context[last_round_objections] 、.join( f{name}: {proposal[:20]} for name, proposal in proposals.items() ) print( 未達(dá)成共識(shí)進(jìn)入下一輪。共享上下文已更新。) round_no 1 print( 達(dá)到最大輪數(shù)交給人類協(xié)調(diào)者裁決。) return proposals, consensus, round_no這里的_calc_consensus故意寫得非常簡(jiǎn)單恒定為 0.5。這樣好處是讓示例不依賴外部模型就能完整演示流程同時(shí)也能直觀展示一個(gè)事實(shí)僅靠形式化的協(xié)商輪次無法真正收斂觀點(diǎn)。真實(shí)系統(tǒng)一定要把共識(shí)判定換成語義級(jí)別的判斷否則系統(tǒng)只會(huì)“走了流程但沒有進(jìn)展”。5.4 Prompt 模板設(shè)計(jì)把社會(huì)性協(xié)調(diào)遷移到真實(shí)系統(tǒng)時(shí)Prompt 模板是你傳遞角色、視角和約束的關(guān)鍵渠道。下面這個(gè)模板把前面 Agent 模型的幾個(gè)字段全部映射到了 Prompt 里。# 文件路徑prompts.py SYSTEM_PROMPT_TEMPLATE \ 你是一個(gè)承擔(dān) {role} 職責(zé)的智能體當(dāng)前以 {perspective} 視角參與團(tuán)隊(duì)協(xié)作。 你所在團(tuán)隊(duì)正在處理的任務(wù) {task} 對(duì)你的硬性約束 {constraints} 本次協(xié)商中你可以參考的共享上下文 {context} 請(qǐng)輸出結(jié)構(gòu)化的提案 1. 方案主題 2. 核心行動(dòng)項(xiàng)最多 3 條 3. 你視角下最重要的風(fēng)險(xiǎn) 4. 對(duì)其它視角方案的潛在反對(duì)意見 這個(gè)模板最關(guān)鍵的地方是要求每個(gè)智能體輸出結(jié)構(gòu)化內(nèi)容特別是“最重要的風(fēng)險(xiǎn)”和“對(duì)其它視角方案的潛在反對(duì)意見”。如果沒有這兩個(gè)字段LLM 傾向于順著已有觀點(diǎn)輸出一堆平安無事的方案協(xié)商就會(huì)失去意義。你可以根據(jù)具體任務(wù)擴(kuò)展字段但“必須明確表達(dá)風(fēng)險(xiǎn)”和“必須回應(yīng)其它視角”這兩個(gè)約束不要去掉。5.5 入口程序與運(yùn)行說明入口程序負(fù)責(zé)創(chuàng)建三個(gè)不同視角的智能體然后啟動(dòng)協(xié)調(diào)流程。為了讓示例具有代表性我設(shè)置了研發(fā)、產(chǎn)品、業(yè)務(wù)三個(gè)角色它們的視角和約束正好覆蓋了工程項(xiàng)目中常見的三組沖突。# 文件路徑main.py from agent_model import Agent from coordination import run_coordination def main(): agents [ Agent( nameeng-01, role研發(fā)工程師, perspective工程可行性與穩(wěn)定性, constraints[不允許破壞現(xiàn)有數(shù)據(jù)流, 優(yōu)先選擇可回滾方案], ), Agent( nameprod-01, role產(chǎn)品經(jīng)理, perspective用戶價(jià)值與交付節(jié)奏, constraints[需要滿足關(guān)鍵用戶體驗(yàn)指標(biāo)], ), Agent( namebiz-01, role業(yè)務(wù)負(fù)責(zé)人, perspective成本、收入與風(fēng)險(xiǎn), constraints[預(yù)算需要控制在配置范圍內(nèi)], ), ] task 為內(nèi)部知識(shí)庫設(shè)計(jì)一個(gè) AI 問答助手升級(jí)方案 proposals, consensus, rounds run_coordination(task, agents) print(\n最終提案) for name, proposal in proposals.items(): print(f {name}: {proposal}) print(f協(xié)調(diào)輪數(shù){rounds}最終共識(shí)度{consensus:.2f}) if __name__ __main__: main()運(yùn)行方式很簡(jiǎn)單確認(rèn)當(dāng)前目錄包含上面四個(gè)文件后直接執(zhí)行python main.py這個(gè)程序不依賴外部服務(wù)所以不存在 API Key、網(wǎng)絡(luò)連接等前置條件。它的重點(diǎn)是讓你完整跑通“多智能體協(xié)調(diào)”的代碼骨架后續(xù)再對(duì)接真實(shí)模型時(shí)就只需要替換提案生成和共識(shí)判定兩部分。6. 運(yùn)行結(jié)果與效果驗(yàn)證6.1 預(yù)期運(yùn)行輸出運(yùn)行上面的程序第一輪的輸出大致如下 第 1 輪協(xié)商 [提案] eng-01: 【研發(fā)工程師】方案優(yōu)先保證工程可行性與穩(wěn)定性目標(biāo)。建議采用最小驗(yàn)證路徑并在 2 周內(nèi)完成核心閉環(huán)。 [提案] prod-01: 【產(chǎn)品經(jīng)理】方案優(yōu)先保證用戶價(jià)值與交付節(jié)奏目標(biāo)。建議采用最小驗(yàn)證路徑并在 2 周內(nèi)完成核心閉環(huán)。 [提案] biz-01: 【業(yè)務(wù)負(fù)責(zé)人】方案優(yōu)先保證成本、收入與風(fēng)險(xiǎn)目標(biāo)。建議采用最小驗(yàn)證路徑并在 2 周內(nèi)完成核心閉環(huán)。 [質(zhì)疑] eng-01 對(duì) prod-01 提出異議當(dāng)前方案未充分覆蓋 工程可行性與穩(wěn)定性 的風(fēng)險(xiǎn)需要補(bǔ)充量化評(píng)估與回滾預(yù)案。 [質(zhì)疑] eng-01 對(duì) biz-01 提出異議當(dāng)前方案未充分覆蓋 工程可行性與穩(wěn)定性 的風(fēng)險(xiǎn)需要補(bǔ)充量化評(píng)估與回滾預(yù)案。 [質(zhì)疑] prod-01 對(duì) eng-01 提出異議當(dāng)前方案未充分覆蓋 用戶價(jià)值與交付節(jié)奏 的風(fēng)險(xiǎn)需要補(bǔ)充量化評(píng)估與回滾預(yù)案。 [質(zhì)疑] prod-01 對(duì) biz-01 提出異議當(dāng)前方案未充分覆蓋 用戶價(jià)值與交付節(jié)奏 的風(fēng)險(xiǎn)需要補(bǔ)充量化評(píng)估與回滾預(yù)案。 [質(zhì)疑] biz-01 對(duì) eng-01 提出異議當(dāng)前方案未充分覆蓋 成本、收入與風(fēng)險(xiǎn) 的風(fēng)險(xiǎn)需要補(bǔ)充量化評(píng)估與回滾預(yù)案。 [質(zhì)疑] biz-01 對(duì) prod-01 提出異議當(dāng)前方案未充分覆蓋 成本、收入與風(fēng)險(xiǎn) 的風(fēng)險(xiǎn)需要補(bǔ)充量化評(píng)估與回滾預(yù)案。 [共識(shí)度] 0.50閾值 0.80 未達(dá)成共識(shí)進(jìn)入下一輪。共享上下文已更新。后續(xù)兩輪會(huì)重復(fù)類似的流程。由于演示版共識(shí)判定固定返回 0.5三輪之后程序會(huì)輸出 達(dá)到最大輪數(shù)交給人類協(xié)調(diào)者裁決。 最終提案 eng-01: 【研發(fā)工程師】方案優(yōu)先保證工程可行性與穩(wěn)定性目標(biāo)。建議采用最小驗(yàn)證路徑并在 2 周內(nèi)完成核心