- 安裝依賴:
./install_requirements.sh(Linux/Mac) 或install_requirements.bat(Windows) - 一鍵啟動:
./start.sh(Linux/Mac) 或start.bat(Windows)
本專案旨在構建一個基於 GPT 的自主智能體框架,實現智能體的持續運行和協作。
通過模組化的設計,我們將智能體分解為三大核心模塊:
- Think Agent(思考智能體): 負責分析目標、規劃任務和生成行動方案。
- Tool Agent(工具智能體): 根據思考智能體的決策,調用外部工具或 API 執行具體任務。
- Target Agent(目標智能體): 負責觀察自己的念頭,決定自己要做什麼的tool,會回傳一個target。
此外,本專案提供友好的使用者交互介面,並支援 Ollama、Gemini API 和 OpenAI API 等多種語言模型後端,方便您根據需求選擇最適合的模型。
- 自主運行: 智能體能夠根據目標自主規劃和執行任務,無需人工干預。
- 模組化設計: 三大核心模塊各司其職,方便擴展和維護。
- 多模型支援: 支援 Ollama、Gemini API 和 OpenAI API 等多種語言模型後端,靈活選擇。
- 視覺語言模型(VLM): 支援圖像理解和分析,可處理圖片輸入。
- 智能工具集成: 內建網路搜尋、內容摘要、自然表達等工具。
- 命令行界面: 提供 CLI 客戶端和現代化命令行界面。
- 實時監控: 實時顯示 AI 思考過程和對話狀態。
- 使用者交互: 提供友好的使用者交互介面,方便使用者與智能體互動。
- 持續學習: 智能體能夠通過與環境互動不斷學習和進化。
- 一鍵啟動: 提供便捷的啟動腳本,自動開啟伺服器和客戶端。
- Think Agent:
- 負責目標分析、任務規劃、行動決策。
- 利用語言模型生成思考過程和行動方案。
- Tool Agent:
- 根據 Think Agent 的決策,調用外部工具或 API。
- 負責執行具體任務,並將結果返回給 Think Agent。
- 支援工具:網路搜尋、內容摘要、自然表達等。
- Target Agent:
- 負責觀察自己的念頭,決定自己要做什麼的tool,會回傳一個target。
- 將目標回傳給think agent。
- 使用者交互:
- 提供命令列介面(CLI)。
- 允許使用者設定目標、查看進度、與智能體互動。
- 實時監控 AI 思考過程。
- 模型後端:
- 支援 Ollama、Gemini API 和 OpenAI API。
- 支援視覺語言模型(VLM)功能。
- 允許使用者根據需求選擇模型。
- 本地部署,無需 API 金鑰
- 支援 VLM 模型(如 qwen2.5vl)
- 完全離線運行
- Google 的 Gemini 模型
- 需要 API 金鑰
- 支援文字生成
- OpenAI 的 GPT 系列模型
- 支援自定義 API 端點(代理)
- 支援 VLM 功能
- 配置格式:
openai@https://your-proxy-url/v1
- 使用 Google 搜尋 API
- 自動獲取網頁內容
- 返回標題、摘要和完整內容
- 智能摘要長文本內容
- 提取關鍵信息
- 將 AI 思考轉化為自然語言表達
- 更人性化的回應
- 觀察和設定目標清單
- 追蹤任務進度
- 自動化任務執行: 自動執行資料收集、報告生成、程式碼編寫等任務。
- 智能助手: 提供個人助理、客戶服務、知識問答等服務。
- 圖像分析: 使用 VLM 模型分析圖片內容。
- 研究與開發: 用於探索智能體行為、測試語言模型能力。
macOS/Linux:
./install_requirements.shWindows:
install_requirements.bat或者手動安裝:
pip install -r requirements.txt詳見下方的"配置說明"章節。
macOS/Linux:
./start.shWindows:
start.bat這些腳本會自動:
- 檢查依賴是否已安裝
- 檢查並啟動伺服器(開新視窗)
- 啟動聊天客戶端(當前視窗)
- 自動等待伺服器就緒
-
啟動服務器:
python start_server.py
-
使用客戶端:
python cli_client.py
- 統一界面: 自動監控、實時狀態顯示
- 簡化命令: 使用
+符號發送消息 - 監控功能: 實時顯示 AI 思考過程
- 完整功能: 支持所有 API 端點
# 基本命令
start - 啟動對話
close/stop - 關閉對話
+ <文字> - 發送消息(簡化模式)
send <文字> - 發送消息(完整模式)
status - 查看狀態
cache - 查看 cache pool
# 監控命令
monitor - 啟動實時監控
monitor-verbose - 啟動詳細監控(顯示所有內容)
stop-monitor - 停止監控
# 高級命令
list - 對話列表
conv <id> - 查看對話內容
help - 顯示幫助信息
quit/exit - 退出程序# 啟動客戶端
python cli_client.py
# 在客戶端中:
🟢👀 > start
🟢👀 > + 你好,我想了解今天的天氣
🟢👀 > status
🟢👀 > close# 啟動詳細模式
python cli_client.py -v
# 或手動切換到詳細監控
🟢👀 > stop-monitor
🟢 > monitor-verbose
🟢👀 > + 你好# 直接執行命令
python cli_client.py start
python cli_client.py send "你好"
python cli_client.py monitor
python cli_client.py status# 測試視覺語言模型
python vlm_test.py "https://example.com/image.jpg" "描述這張圖片"POST /cli/start_conversation- 啟動對話POST /cli/send_message- 發送消息GET /cli/conversations- 獲取對話列表GET /cli/conversation/{id}- 獲取對話內容GET /cli/cache_pool- 獲取 cache poolGET /cli/status- 獲取系統狀態POST /cli/stop_conversation- 停止對話
- 實時雙向通信
- 支持 CLI 客戶端
- 啟動客戶端時自動開始後台監控
- 實時顯示 AI 的 think 輸出
- 不影響正常命令輸入
- 普通模式:只顯示
{"思考": "內容"}的輸出 - 詳細模式:顯示所有 cache pool 內容
監控命令詳見上方的"命令列表"章節。
創建 .env 文件:
# API 金鑰
SERP_API_KEY=your-serp-api-key
GEMINI_API_KEY=your-gemini-api-key
OPENAI_API_KEY=your-openai-api-key
# 模型配置
THINK_MODEL_NAME=gemini-flash-2.0
THINK_MODEL_TYPE=gemini
TARGET_MODEL_NAME=gemini-flash-2.0
TARGET_MODEL_TYPE=gemini
TOOL_MODEL_NAME=gemini-flash-2.0
TOOL_MODEL_TYPE=gemini
# 功能開關
SUPPORT_IMAGE=false
# 間隔設定(秒)
THINK_INTERVAL=6
TARGET_INTERVAL=60
TOOL_INTERVAL=15# Ollama 模型
THINK_MODEL_TYPE=ollama
THINK_MODEL_NAME=qwen2.5vl:3b
# Gemini 模型
THINK_MODEL_TYPE=gemini
THINK_MODEL_NAME=gemini-pro
GEMINI_API_KEY=your-api-key
# OpenAI 模型
THINK_MODEL_TYPE=openai@https://your-proxy-url/v1
THINK_MODEL_NAME=gpt-4o
OPENAI_API_KEY=your-api-key- 確保服務器正在運行(
uvicorn main:app) - CLI 客戶端會自動檢查服務器狀態
- 監控功能在後台運行,不影響命令輸入
- 使用
Ctrl+C退出程序 - 所有對話和思考都會記錄到日誌文件中
- VLM 功能需要支援的模型(如 qwen2.5vl)
- 網路搜尋功能需要 SerpAPI 金鑰
- CLI 客戶端需要 Python 環境
- 環境變數配置優先於代碼中的默認值
# 檢查服務器是否運行
curl http://127.0.0.1:8000/cli/status
# 啟動服務器
uvicorn main:app --reload --host 0.0.0.0 --port 8000# 安裝依賴
./install_requirements.sh
# 或手動安裝
pip install -r requirements.txt
# 或使用 conda
conda install requests fastapi uvicorn# 給啟動腳本執行權限
chmod +x start_chat.sh# 檢查 Ollama 模型是否安裝
ollama list
# 安裝 VLM 模型
ollama pull qwen2.5vl:3b- 確保在
.env文件中正確配置 API 金鑰 - 檢查網路連接和 API 端點可用性
- 驗證 API 金鑰的有效性
- 確保
.env文件在項目根目錄 - 檢查變數名稱是否正確
- 重啟服務器以載入新的環境變數
- 增加更多工具和 API 支援。
- 優化智能體的學習和推理能力。
- 開發更豐富的使用者交互介面。
- 探索多智能體協作。
- 增強 VLM 功能支援。
- 歡迎貢獻程式碼、文件、測試用例等。
- 請參考貢獻指南,瞭解如何參與專案。
- 本專案採用 [授權條款名稱] 授權。