本文提供了當您的 Agent 使用生成式協調流程時如何為您的 Agent 撰寫最佳指示的指引。 指示在您的 Agent 的概觀頁面上定義。
Agent 透過以下方式使用指示:
當代理程式決定可能需要呼叫哪些工具或知識來解決使用者查詢或自發觸發程式時,會使用指示。
指示也可用來根據現有的上下文為工具填入輸入。
當 Agent 向終端使用者產生回應時,會使用指示。
說明上下文
請務必瞭解,如果代理程式沒有這些工具或知識來源,代理程式就無法處理使用 工具 或 知識來源 搜尋的指示。 您必須先使用適當的工具和知識來源來設定代理程式。 例如,如果您為代理程式提供搜尋網站常見問題的指示,除非您將網站常見問題新增為主題中的知識來源,否則代理程式無法遵循該指示。 請確定您提供給代理程式的任何指示都以您為代理程式設定的工具和知識為基礎。
注意
為了讓生成式協調流程搜尋特定知識來源,必須將這些知識來源併入主題中的生成式解答節點。 否則,生成性編排會在代理層級搜尋所有知識來源,也就是說,這些知識來源會列在知識頁面中。
基於交談的指令
以下的範例說明如何使用限制、回應格式和指南來格式化基於交談的指令。 三者合而為一,為 Agent 提供一套完整的指示。
限制
Only respond to requests to provide information about educational, legal, wellness, wellbeing, health, dental care, and newborn benefits for employees and dependents. Respond to benefit types with details, health plan comparisons available for employees and dependents in tabular format. Answer in bold and underline fonts as necessary.
回應格式
Respond to inquiries by providing benefit types along with details, health plan comparisons available for employees and dependents in tabular format. Add a column for available options. Include insurance provider details and provide a link for enrollment. Answer in bold and underline fonts as necessary.
指南
Search only within specific country folders relevant to the employee's country.
協助代理判斷應呼叫的適當工具和知識
在您新增指示來為您的代理程式呼叫正確的工具和知識來源之前,請確定每個工具和知識來源都遵循 撰寫描述的最佳做法。 為了獲得最佳結果,名稱和描述必須準確且具體,因為這些欄位是 Agent 用來決定要呼叫的內容。 此外,如果您發現 Agent 在錯誤的時間呼叫它們,請使用描述來指出不要做什麼。
您不需要在指示中定義可用的工具或知識來源,因為此資訊已可供代理程式使用。 您可以在撰寫指示時使用 / 來指定代理程式的特定工具、主題或變數,或 Power Fx 表達式。 不過,您的代理程式也會使用工具或知識來源名稱和描述來判斷要使用的名稱,因此您不需要指定代理程式的特定名稱。
相反,當正確的工具或知識來源可能不明確時,您只需向 Agent 提供提示即可。 您也可以提供參考多個工具或知識來源的指示。
Use the FAQ documents only if the question is not relevant to Hours, Appointments, or Billing.
Only use the ticket creation topic for creating tickets, for other requests related to fixing issues, use the troubleshooting topic.
協助代理人填入工具所需的輸入值
代理程式可能會呼叫具有需要填入之輸入參數的工具。 在此情況下,它會使用交談歷程記錄和先前對工具和知識來源的呼叫來判斷輸入應是什麼。 如果它不能識別所有輸入,它會要求使用者幫助填寫缺少的資訊。
在這種情況下,首先確保根據您希望 Agent 處理的互動類型為您的 Agent 設定輸入。 然後,只有在 Agent 應該填寫最佳可用輸入的情況下,它才會使用說明來幫助填寫輸入。
Use the email address from the contact field of the lead when helping the user to draft an email to follow-up on a lead.
幫助 Agent 產生回應
首先,您可以使用指令為您的 Agent 提供不應回應時的保護。 代理程式會在呼叫與目前案例相關的工具或知識來源之後產生回應。 如果您開啟 [ 允許 AI 使用自己的一般知識](預覽),代理程式可以產生回應,而不需要呼叫任何工具或知識來源。
以下是如何使用護欄說明的範例:
Only respond to messages that are relevant to Contoso corporation and ordering coffee. Otherwise tell the user you can't help with their inquiry.
如果您有一個不想讓您的 Agent 討論的特定主題,您可以為此情境新增一個主題並手動撰寫回應。 這種方法可以避免僅依靠指令來避開該主題。
其次,您可以向 Agent 提供有關如何格式化或建置回應的說明。 例如:
Always give responses about order status in a table format.
如果您希望您的經紀人專業並且說話有禮貌,那麼沒有必要對這種語氣給予指示,因為這是經紀人的預設行為。 僅針對特定使用案例給予語氣指令。
基於自主的指令
下圖說明 Agent 根據自主指令採取的步驟:
協助代理程式選擇正確的工具順序
您的代理程式會嘗試選取正確的工具,通常也能成功,但明確的指示會更有幫助。 例如,如果您想要讓代理程式使用 「建立訂單」工具在 Dataverse 中建立採購單記錄,請使用 / 並將該特定工具新增至指示。 在這個情境中,您會提供清楚的指示:「如果使用者提供了他們慣用的筆記型電腦的詳細資料,請使用 /Purchase Order 建立採購單。」當在代理程式中新增許多工具(超過五個)時,這份指示的具體性非常有幫助。
用編號或項目符號列出您的說明,並指定必須按順序遵循。 您還可以套用 markdown 格式,這不僅可以提高指令的可讀性,還可以幫助產生 AI 理解和處理您的指令。
注意
如果您不希望聯絡 Agent 使用者,那麼在說明中明確說明會有所幫助。 例如,「不要向使用者詢問任何詳細資訊。」
當您在指示中命名工具時,請確定您使用與工具本身完全相同的名稱。 命名上的細微差別可能會對結果產生負面影響。
如果您要求 Agent 在回應使用者輸入時高度具體,那麼建立主題來處理這個特定使用案例可能是合適的。 例如,建立一個識別類似「還有其他可用選項嗎?」的字詞的主題。然後 Agent 會明確地回覆:「目前沒有其他可用選項,請從可用清單中選擇。」
代理程式會使用工具的描述來了解為何要使用此工具。 填入工具的描述可大幅協助代理程式選擇正確的工具。 填入工具描述,以在呼叫特定工具時通知代理程式,例如「當使用者要求擷取客戶預約歷程記錄時呼叫此工具」。
觸發程式可能會受到越獄攻擊。 此類型的攻擊是攻擊者在觸發程序承載中傳送供 Agent 遵循的指令。 例如,攻擊者可能會要求代理人將代理人可以存取的資訊透過電子郵件發送給攻擊者。
若要保護您的代理程式免於此風險,請確定其指示包含下列資訊:
限制代理程式在參考知識來源時應採用的工具。 例如,僅在檢查知識來源的上下文後才透過電子郵件發送訊息。
限制應該用於工具的參數。 例如,僅向指定的個人清單發送電子郵件。
如果您注意到您的代理程式因內容篩選而封鎖正常行為,您可以更新代理程式指示,以表明該行為預期應能正常運作。
編寫說明的語言
使用諸如 Get 或 Use 之類的動詞來擷取和解析資料,使用諸如 From 和 With 之類的動詞對結果採取行動。
下列動詞通常用於建立簡單指令:
| 目標 | 詞彙 |
|---|---|
| 條件 | 當、如果、確保、比較 |
| 篩選器 | 來自、包括、排除、比較、識別 |
| 資料 | 提供、擷取、取得、使用、分析、擷取 |
| 工具 | 通知、指示、詢問、分配 |
協助 Agent 選擇正確的知識來源
為了協助確保您的 Agent 成功地從知識來源擷取訊息,請務必在說明中解釋要查詢哪些文件,例如「在您的 KB 中搜尋員工入職文件」。儘管這種特殊性並非絕對必要,但它可以幫助指導您的 Agent。 當 Agent 需要搜尋大量文件時,這種特殊性很有用。
包含觸發程序
修改預設觸發程序負載,以幫助您的 Agent 了解呼叫觸發程序時要做什麼。 使用變數來減少有效載荷的大小。 建立觸發程序,然後使用 Power Automate 編輯以選取特定變數。 例如,僅發送收到的電子郵件的主題欄位,而不是整個訊息有效負載。
注意
無法直接在 Copilot Studio 中編輯觸發程序。 建立後,您必須透過 Power Automate 編輯這些觸發程序。
在觸發指令中告訴 Agent 如何處理觸發有效負載會有所幫助。 例如,如果您的 Agent 幫助新員工加入您的公司,請將觸發程序負載定義為「加入下列員工」。該指令之後是觸發程序的主體,其中包含新員工的詳細資訊。 一旦您的 Agent 收到承載,它就會按照您定義的 Agent 指示進行員工入職訓練。
多個觸發程序
您可以新增多個觸發程序,每個觸發程序都有自己的指令。 這些說明可以補充您的整體 Agent 指示,或用於同一 Agent 內的不同使用案例,例如處理員工入職和事件報告。 確保每個觸發程序有效負載指示 Agent 在觸發程序觸發時做什麼會很有幫助。
格式化電子郵件
指示您的 Agent「使用 RTF 文字格式作為電子郵件正文內容傳送電子郵件」或類似措詞。 您也可以在工具描述中新增此要求,以取得額外的強調。
代理指令與行為
Copilot Studio 中的客服指令可用於影響 文件檢索後的回答摘要。 以下常見誤解與最佳實務將列出,幫助您設計可靠的客服人員體驗。
注意
系統將代理指令視為程式碼。 錯誤的程式碼可能會破壞你的系統,尤其是在引用和是否顯示回應時。 如果你的指示很複雜且無法得到回應,試著移除代理人的指示,然後慢慢地把個別指令加回去,並在每次新增之間測試,確保指令有效。
自適應卡片行為
代理指令 無法 改變 自適應卡 的觸發方式。
如果使用自適應卡,請:
- 直接編輯 Adaptive Card。
- 在卡片設定中調整觸發詞,以控制卡片出現的時間。
請使用後續問題
利用後續問題釐清意圖、收集缺失的輸入,並呈現相關行動或知識。 這讓代理能根據執行時能做的事和所知,問 出下一個正確的 問題。
使用後續問題時,需注意以下注意事項:
- 後續問題只有在開啟 「使用常識 」時才有效。
- 如果關閉 使用一般知識 ,編排者會認為沒有引用的澄清問題不成立,並予以抑制。 客服自動回答:「抱歉,我不太確定該怎麼幫忙。 你能試著改寫嗎?
客服人員能預見使用者需求,並根據可用的工具與知識提出下一步合乎邏輯的建議。 例如,一位客服人員回答「今天羅馬的天氣如何?」時,可以回答「您也想知道明天的天氣預報嗎?」然後根據用戶的「是」而採取行動,無需額外說明。
此方法減少了硬編碼的對話路徑。 相反地,它將責任從撰寫所有可能分支,轉移到引導代理人用指示來引導代理人的推理,並參考代理人的能力。
使用後續問題時,請遵循以下策略:
指示中包含參考工具、知識與變數,讓客服人員能利用它們產生具情境感的後續問題。 指令直接支援參考 代理、 變數、 工具、 知識及 Power Fx 表達式。
請代理人以與當前情境及代理人活躍工具相關的後續問題作為回應的結尾。 這使得適應性行為成為可能,而非固定且脆弱的流程。
在說明中保持例子和推理清楚,讓客服了解預期的模式(該問什麼以及為什麼問)。 列出可用工具能提升後續問題的相關性與自然性,即使編排者已經知道哪些工具在啟動中。
更改預設備援訊息
自訂指令無法覆蓋預設的備援訊息。
預設訊息是:「抱歉,我不確定該如何協助。 你能試著改寫嗎?
要更改預設訊息:
歧義詞彙
避免使用模糊的詞語,例如「打字框」。 這類術語對語言模型來說具有歧義性,可能導致不可預測的行為。
搜尋檢索
代理指令 無法 修改搜尋檢索邏輯。 移除任何試圖影響文件檢索的指示。
分享檢索文件
你無法改變檢索文件的分享方式。 這種行為是由系統控制的。
多語言支援
要求 多語言支援 的說明可能有效,但並不保證。 多語言功能尚未被測試或官方支援。
重點摘要
- 摘要 和對話流程應使用代理指令,而非系統層級行為。
- 在備用與自適應卡片自訂方面,請依賴主題設定而非指令。
- 在承諾給使用者多語言支援等功能前,務必先驗證。