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歐元。

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