話變了,訂單狀態(tài)不能跟著被改寫(xiě))
“前一輪已經(jīng)答應(yīng)我退款”是對(duì)話內(nèi)容不是訂單狀態(tài)。10月19日微軟討論了Agent的內(nèi)部訪問(wèn)風(fēng)險(xiǎn)。把聊天記憶直接當(dāng)成業(yè)務(wù)狀態(tài)會(huì)讓一段看似連貫的解釋獲得不該有的權(quán)限。狀態(tài)由事實(shí)驅(qū)動(dòng)客服可以從詢問(wèn)物流切換到售后咨詢這屬于意圖變化。能否退款卻依賴付款、履約、退貨及審核狀態(tài)。有限狀態(tài)機(jī)應(yīng)讀取可信事件不能接受模型傳入一個(gè)“當(dāng)前狀態(tài)”就繼續(xù)辦理。不要為了限制注入把歷史一刀切成最近五輪。截短會(huì)丟掉用戶已經(jīng)提供的信息也不會(huì)自動(dòng)消除惡意內(nèi)容。把原始對(duì)話作為審計(jì)材料業(yè)務(wù)系統(tǒng)只接收經(jīng)過(guò)類型約束的請(qǐng)求并獨(dú)立查詢狀態(tài)。狀態(tài)轉(zhuǎn)移的拒絕原因應(yīng)返回給客服允許它解釋缺少什么材料。不要讓模型反復(fù)改參數(shù)嘗試撞過(guò)規(guī)則規(guī)則拒絕后需要新的可信事件而不是一段更長(zhǎng)的理由。圖中的正常路徑需要履約事實(shí)支持紅色跳轉(zhuǎn)不因?qū)υ捴械某兄Z而開(kāi)放。用服務(wù)端狀態(tài)拒絕跨階段跳轉(zhuǎn)以下是可離線運(yùn)行的最小示例使用Python標(biāo)準(zhǔn)庫(kù)。輸入均為教學(xué)構(gòu)造不連接業(yè)務(wù)系統(tǒng)。ALLOWED { PAID: {SHIPPED, CANCELLED}, SHIPPED: {DELIVERED}, DELIVERED: {REVIEW}, REVIEW: {REFUNDED, REJECTED}, } def transition(current, event): if event not in ALLOWED.get(current, set()): raise ValueError(invalid transition) return event assert transition(PAID, SHIPPED) SHIPPED for source, target in [(PAID, REFUNDED), (UNKNOWN, REVIEW)]: try: transition(source, target) except ValueError: pass else: raise AssertionError(unexpected transition) print(valid transition accepted; 2 invalid transitions rejected)這個(gè)函數(shù)只驗(yàn)證單次轉(zhuǎn)移。生產(chǎn)系統(tǒng)要把讀取狀態(tài)和寫(xiě)入新?tīng)顟B(tài)放進(jìn)同一事務(wù)校驗(yàn)事件來(lái)源并處理版本沖突它不是完整的退款工作流。讓測(cè)試覆蓋事實(shí)沖突用同一段自然語(yǔ)言分別配上不同訂單事實(shí)檢查后端結(jié)果是否隨事實(shí)變化。再用不同的說(shuō)法描述同一個(gè)合法請(qǐng)求觀察是否被不必要地拒絕。前一種檢查越權(quán)后一種檢查可用性。樣例未運(yùn)行任何語(yǔ)言模型、對(duì)話記憶系統(tǒng)或并發(fā)數(shù)據(jù)庫(kù)。它驗(yàn)證的是有限狀態(tài)關(guān)系不能給出長(zhǎng)上下文注入的攔截率。參考資料Microsoft agentic insiderMCP authorization