當然,下一代 AutoGPT 仍是開源的。
還記得去年 AI 大牛 Andrej Karpathy 大力宣傳的「AutoGPT」專案嗎?它是一個由 GPT-4 驅動的實驗性開源應用程式,可以自主實現使用者設定的任何目標,展現出了自主 AI 的發展趨勢。
一年多的時間,該專案的 GitHub 星標總數已經超過了 16 萬,足可見其持續受歡迎的程度。
GitHub 地址:https://github.com/Significant-Gravitas/AutoGPT
昨日,專案作者在社媒 X 上宣佈了下一代「AutoGPT」的到來,目前是 Pre-alpha 版本。與前代相比,下一代「AutoGPT」讓構建、執行和共享 AI 智慧體變得比以往任何時候都更容易,同時可靠性也大大提升。
圖源:https://x.com/SigGravitas/status/1812803289739633018
作者展示瞭如何使用下一代「AutoGPT」快速構建、部署並使用 Reddit 營銷智慧體,可以自動回覆評論,執行其他複雜任務。新系統不再像初版「AutoGPT」那樣不可靠和低效。
當被問到該專案是否可以構建多智慧體驅動的應用程式時, 作者給出了肯定回答並表示這是構建該專案的重要原因。
現在,你可以設計一個圖表,讓多個專家智慧體協同解決問題。SubGraphs 也即將釋出,可以幫助簡化複雜圖表的處理。
該專案還可以自定義新增節點,並且手動編寫新塊(下文提到的關鍵特性)非常簡單。作者發現,這方面 Claude 做得非常出色,可以完美地建立自定義塊。
當然,該專案的兩個主要元件(即下文提到的 Server 和 Builder)可以在不同的機器上執行。
不過,對於下一代「AutoGPT」,作者承認它仍處於非常早期的階段,存在缺陷且比較基礎,但還是希望從一開始就與大家分享並開源出來。
主要元件和關鍵特性
該專案具有以下兩個主要元件,分別是後端的 AutoGPT Server 和前端的 AutoGPT Builder。其中 Server 負責建立複合多智慧體系統,將 AutoGPT 智慧體和其他非智慧體元件用作其原語(primitive)。
AutoGPT Server (Backend):
https://github.com/Significant-Gravitas/AutoGPT/tree/master/rnd/autogpt_server
AutoGPT Builder (Frontend):
https://github.com/Significant-Gravitas/AutoGPT/tree/master/rnd/autogpt_builder
設定和執行 Server 和 Builder 的具體步驟如下:
導航到 AutoGPT GitHub 儲存庫;
單擊「程式碼」(Code)按鈕,然後選擇「下載 ZIP」;
下載後,將 ZIP 檔案解壓到你選擇的資料夾中;
開啟解壓的資料夾並導航到「rnd」目錄;
進入「AutoGPT Server」資料夾;
在「rnd」目錄中開啟一個終端視窗;
找到並開啟 AutoGPT Server 資料夾中的 README 檔案;
將 README 中的每個命令複製並貼上到你的終端中(重要提示:等待每個命令完成後再執行下一個命令);
如果所有命令執行均無錯誤,請輸入最後一個命令「poetry run app」;
在終端中看到伺服器正在執行;
導航回「rnd」資料夾;
開啟「AutoGPT builder」資料夾;
開啟此資料夾中的 README 檔案;
在終端中執行以下命令:
npm install
npm run dev
Once the front-end is running, click the link to navigate to localhost:3000.
前端執行後,單擊連結導航到「localhost:3000」;
單擊「構建」(Build)選項;
新增幾個塊來測試功能;
將塊連線在一起;
單擊「執行」;
檢查你的終端視窗。此時應該看到伺服器已收到請求、正在處理請求並已執行請求。
按照以上步驟,你就可以成功地設定並測試 AutoGPT。
除了兩個主要元件外,下一代「AutoGPT」的關鍵特性是使用「塊」(Blocks)來構建智慧體。你可以將一些高度模組化的功能結合起來,建立自定義行為。
目前,專案已經為 Reddit 發帖、Discord 訊息傳送和維基百科摘要獲取等操作提供了相應的塊。同時在設計時追求易建立和使用。以下是維基百科摘要獲取的塊示例:
class GetWikipediaSummary(Block):
class Input(BlockSchema):
topic: str
class Output(BlockSchema):
summary: str
def **init**(self):
super().__init__(
id="h5e7f8g9-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
input_schema=GetWikipediaSummary.Input,
output_schema=GetWikipediaSummary.Output,
test_input={"topic": "Artificial Intelligence"},
test_output={"summary": "Artificial intelligence (AI) is intelligence demonstrated by machines..."},
)
def run(self, input_data: Input) -> BlockOutput:
response = requests.get(f"https://en.wikipedia.org/api/rest_v1/page/summary/{input_data.topic}")
summary_data = response.json()
yield "summary", summary_data['extract']
作者表示,這僅僅是個開始,未來還將新增更多塊,並改進 UI,大幅提升整體體驗和功能。