AI News HubLIVE
站內改寫5 分鐘閱讀

構建一個能執行操作的免費AI代理(無需程式碼)

本教程指導你從零開始,使用Quickchat平臺建立一個無需編碼的AI代理。該代理不僅能基於你提供的知識回答問題,還能在對話中呼叫即時API(例如貨幣匯率轉換),並返回結果。透過一個可複用的API動作模式,你可以輕鬆擴充套件代理的功能。

來源Hacker News AI作者: piotrgrudzien

大多數聊天機器人只能進行對話。如果你問它們某種貨幣的價格、訂單狀態或今天的匯率,它們要麼猜測,要麼讓你去別處查。而能執行操作的AI代理則相反:它在對話過程中呼叫一個真實的API,讀取結果,並用它來回答。

本教程將從零開始,使用一個空賬戶,無需任何程式碼,構建這樣一個代理。最終,你將擁有一個能根據你提供的知識回答問題,並在聊天過程中呼叫即時REST API的代理,並且你能在收件箱中親眼看到它的執行過程。你在這裡構建的動作是一個主配方:一個描述好的HTTP請求。將其指向不同的URL,同一個配方就能將線索記錄到電子表格、寫入CRM或管理聊天伺服器。本文末尾的所有整合教程都是它的例項。

下面的一切都是在真實代理上構建和測試的。截圖中的每一個對話和API呼叫都是由真實執行的代理產生的;你可以重現每一個。

你將構建什麼

一個為虛構的專案規劃工具Meridian設計的單一支援代理。它能在大約十分鐘內端到端地完成兩件事:

  • 根據你提供的知識回答問題:Meridian的計劃、價格和功能。
  • 在對話過程中呼叫一個即時API,將價格轉換為訪問者所需的貨幣,然後在回覆中使用結果。

該動作呼叫Frankfurter,一個免費、無需金鑰的匯率API,因此你只需一個Quickchat賬戶,無需註冊任何其他服務。重點在於模式,而不是貨幣:一旦你構建了這個動作,你就擁有了所有整合的形狀。

你需要什麼:

  • 一個免費的Quickchat AI賬戶(在此註冊)。
  • 無需程式碼、無需伺服器、無需API金鑰。

什麼是AI代理,它與聊天機器人有何不同?

聊天機器人回答問題。代理則回答問題並執行操作。在Quickchat中,你由三個部分構建一個代理。前兩部分構成聊天機器人,第三部分(動作)使其成為代理。

  • 身份:代理是誰:它的名稱、角色和指令。這就是AI主提示。
  • 知識:它根據什麼回答問題:你的文件、頁面和事實。
  • 動作與MCP:它能做什麼:在對話過程中呼叫API。

前兩部分構成一個好的聊天機器人,第三部分使其成為代理。本文將主要關注第三部分。

什麼是AI動作?

一個AI動作就是一個描述好的HTTP請求。你填寫一次請求(方法、URL和要傳送的值),並編寫何時使用它的描述。在對話過程中,模型決定是否呼叫它,並填寫你留空的部分;Quickchat傳送請求,模型讀取響應。

理解為什麼這是可靠的最清晰的方法是,將請求中的每個值分為兩種型別。你固定確定值,模型從對話中填充判斷值。引數是它必須正確的唯一值。

  • 確定值:由你固定的值:方法、URL、基礎貨幣。模型無法弄錯,因為它從不接觸它們。
  • 判斷值:由模型從對話中填充的值:訪問者要求的貨幣、要轉換的價格。這些是需要任何思考的唯一值,也是唯一需要調整的值。

你透過“新增AI資料”選單插入判斷值,該選單會在任何欄位中放入一個{{...}}晶片。該選單提供動作需要引入的三種東西:

  • 你定義的引數(模型填充的判斷值,如{{currency}})。
  • 渠道設定的對話後設資料(如{{conversation_channel}}或{{metadata_visitor_email}})。
  • 系統令牌:Quickchat儲存並注入的秘密,顯示為徽章,從不提供給模型。

對話後設資料值無需詢問即可使用。幾個值得了解的:

  • {{conversation_channel}}:聊天所在的渠道(widget、telegram、whatsapp等)。
  • {{conversation_url}}:收件箱中此對話的連結。
  • {{language}}、{{country}}:訪問者的語言和國家,兩個字母的程式碼。
  • {{metadata_visitor_email}}:訪問者的電子郵件(一旦他們分享)。
  • {{scenario_id}}、{{conversation_id}}:此代理和此對話的ID。

對於此動作,你只需要第一種(引數)。其他在你連線真實服務時很重要;文末的HubSpot和Discord指南依賴於所有三種。

步驟1:建立代理並賦予知識

註冊並開啟一個新代理。在身份頁面上,將AI代理名稱設定為“Meridian”,並將以下內容貼上到AI主提示中(每個計劃都有的始終可用的提示欄位,你不需要單獨的AI指南列表)。

> 你是Meridian的支援助理,Meridian是一個面向產品團隊的專案規劃工具。你回答Meridian網站上訪問者關於計劃、定價、功能和入門的問題。 > 使用你的知識回答問題。你的知識中的每個價格都是美元(USD)。 > 當訪問者詢問某個計劃或價格在其他貨幣中的成本,或者提到他們自己的國家或當地貨幣時,呼叫“Convert price to currency”動作,傳入美元金額和目標貨幣的3字母程式碼,然後同時給出美元價格和按照今日匯率轉換後的金額。 > 如果你不知道答案,誠實地說明並提供轉接給團隊。絕不猜測。

