您可以透過建立自己的自訂外掛程式來擴充 Security Copilot 的功能。 該平台支援靈活的框架來建立插件,可用於執行符合您工作流程要求的專用任務。
建立新的外掛程式
根據系統管理員設定 Security Copilot 的方式,您可以採取下列步驟來建立新的外掛程式:
從支援的外掛程式清單建置外掛程式。
建立 YAML 或 JSON 外掛程式資訊清單檔案,其中描述外掛程式的相關中繼資料,以及叫用它的方式。
將外掛程式資訊清單發佈至 Security Copilot。
外掛程式需求
每個 Security Copilot 外掛程式都需要 YAML 或 JSON 格式的資訊清單檔案 (例如: plugin.yaml 或 plugin.json) ,其中描述技能集的中繼資料以及叫用技能之方法。
資訊清單包含兩個必要的最上層索引鍵, Descriptor 每個 SkillGroups索引鍵都有子索引鍵或值組,以及必要/選擇性欄位,視技能格式而定。
如需相關資訊,請參閱代理 程式資訊清單。
OpenAI 和安全性 Copilot 資訊清單之間的差異
遵循 ChatGPT 外掛程式文件 所建置的 OpenAI 外掛程式,通常會使用與 Security Copilot 資訊清單格式不同的資訊清單格式。 Security Copilot 支援這兩種格式。
OpenAI 外掛程式 資訊清單 會在上傳時轉譯為 Security Copilot 資訊清單。
注意事項
對應詳細資料,特別是有關記事中的限制,未來可能會變更。 目前,平台僅支援 OpenAPI 3.0 或 3.0.1 版中的外掛程式。
外掛程式欄位對應
| 外掛程式欄位 | 類型 | 描述項欄位 | 必要項目 | 附註 |
|---|---|---|---|---|
schema_version |
字串 | 否 | 它是 OpenAI 資訊清單結構描述版本,例如 'v1'。 目前未使用。 | |
name_for_model |
字串 | 名稱 | 是 | 長度限制為 100 個字元。 技能集的內部名稱。 不允許 / \ ? #。 |
name_for_human |
字串 | DisplayName | 是 | 外掛程式的人類可讀取名稱。 長度限制為 40 個字元。 |
description_for_model |
字串 | 描述 | 是 | 長度限制為 16,000 個字元。 搭配 LLM 使用的內部描述。 |
description_for_human |
字串 | DescriptionDisplay | 是 | 外掛程式的人類可讀取描述。 長度限制為 200 個字元。 |
logo_url |
字串 | 圖示 | 建議 | 用來擷取外掛程式主要圖示的 URL。 |
contact_email |
字串 | 否 | 外掛程式的電子郵件連絡人。 目前未使用。 | |
legal_info_url |
字串 | 否 | 外掛程式資訊的連結。 目前未使用。 | |
api |
物件 | 如需物件結構,請參閱 外掛程式 API 一節 | 是 | |
auth |
物件 | 是 |
authorization_type 限制為 bearer。 針對不同驗證 type (如 none、oauth、api_key、aad、aad_delegated) 的支援所遵循的詳細資料。 |
外掛程式 (API 欄位)
api 欄位的物件結構
| 欄位 | 類型 | 描述 | 必要項目 |
|---|---|---|---|
type |
字串 | 目前唯一支援的類型是 openapi。 |
是 |
url |
字串 | 連結至您的 OpenAPI 規格檔案 | 是 |
外掛程式撰寫指導方針
外掛程式撰寫有許多考量事項。 本文件旨在擷取一些撰寫 Security Copilot 專用的外掛程式指導方針和最佳做法。
注意事項
當 Security Copilot 無法準確區分兩個不同的技能時,就會發生「技能衝突」。
與其擁有可傳回相同回應類型但只會根據輸入而有所不同的多個技能;不如定義技能,這可接受多個輸入,然後在內部找出取得資料的方法。
- 例如,擁有採用裝置識別碼、使用者識別碼或使用者名稱的單一的
GetDevices技能,而不是個別的GetDeviceById、GetDeviceByUserId和GetDeviceByUserName
- 例如,擁有採用裝置識別碼、使用者識別碼或使用者名稱的單一的
Security Copilot 支援
Description和DescriptionForModel欄位。Description用於 UX (和技能選取範圍,如果DescriptionForModel未設定) 且DescriptionForModel僅用於技能選取範圍。- 例如,假設我們有技能 GetSslCertsByHostname,其描述為「傳回與主機名稱相關聯的 SSL 憑證」。 詳細的 descriptionForModel 可能是「擷取 SSL 憑證 (也稱為 TLS 憑證) 作為 DNS 主機名稱或網域名稱。 傳回 SSL 憑證清單以及像是發行者、主旨、序號、sha1 和日期等憑證詳詳細資料」。
對於具備合理知識但可能不是問題領域中專業人員的人員來說,技能描述應該是冗長且以慣用語表達的內容。 它不僅應該描述技能的用途,也應該描述為何想要使用它的原因。
- 例如,良好的描述是「取得 IP 位址的信譽資訊。 允許使用者判斷 IP 位址是否具風險。」