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