其中兩行值得注意。關於美元的一行告訴模型知識中的價格含義,以便它知道要向動作傳遞什麼。最後一行,不知道時說不知道,產生的是誠實的拒絕而不是猜測。我們稍後測試兩者。

現在給它一些可以回答的內容。在知識庫頁面上,新增幾篇關於Meridian事實的簡短文章。演示依賴的一篇是定價:

> Meridian有三個計劃,按每位使用者每月計費,單位為美元(USD): > - 入門版:每位使用者每月19美元。無限專案、時間線和看板檢視、最多3個整合。 > - 專業版:每位使用者每月49美元。增加衝刺規劃、任務依賴、自定義欄位和無限整合。 > - 商業版:每位使用者每月99美元。增加組合路線圖、高階許可權、SSO和優先支援。 > 年度計費比月度便宜17%。每個計劃都有14天免費試用,無需信用卡。

演示的事實,以簡短文章形式新增並標記為“準備就緒”。代理將從這些內容中回答定價問題。

這足以讓代理回答定價問題。故意遺漏一件事(安全認證),這樣我們就有代理無法回答的真正問題。

步驟2:主AI動作配方:呼叫任何REST API

這是可重用的部分。開啟“動作與MCP”,在自定義動作下點選“新增動作”,然後選擇“API動作”。

每個API動作都使用相同的表單,順序相同。在此一次學會,後面的每個配方都是不同值的相同框。它包含兩部分:從訪問者收集的內容和要傳送的請求。

要收集的值

表單頂部:API動作名稱,以及模型填充的兩個必需引數:currency(貨幣)和amount(金額)。

  • API Action Name:模型用來引用動作的簡短名稱:Convert price to currency。
  • 判斷值:每一行一個。給每個引數設定格式、名稱和描述,告訴模型如何填充,並標記為必需,這樣模型絕不會在沒有它的情況下呼叫動作。

| 格式 | 名稱 | 描述 | 必需 | |------|------|------|------| | 文本 | currency | 要轉換到的貨幣的3字母ISO程式碼,例如EUR、GBP或JPY。從訪問者提到的貨幣或國家中推匯出來。 | 是 | | 十進位制數 | amount | 要轉換的美元金額,取自訪問者詢問的計劃或價格。 | 是 |

“首先詢問使用者什麼”是產品的標籤,但代理很少停下來詢問。當訪問者寫“商業版多少歐元”時,模型已經擁有了兩個值(金額來自你的知識,currency來自“歐元”),並直接填充它們。

要傳送的請求

請求:一個GET請求到Frankfurter,base固定為USD,currency和amount晶片新增到查詢引數下。

  • API請求方法和端點URL:GET到Frankfurter的最新匯率端點:https://api.frankfurter.dev/v1/latest
  • Query Params:這是確定值和判斷值相遇的地方。在查詢引數標籤下新增三行。對於base輸入USD,對於另外兩個點選“新增AI資料”並選擇你定義的引數,這將放入{{currency}}和{{amount}}晶片。

| Key | Value | |-----|-------| | base | USD | | symbols | {{currency}} | | amount | {{amount}} |

  • Headers和Body:無。這是一個GET請求,所有內容都在查詢字串中。
  • API Action Description:最重要的欄位。這是模型讀取以決定是否呼叫動作的內容,因此將其繫結到一個清晰的訊號,而不是描述機制。

> 將美元金額轉換為今日匯率下的另一種貨幣。每當訪問者詢問某個價格或計劃在美元以外的貨幣中的成本,或者給出他們的國家或當地貨幣時,呼叫此動作。傳入美元金額和要轉換到的貨幣的3字母ISO程式碼。

儲存並開啟動作。這就是整個配方:一個名稱、要收集的值、一個請求和一個描述。

完成的動作,已啟用。卡片一目瞭然地顯示其呼叫次數和成功率。

這裡沒有任何特定的貨幣內容。將URL和查詢替換為你自己的API,你就得到了一個不同的動作。

指向你自己的API

Frankfurter動作是一個讀取:一個帶有公共資料的GET。你自己的API通常是相同的形式,只是多填寫了幾個欄位。

要進行寫入(而不僅僅是讀取),將方法設定為POST、PATCH或DELETE,並將資料以JSON的形式放在Body標籤下。相同的{{...}}晶片在body內也有效,因此{ "email": "{{email}}" }會傳送模型收集的任何內容。

對於需要金鑰的API,在Headers標籤下新增一行(例如Authorization),並透過“新增AI資料”選擇系統令牌插入金鑰。Quickchat儲存秘密並在呼叫時注入,因此它顯示為徽章,從不提供給模型或寫入提示中。

其他所有內容都是相同的:名稱、要收集的引數、決定何時觸發的描述。

HubSpot指南使用注入的OAuth令牌構建了四個POST動作,Discord指南使用bot令牌在頭部構建了七個針對Discord API的動作。兩者都是你剛剛填寫的相同表單,只是URL和body不同。

步驟3:測試並觀察呼叫過程

這是一張圖中的整個往返過程:訪問者提問,模型填充判斷值,Quickchat新增固定值併發出請求,回覆攜帶結果返回。

一次呼叫,端到端:模型填充判斷值,Quickchat新增固定值併發出請求。

在AI預覽(左側選單頂部)或你的即時widget上與代理聊天,然後在收件箱中開啟對話。先問一個簡單的定價問題,然後詢問另一種貨幣:

> 訪問者:商業版計劃多少錢? > Meridian:商業版計劃每位使用者每月99美元。 > 訪問者:換算成歐元是多少? > Meridian:商業版計劃每位使用者每月99美元,按照今日匯率約合每位使用者每月86.81歐元。

第一個回答來自知識。第二個是動作觸發的結果。你不需要……