人智能體協(xié)議:破解智能體協(xié)作通信難題的鑰匙)
最近AI圈子討論最兇的除了模型參數(shù)和跑分就是智能體之間怎么“說(shuō)話(huà)”的問(wèn)題了。手機(jī)里的個(gè)人助手、電腦上的辦公助理、家里那個(gè)智能音箱單拎出來(lái)都能干活可一旦想讓它們接力完成一件事幾乎就是雞同鴨講。各個(gè)大廠(chǎng)都在做自己的智能體平臺(tái)互相之間卻沒(méi)有一套統(tǒng)一的溝通語(yǔ)言。這個(gè)節(jié)骨眼上某頭部科技平臺(tái)放出的PAPPerson Agent Protocol個(gè)人智能體協(xié)議資料被很多人視為破局的關(guān)鍵一步。我花了兩周時(shí)間把現(xiàn)有資料啃了一遍又用模擬項(xiàng)目實(shí)際跑了一版這篇就把協(xié)議的核心設(shè)計(jì)、消息流轉(zhuǎn)、權(quán)限模型和落地時(shí)容易踩的坑一次講透。不管是做智能體應(yīng)用、研究Agent間通信機(jī)制還是單純想搞清楚下一代個(gè)人助理長(zhǎng)什么樣都值得往下看。1. PAP協(xié)議到底在解決什么問(wèn)題個(gè)人智能體的“方言困境”1.1 智能體數(shù)量爆發(fā)之后最先崩的是“協(xié)作”兩三年前我們談AI助手說(shuō)的多數(shù)還是單個(gè)聊天窗口?,F(xiàn)在不一樣了購(gòu)物助手、日程助手、健康管理助手、代碼助手……每個(gè)人身邊都開(kāi)始圍繞不同的場(chǎng)景聚集起一批智能體。它們的底層模型可能來(lái)自不同廠(chǎng)商數(shù)據(jù)存在不同服務(wù)端權(quán)限體系也完全不同。問(wèn)題也隨之而來(lái)用戶(hù)需要在每個(gè)智能體里重復(fù)交代自己的偏好、習(xí)慣和身份信息。上個(gè)月跟購(gòu)物助手說(shuō)過(guò)“鞋碼43、偏愛(ài)深色系”這個(gè)月?lián)Q了辦公助手它又得重新問(wèn)一遍。更麻煩的是跨智能體任務(wù)——讓助手A幫我整理差旅發(fā)票再讓助手B根據(jù)發(fā)票生成報(bào)銷(xiāo)單這兩個(gè)動(dòng)作目前基本要靠人肉搬運(yùn)數(shù)據(jù)。PAP要解決的正是這個(gè)層面的問(wèn)題它定義了一套智能體與智能體之間、以及人與智能體之間的對(duì)話(huà)和協(xié)作規(guī)范。有點(diǎn)像給所有只會(huì)講方言的智能體統(tǒng)一了一份普通話(huà)手冊(cè)。協(xié)議不關(guān)心你的模型是哪個(gè)、跑在什么框架上只關(guān)心你怎么描述身份、怎么聲明能力、怎么傳遞會(huì)話(huà)狀態(tài)。1.2 現(xiàn)有交互方式為什么撐不起“多智能體協(xié)作”有人可能會(huì)問(wèn)現(xiàn)在很多智能體不也能調(diào)用工具、能執(zhí)行任務(wù)嗎確實(shí)能但細(xì)看會(huì)發(fā)現(xiàn)都是“局域本地”的玩法。第一種是單個(gè)智能體內(nèi)部的工具調(diào)用Function Calling。這類(lèi)方案把函數(shù)定義塞給模型模型按需觸發(fā)本質(zhì)上是在一個(gè)進(jìn)程內(nèi)做函數(shù)路由跨設(shè)備、跨廠(chǎng)商根本不適用。第二種是各廠(chǎng)商自研的Agent通信接口。功能上該有的都有但字段語(yǔ)義、認(rèn)證方式、錯(cuò)誤碼完全各寫(xiě)各的。A廠(chǎng)商的“目標(biāo)”字段可能叫targetB廠(chǎng)商叫recipient對(duì)接一次光對(duì)齊字段就要花掉一周。第三種更常見(jiàn)干脆不開(kāi)放接口所有協(xié)作都靠用戶(hù)手動(dòng)復(fù)制粘貼結(jié)果。比如把聊天記錄里的會(huì)議紀(jì)要復(fù)制到待辦應(yīng)用里讓待辦助手自己再解析一遍。費(fèi)時(shí)不說(shuō)信息在傳遞過(guò)程中還會(huì)丟。PAP的核心思路是把智能體之間的通信抽象成一套穩(wěn)定的“信封內(nèi)容”結(jié)構(gòu)。信封負(fù)責(zé)身份、路由、會(huì)話(huà)、權(quán)限這些通用的東西內(nèi)容則是各家自己定義的任務(wù)載荷。這樣一來(lái)通用部分可以標(biāo)準(zhǔn)化特定能力又保留了個(gè)性化的空間。2. 協(xié)議的三根支柱身份、會(huì)話(huà)、能力發(fā)現(xiàn)2.1 個(gè)人數(shù)字身份不是賬號(hào)ID是授權(quán)過(guò)的“臨時(shí)身份”P(pán)AP里最先打動(dòng)我的是它對(duì)人這個(gè)維度的建?!,F(xiàn)在市面上多數(shù)接口認(rèn)證的都是“設(shè)備”或“賬號(hào)”P(pán)AP則引入了一個(gè)叫Person Identity的概念。它不是固定的用戶(hù)賬號(hào)而是用戶(hù)在某次授權(quán)范圍內(nèi)生成的一個(gè)臨時(shí)身份表示。看一個(gè)簡(jiǎn)化后的協(xié)議頭就明白了{(lán) protocolVersion: 0.9.3, person: { personId: p_8f3a2c91, displayName: 匿名用戶(hù), profile: { locale: zh-CN, timezone: Asia/Shanghai, preferences: { theme: dark, replyStyle: concise } }, credential: { type: bearer, token: eyJhbGciOi..., expiresAt: 2026-03-01T12:00:00Z } } }這里有幾個(gè)設(shè)計(jì)得很克制的地方personId不是明文手機(jī)號(hào)或郵箱而是一個(gè)匿名化之后仍能穩(wěn)定關(guān)聯(lián)的標(biāo)識(shí)符防止平臺(tái)間互相串?dāng)?shù)據(jù)。profile是可選字段用戶(hù)不想給完全可以不給。credential是短期憑證過(guò)期即失效避免一個(gè)token滿(mǎn)天飛導(dǎo)致泄露后永久有效。我在模擬項(xiàng)目里實(shí)際感受是身份層這樣設(shè)計(jì)之后整個(gè)協(xié)議的安全基座穩(wěn)了很多。后面所有權(quán)限判斷都是基于這個(gè)臨時(shí)身份做的而不是基于底層賬號(hào)這讓跨平臺(tái)調(diào)用時(shí)的責(zé)任邊界清晰了不少。2.2 會(huì)話(huà)狀態(tài)傳“狀態(tài)”而不是傳“聊天記錄”智能體和智能體協(xié)作時(shí)最容易犯的錯(cuò)是試圖把整個(gè)對(duì)話(huà)上下文丟給對(duì)方。像“用戶(hù)剛才說(shuō)了要訂明天下午的火車(chē)票特別強(qiáng)調(diào)了靠窗……”這種原始文本傳給下游智能體之后對(duì)方還得自己理解一遍既浪費(fèi)token又容易理解偏。PAP的做法是把上下文分成三層每層都有明確的生命周期上下文層級(jí)生命周期典型內(nèi)容傳遞范圍全局上下文跨會(huì)話(huà)長(zhǎng)期存在用戶(hù)長(zhǎng)期偏好、基礎(chǔ)身份信息僅在用戶(hù)授權(quán)時(shí)隨身份傳遞會(huì)話(huà)上下文單次協(xié)作任務(wù)全過(guò)程任務(wù)目標(biāo)、已確認(rèn)條件、待決策項(xiàng)跟隨sessionId在所有參與智能體間共享步驟上下文單個(gè)調(diào)用請(qǐng)求本次調(diào)用的輸入?yún)?shù)、臨時(shí)結(jié)果只存在于單次request/response中這個(gè)分層設(shè)計(jì)最大的好處是讓智能體之間傳遞的不再是“一句話(huà)”而是“一個(gè)狀態(tài)”。舉個(gè)例子主助手把任務(wù)交給發(fā)票識(shí)別助手時(shí)傳過(guò)去的不是用戶(hù)啰嗦了半天的那段語(yǔ)音轉(zhuǎn)文字而是一個(gè)結(jié)構(gòu)化的任務(wù)描述{ taskGoal: 提取2026年2月差旅發(fā)票中的金額與發(fā)票號(hào), confirmedConditions: { timeRange: 2026-02-01~2026-02-28, includeType: [train, hotel] }, pendingDecisions: [], completedSteps: [pdf_download, files_num12] }下游智能體拿到這份狀態(tài)不需要猜用戶(hù)到底想干嘛直接在結(jié)構(gòu)上做增量就好。實(shí)測(cè)下來(lái)這種結(jié)構(gòu)化狀態(tài)比直接傳聊天記錄至少省掉一半的無(wú)效解析時(shí)間。2.3 能力發(fā)現(xiàn)每個(gè)Agent都有一份“菜單”P(pán)AP里每個(gè)智能體需要發(fā)布一份能力清單協(xié)議里叫Capability Manifest。這東西就像一個(gè)餐廳的菜單標(biāo)明了每個(gè)菜是什么、什么價(jià)格、做多久、需不需要額外確認(rèn)。{ agentId: agent_office_001, agentName: 辦公助手, capabilities: [ { action: invoice.ocr_extract, inputSchema: { type: object, properties: { fileUrls: {type: array, items: {type: string}} }, required: [fileUrls] }, outputSchema: { type: object, properties: { invoiceCount: {type: integer}, totalAmount: {type: number} } }, permissionLevel: user_consent, estimatedMs: 2000 } ] }能力清單的意義在于讓“我的智能體到底能干什么”這件事變得可查詢(xún)、可發(fā)現(xiàn)、可校驗(yàn)。主智能體在跨平臺(tái)調(diào)用之前可以先去發(fā)現(xiàn)服務(wù)拉取目標(biāo)智能體的Manifest比對(duì)一下對(duì)方是否支持自己需要的action避免了調(diào)用到一半才發(fā)現(xiàn)對(duì)面沒(méi)這個(gè)功能的尷尬。實(shí)際做模擬項(xiàng)目時(shí)我還在Manifest里加了兩個(gè)自定義字段rateLimit和offlineSupport。有這兩個(gè)字段之后路由邏輯可以提前避開(kāi)那些當(dāng)前負(fù)載很高、或者已經(jīng)進(jìn)入離線(xiàn)維護(hù)狀態(tài)的智能體調(diào)度體驗(yàn)一下子順了很多。3. 一次跨智能體調(diào)用是怎么跑通的消息格式與時(shí)序拆解3.1 消息信封為什么每個(gè)字段都不能省協(xié)議的消息結(jié)構(gòu)是典型的“信封載荷”設(shè)計(jì)。信封是通用的載荷是業(yè)務(wù)自定義的。一個(gè)典型的請(qǐng)求消息長(zhǎng)這樣{ protocolVersion: 0.9.3, messageId: msg_1a2b3c4d, type: agent.request, sender: agent_main_001, receiver: agent_office_001, sessionId: sess_9f8e7d6c, timestamp: 2026-03-01T03:21:00Z, payload: { action: invoice.ocr_extract, input: { fileUrls: [https://example.com/invoices/202602.zip] }, scope: read:invoice } }幾個(gè)容易被忽略但特別重要的字段messageId每條消息的唯一ID作用是冪等。接收方如果重復(fù)收到同一個(gè)messageId直接丟棄或者返回上次的結(jié)果不會(huì)執(zhí)行兩遍。sender/receiver邏輯地址而不是物理地址解耦部署位置。sessionId串起整個(gè)多輪協(xié)作任務(wù)。scope聲明這次調(diào)用需要的最小權(quán)限范圍。3.2 完整調(diào)用鏈路從任務(wù)下發(fā)到結(jié)果回收我用自己的模擬項(xiàng)目跑通了整個(gè)鏈路大致分為六步步驟動(dòng)作關(guān)鍵協(xié)議內(nèi)容1主智能體查詢(xún)辦公助手的能力清單請(qǐng)求能力發(fā)現(xiàn)服務(wù)匹配invoice.ocr_extract2主智能體創(chuàng)建協(xié)作會(huì)話(huà)生成sessionId初始化結(jié)構(gòu)化任務(wù)狀態(tài)3主智能體下發(fā)任務(wù)請(qǐng)求通過(guò)標(biāo)準(zhǔn)消息信封發(fā)送agent.request4辦公助手請(qǐng)求用戶(hù)確認(rèn)返回consentRequiredtrue攜帶確認(rèn)回調(diào)地址5用戶(hù)確認(rèn)授權(quán)辦公助手訪(fǎng)問(wèn)發(fā)票文件通過(guò)統(tǒng)一授權(quán)界面審批一次性授權(quán)6辦公助手執(zhí)行識(shí)別并回傳結(jié)果返回agent.response更新會(huì)話(huà)狀態(tài)我當(dāng)時(shí)用Python寫(xiě)了個(gè)簡(jiǎn)化版的調(diào)度核心核心邏輯大概是這樣async def dispatch(request, registry): target registry.resolve(request[receiver]) action request[payload][action] if not target.capable(action): return build_error(request, CAPABILITY_NOT_FOUND) if request[payload].get(consentRequired): confirmed await request_consent( session_idrequest[sessionId], scoperequest[payload].get(scope), actionaction ) if not confirmed: return build_error(request, PERMISSION_DENIED) response await target.invoke(request) return response這段代碼雖然很粗糙但已經(jīng)覆蓋了協(xié)議里最核心的三個(gè)機(jī)制能力校驗(yàn)、動(dòng)態(tài)授權(quán)、任務(wù)分發(fā)。真實(shí)場(chǎng)景里還會(huì)多很多細(xì)節(jié)比如超時(shí)、重試、消息確認(rèn)但骨架就是這樣。3.3 錯(cuò)誤處理與重試不能一言不合就報(bào)錯(cuò)協(xié)議里定義了一套規(guī)范的錯(cuò)誤碼我抽了幾個(gè)最常見(jiàn)的整理成表格錯(cuò)誤碼名稱(chēng)含義推薦處理4001PERMISSION_DENIED缺少授權(quán)檢查scope是否足夠引導(dǎo)用戶(hù)授權(quán)4002CAPABILITY_NOT_FOUND目標(biāo)智能體不支持該能力查詢(xún)目標(biāo)Manifest并選擇替代方案4003CONTEXT_LIMIT_EXCEEDED會(huì)話(huà)上下文超限觸發(fā)上下文壓縮或開(kāi)啟新一輪會(huì)話(huà)4091CONFLICT_DUPLICATE_MESSAGE重復(fù)消息忽略或返回上次結(jié)果5001INTERNAL_ERROR目標(biāo)智能體內(nèi)部出錯(cuò)按指數(shù)退避策略重試這里最容易踩的坑是重試。如果目標(biāo)智能體已經(jīng)處理完但響應(yīng)包丟了盲目重發(fā)會(huì)造成重復(fù)執(zhí)行。所以我后來(lái)在模擬項(xiàng)目里加了一個(gè)基于messageId的去重表重發(fā)時(shí)帶上相同的messageId接收方識(shí)別后直接返回緩存的結(jié)果。這樣重試才真正安全。4. 權(quán)限與隱私設(shè)計(jì)容易被低估的協(xié)議半壁江山4.1 最小權(quán)限原則scope不是擺設(shè)PAP的權(quán)限模型是我認(rèn)為整個(gè)協(xié)議里含金量最高的部分。它嚴(yán)格遵循最小權(quán)限原則主智能體在調(diào)用子智能體時(shí)必須在請(qǐng)求里明確聲明本次調(diào)用的scope比如read:invoice、write:calendar。這些scope會(huì)被授權(quán)服務(wù)做二次校驗(yàn)。即使主智能體貼了一個(gè)比較大的scope授權(quán)服務(wù)也會(huì)把實(shí)際可執(zhí)行的操作限制在智能體本身已被授予的范圍之內(nèi)。也就是說(shuō)主智能體不能通過(guò)調(diào)用來(lái)“放大”自己的權(quán)限scope只能縮小、不能放大。我用一個(gè)生活化的類(lèi)比來(lái)理解這個(gè)機(jī)制你手里有一張門(mén)禁卡能開(kāi)辦公區(qū)的所有門(mén)但你把臨時(shí)卡發(fā)給訪(fǎng)客時(shí)可以只給電梯層和會(huì)議室的權(quán)限。協(xié)議保證你在發(fā)臨時(shí)卡的時(shí)候沒(méi)法把“機(jī)房權(quán)限”一并塞給對(duì)方。4.2 敏感操作強(qiáng)制二次確認(rèn)human-in-the-loop協(xié)議里專(zhuān)門(mén)為支付、發(fā)送消息、修改數(shù)據(jù)這類(lèi)敏感操作設(shè)計(jì)了human-in-the-loop機(jī)制。關(guān)鍵字段是consentRequired一旦置true下游智能體不能直接執(zhí)行必須先返回一個(gè)確認(rèn)請(qǐng)求給用戶(hù)設(shè)備。我一開(kāi)始覺(jué)得這有點(diǎn)多此一舉直到模擬了“主智能體自動(dòng)讓辦公助手把報(bào)銷(xiāo)單發(fā)給財(cái)務(wù)部門(mén)”的場(chǎng)景才意識(shí)到必要性。如果沒(méi)有二次確認(rèn)用戶(hù)的一道口頭指令可能會(huì)順著智能體鏈條自動(dòng)執(zhí)行下去中間任何一環(huán)理解偏差都可能導(dǎo)致敏感數(shù)據(jù)發(fā)錯(cuò)地方。協(xié)議的妙處在于它不需要把用戶(hù)的密碼或者支付憑證傳給任何一個(gè)智能體。用戶(hù)確認(rèn)動(dòng)作發(fā)生在統(tǒng)一授權(quán)界面里確認(rèn)之后平臺(tái)頒發(fā)的是一次性授權(quán)憑證授權(quán)范圍精確到單次操作。這樣即使下游智能體是惡意的也拿不到能反復(fù)使用的長(zhǎng)期憑證。4.3 審計(jì)日志與可撤銷(xiāo)憑證給每筆調(diào)用留下痕跡每次跨智能體調(diào)用都會(huì)被記錄到一份除了用戶(hù)本人其他方無(wú)法篡改的授權(quán)日志里內(nèi)容包括誰(shuí)調(diào)的誰(shuí)、用了什么scope、在什么時(shí)間、執(zhí)行了什么action。用戶(hù)可以在授權(quán)中心隨時(shí)查看這些記錄就像銀行賬單一樣每一筆都清清楚楚。一旦發(fā)現(xiàn)可疑調(diào)用用戶(hù)可以直接撤銷(xiāo)某個(gè)智能體的全部授權(quán)。撤銷(xiāo)生效后該智能體在后續(xù)所有請(qǐng)求中都會(huì)直接收到4001已撤銷(xiāo)授權(quán)的提示。我自己的體驗(yàn)是可撤銷(xiāo)憑證比密碼輪換高效得多——密碼輪換需要你找到所有使用場(chǎng)景逐一更換撤銷(xiāo)憑證只要在授權(quán)中心一鍵操作所有下游調(diào)用立刻失效。5. 落地過(guò)程中的三個(gè)大坑來(lái)自模擬項(xiàng)目的排錯(cuò)記錄5.1 版本協(xié)商老智能體收到新字段直接翻臉協(xié)議剛出來(lái)的時(shí)候我默認(rèn)所有智能體都跑同一個(gè)版本結(jié)果在模擬環(huán)境里接第一個(gè)“老設(shè)備”時(shí)就翻車(chē)了。對(duì)方實(shí)現(xiàn)的是0.8版協(xié)議不認(rèn)識(shí)0.9.3版的contextCompaction字段收到消息后雖然沒(méi)報(bào)錯(cuò)卻把新字段靜默丟掉了。這比直接報(bào)錯(cuò)還麻煩——報(bào)錯(cuò)你能知道哪里不對(duì)靜默丟棄導(dǎo)致的是數(shù)據(jù)錯(cuò)位我以為對(duì)方收到了壓縮后的摘要實(shí)際上對(duì)方拿到的是截?cái)嗪蟮陌虢叵⒎祷氐慕Y(jié)果自然牛頭不對(duì)馬嘴。后來(lái)我加了一套版本協(xié)商機(jī)制請(qǐng)求發(fā)出之前先發(fā)一條agent.discover消息探對(duì)方的協(xié)議版本和特性支持列表協(xié)商出一個(gè)雙方都支持的公共特性集再進(jìn)行實(shí)際調(diào)用。整個(gè)過(guò)程有點(diǎn)像兩個(gè)人見(jiàn)面先確定“你用微信還是用短信”再開(kāi)始談?wù)?。def negotiate_features(caller_supported: set, callee_supported: set): common caller_supported callee_supported if contextCompaction not in common: # 回退到原始上下文傳輸 use_context_compaction False return common5.2 上下文膨脹結(jié)構(gòu)化傳輸也會(huì)撐爆PAP不傳聊天原文傳的是結(jié)構(gòu)化狀態(tài)但這并不意味著不會(huì)膨脹。模擬到第20輪協(xié)作時(shí)會(huì)話(huà)上下文文件已經(jīng)接近4MB每次同步都明顯變慢。我的解決辦法是給每一個(gè)會(huì)話(huà)設(shè)置token預(yù)算超過(guò)85%時(shí)自動(dòng)觸發(fā)壓縮策略。壓縮策略分兩步先把超過(guò)優(yōu)先級(jí)的細(xì)節(jié)片段折疊成摘要比如把“第3號(hào)發(fā)票金額128.5元、含稅、抵扣聯(lián)完好”壓成“詳情見(jiàn)附件緩存”如果還超就把最早完成的步驟上下文歸檔只保留任務(wù)目標(biāo)、當(dāng)前階段、以及最近兩輪的增量狀態(tài)。一個(gè)經(jīng)驗(yàn)值可以分享會(huì)話(huà)上下文里真正核心的字段通常只占30%左右其余都是可以安全的歸檔或壓縮的內(nèi)容。我給會(huì)話(huà)設(shè)了128KB的軟上限實(shí)測(cè)在多數(shù)任務(wù)中都不會(huì)觸發(fā)壓縮但到了長(zhǎng)鏈路任務(wù)里這套機(jī)制救了我好幾次。5.3 智能體循環(huán)調(diào)用兩個(gè)Agent互相等把任務(wù)活活拖死這是我模擬“主智能體嘗試調(diào)用辦公助手整理發(fā)票辦公助手反過(guò)來(lái)想請(qǐng)求主智能體提供歷史報(bào)銷(xiāo)記錄”時(shí)遇到的。兩個(gè)智能體互相發(fā)起請(qǐng)求各自都在等對(duì)方先返回形成典型的循環(huán)等待任務(wù)直接死鎖。排查鏈路比較痛苦日志顯示兩邊都在正常收發(fā)消息看起來(lái)毫無(wú)異常。后來(lái)我在每個(gè)消息上加了調(diào)用鏈IDtraceId和調(diào)用深度計(jì)數(shù)器打日志才發(fā)現(xiàn)調(diào)用棧已經(jīng)嵌套了五十多層從A到B再到A再到B無(wú)限套娃。最后的解法是三層防線(xiàn)單次任務(wù)設(shè)置最大調(diào)用深度超過(guò)10層直接拒絕繼續(xù)轉(zhuǎn)發(fā)調(diào)用鏈上如果檢測(cè)到traceId重復(fù)出現(xiàn)判定為循環(huán)立即終止并返回錯(cuò)誤;每個(gè)調(diào)用請(qǐng)求附帶TTL超過(guò)時(shí)間自動(dòng)失效防止任務(wù)掛死。這三層加完模擬環(huán)境才真正穩(wěn)定下來(lái)。后來(lái)我在思考為什么協(xié)議文檔里沒(méi)強(qiáng)調(diào)這些大概率是因?yàn)檫@類(lèi)問(wèn)題只有在真實(shí)異構(gòu)環(huán)境里才會(huì)暴露純?cè)O(shè)計(jì)階段很難預(yù)料。6. 這類(lèi)協(xié)議的走向與我的幾點(diǎn)體會(huì)6.1 跟現(xiàn)有生態(tài)銜接的想象空間PAP這類(lèi)協(xié)議真正有價(jià)值的地方在于它讓“設(shè)備廠(chǎng)商的助手”和“第三方開(kāi)發(fā)者做的小智能體”處于同一套對(duì)話(huà)規(guī)則之下。短期內(nèi)最可能出現(xiàn)的場(chǎng)景是系統(tǒng)級(jí)助手通過(guò)協(xié)議去調(diào)用那些經(jīng)過(guò)認(rèn)證的垂直領(lǐng)域智能體比如調(diào)用專(zhuān)業(yè)的法務(wù)助手、醫(yī)療咨詢(xún)助手。這并不是說(shuō)要把所有助手合并成一個(gè)巨型應(yīng)用恰恰相反協(xié)議存在的意義是讓不同場(chǎng)景的智能體保持小而專(zhuān)同時(shí)通過(guò)標(biāo)準(zhǔn)化接口組合起來(lái)完成復(fù)雜任務(wù)。用戶(hù)不需要在十個(gè)App之間跳轉(zhuǎn)主助手會(huì)負(fù)責(zé)拆解任務(wù)、分派給合適的子助手、再匯總結(jié)果。6.2 標(biāo)準(zhǔn)化之爭(zhēng)協(xié)議多了等于沒(méi)有協(xié)議現(xiàn)在行業(yè)里的Agent通信協(xié)議已經(jīng)不是一兩個(gè)了各家都有自己的一套草案。PAP的挑戰(zhàn)在于它能不能成為大家愿意共同維護(hù)的標(biāo)準(zhǔn)。歷史上很多好協(xié)議最終沒(méi)能普及不是技術(shù)不行而是生態(tài)推進(jìn)跟不上。我的判斷是決定這類(lèi)協(xié)議命運(yùn)的往往不是技術(shù)細(xì)節(jié)而是三件事第一有沒(méi)有足夠多的頭部玩家愿意開(kāi)放自己的智能體接入第二授權(quán)與隱私模型能不能讓用戶(hù)真正感到可控第三開(kāi)發(fā)者接入的成本夠不夠低——如果對(duì)接PAP比自研一套還麻煩那沒(méi)人會(huì)用。6.3 我做模擬項(xiàng)目期間的一點(diǎn)個(gè)人經(jīng)驗(yàn)最后分享一個(gè)我自己體會(huì)很深的小技巧。不管以后哪種個(gè)人智能體協(xié)議勝出你如果現(xiàn)在就在做Agent相關(guān)開(kāi)發(fā)都可以先把“消息冪等”和“能力發(fā)現(xiàn)”這兩件事做好。它們是最高頻的通用需求而且?guī)缀醪灰蕾?lài)具體協(xié)議版本。把這兩個(gè)抽象層先寫(xiě)穩(wěn)后面無(wú)論接入哪家協(xié)議都只需要寫(xiě)一個(gè)適配器不用改動(dòng)核心業(yè)務(wù)邏輯。還有一點(diǎn)協(xié)議設(shè)計(jì)最忌貪多。PAP目前這套能讓人記住的核心概念本質(zhì)上也就三個(gè)身份、會(huì)話(huà)、能力。把這三點(diǎn)做扎實(shí)權(quán)限、審計(jì)、錯(cuò)誤處理這些周邊的細(xì)節(jié)自然能順理成章地長(zhǎng)出來(lái)。凡是那種想把所有智能體功能全都塞進(jìn)協(xié)議里的規(guī)范大概率會(huì)死在復(fù)雜度上。我在模擬項(xiàng)目里壓測(cè)到兩百多次跨智能體調(diào)用之后最強(qiáng)烈的感受是個(gè)人智能體的未來(lái)不在單個(gè)模型有多強(qiáng)而在于多少個(gè)智能體能像一支配合默契的團(tuán)隊(duì)一樣為了同一個(gè)用戶(hù)目標(biāo)協(xié)作。PAP這類(lèi)協(xié)議就是這支團(tuán)隊(duì)的第一版溝通手冊(cè)。雖然現(xiàn)在它還遠(yuǎn)不算完美但我相信方向是對(duì)的。