CrewAI :用於編排角色扮演、自主人工智慧代理的尖端框架。透過促進協作智能,CrewAI 使代理商能夠無縫協作,處理複雜的任務。
首頁 |文檔 |與文件聊天 |範例 |話語
為什麼選擇 CrewAI?
入門
主要特點
範例
快速教學
撰寫職位說明
旅行計劃
庫存分析
將您的團隊與模型聯繫起來
CrewAI 的比較
貢獻
遙測
執照
人工智慧協作的力量實在太多了。 CrewAI 旨在使人工智慧代理能夠承擔角色、分享目標並在一個有凝聚力的單元中運作——就像一個運作良好的團隊。無論您是要建立智慧助理平台、自動化客戶服務整體還是多代理研究團隊,CrewAI 都可以為複雜的多代理互動提供支柱。
要開始使用 CrewAI,請按照以下簡單步驟:
確保您的系統上安裝了 Python >=3.10 <=3.13。 CrewAI 使用 UV 進行依賴管理和套件處理,提供無縫的設定和執行體驗。
首先,安裝CrewAI:
pip 安裝crewai
如果您想要安裝「crewai」軟體包及其可選功能(包括用於代理的其他工具),您可以使用以下命令來完成此操作:
pip install 'crewai[工具]'
上面的命令安裝基本包,並添加需要更多依賴項才能運行的額外元件。
若要建立新的 CrewAI 項目,請執行以下 CLI(命令列介面)命令:
rewai 創建船員 <project_name>
此命令建立一個具有以下結構的新專案資料夾:
my_project/ ├── .gitignore ├── pyproject.toml ├── README.md ├── .env └── src/ └── my_project/ ├── __init__.py ├── main.py ├── crew.py ├── tools/ │ ├── custom_tool.py │ └── __init__.py └── config/ ├── agents.yaml └── tasks.yaml
現在,您可以透過編輯src/my_project
資料夾中的檔案來開始開發您的團隊。 main.py
檔案是專案的入口點, crew.py
檔案是您定義船員的位置, agents.yaml
檔案是您定義代理程式的位置, tasks.yaml
檔案是您定義任務的位置。
修改src/my_project/config/agents.yaml
以定義您的代理程式。
修改src/my_project/config/tasks.yaml
以定義您的任務。
修改src/my_project/crew.py
以新增您自己的邏輯、工具和特定參數。
修改src/my_project/main.py
為您的代理程式和任務新增自訂輸入。
將環境變數加入.env
檔案中。
啟動你的船員:
rewai 創建船員最新的人工智慧發展
根據需要修改文件以適合您的用例:
代理.yaml
# src/my_project/config/agents.yamlresearcher: 角色:> {topic} 高級資料研究員目標:> 揭示{topic} 背景故事中的前沿發展:> 您是一位經驗豐富的研究人員,有能力發現領域的最新發展{話題}。因您能夠找到最相關的資訊並以清晰簡潔的方式呈現而聞名。 reporting_analyst: 角色:> {topic} 報告分析師目標: > 根據 {topic} 數據分析和研究結果創建詳細報告 背景故事: > 您是一位一絲不苟的分析師,對細節有著敏銳的洞察力。您因能夠將複雜的數據轉化為清晰簡潔的報告而聞名,使其他人能夠輕鬆理解您提供的資訊並根據您提供的資訊採取行動。
任務.yaml
# src/my_project/config/tasks.yamlresearch_task: 描述:> 對 {topic} 進行徹底的研究 確保您找到任何有趣且相關的信息,因為當前年份是 2024 年。有關{topic} 代理程式的相關資訊:researcherreporting_task:描述:> 查看您獲得的上下文並將每個主題展開為報告的完整部分。 確保報告詳細並包含所有相關資訊。 預期輸出:> 包含主要主題的完整報告,每個主題都有完整的資訊部分。 格式化為沒有「``」代理的降價:reporting_analyst 輸出檔:report.md
船員.py
# src/my_project/crew.pyfrom craftai import Agent, Crew, Process, Taskfromrewai.project import CrewBase, agent, craft, taskfrom craftai_tools import SerperDevTool@CrewBaseclass LatestAiDevelopment:"Drew(M ) -> Agent: return Agent( config=self.agents_config['researcher'], verbose=True, tools=[SerperDevTool()] ) @agentdef reporting_analyst(self) -> Agent: return Agent( config=self.agents_config['reporting_analyst'], verbose=True ) @taskdef Research_task(self) -> 任務: return Task( config=self.tasks_config['research_task'], ) @taskdef reporting_task(self) -> 任務: return Task( config=self.tasks_config['reporting_task'], output_file='report.md' ) @crewdef船員(self) -> Crew: """創建LatestAiDevelopment船員"""return Crew(agents=self.agents, # 由@agent自動創建decoratortasks=self.tasks, # 由@task自動創建Decoratorprocess=Process .sequential, verbose=True, )
主要.py
#!/usr/bin/env python# src/my_project/main.pyimport sysfromlatest_ai_development.crew import LatestAiDevelopmentCrewdef run():""" 運行船員。"""inputs = {'topic'': 'AIAgents')。 .crew().kickoff(輸入=輸入)
在運行您的工作人員之前,請確保您在.env
檔案中將以下鍵設定為環境變數:
OpenAI API 金鑰(或其他 LLM API 金鑰): OPENAI_API_KEY=sk-...
Serper.dev API 金鑰: SERPER_API_KEY=YOUR_KEY_HERE
鎖定依賴項並使用 CLI 命令安裝它們,但首先導航到您的專案目錄:
cd my_project 船員安裝(可選)
若要執行您的工作人員,請在專案的根目錄中執行以下命令:
克魯瓦伊潤
或者
python src/my_project/main.py
如果因為使用poetry導致錯誤,請執行以下命令更新您的crewai套件:
船員更新
您應該在控制台中看到輸出,並且應該在專案的根目錄中建立帶有完整最終報告的report.md
檔案。
除了順序流程之外,您還可以使用分層流程,該流程會自動將經理指派給定義的人員,以透過委派和結果驗證來正確協調任務的規劃和執行。請在此處查看有關流程的更多資訊。
基於角色的代理設計:自訂具有特定角色、目標和工具的代理。
代理間自主委派:代理可以自主委派任務並相互查詢,提高解決問題的效率。
靈活的任務管理:使用可自訂的工具定義任務並將其動態分配給代理程式。
流程驅動:目前僅支援sequential
任務執行和hierarchical
流程,但正在開發更複雜的流程,例如共識和自主性。
將輸出儲存為文件:將各個任務的輸出儲存為文件,以便日後使用。
將輸出解析為 Pydantic 或 Json :將單一任務的輸出解析為 Pydantic 模型或 Json(如果需要)。
使用開源模型:使用開放 AI 或開源模型來運行您的工作人員,請參閱將 CrewAI 連接到 LLM 頁面,了解有關配置代理與模型的連接的詳細信息,甚至是本地運行的模型!
您可以在 CrewAI-examples 儲存庫中測試 AI 人員的不同現實生活範例:
登陸頁面產生器
執行過程中有人工輸入
旅行計劃
庫存分析
查看此範例的程式碼或觀看下面的影片:
查看此範例的程式碼或觀看下面的影片:
查看此範例的程式碼或觀看下面的影片:
CrewAI 支援透過各種連接選項使用各種 LLM。預設情況下,您的代理程式在查詢模型時將使用 OpenAI API。但是,還有其他幾種方法可以讓您的代理連接到模型。例如,您可以透過 Ollama 工具將代理程式配置為使用本機模型。
請參閱將 CrewAI 連接到 LLM 頁面,以了解有關配置代理與模型的連接的詳細資訊。
CrewAI 的優點:CrewAI 的建構以生產為中心。它提供了 Autogen 對話代理的靈活性和 ChatDev 的結構化流程方法,但沒有僵化。 CrewAI 的流程設計為動態且適應性強,可無縫融入開發和生產工作流程。
Autogen :雖然 Autogen 在創建能夠協同工作的會話代理方面做得很好,但它缺乏固有的流程概念。在 Autogen 中,編排代理的互動需要額外的編程,隨著任務規模的成長,這可能會變得複雜和繁瑣。
ChatDev :ChatDev 將流程的概念引入了 AI 代理領域,但實現相當僵化。 ChatDev 中的自訂是有限的,並且不適合生產環境,這可能會阻礙實際應用程式的可擴展性和靈活性。
CrewAI 是開源的,我們歡迎貢獻。如果您想做出貢獻,請:
分叉儲存庫。
為您的功能建立一個新分支。
添加您的功能或改進。
發送拉取請求。
我們感謝您的意見!
紫外線鎖 紫外線同步
紫外光
預提交安裝
uv 運行 pytest 。
紫外線照射
紫外線構建
pip 安裝 dist/*.tar.gz
CrewAI 使用匿名遙測來收集使用數據,主要目的是透過將精力集中在最常用的功能、整合和工具上來幫助我們改進程式庫。
重要的是要了解,除了提到的條件外,不會收集有關提示、任務描述、代理的背景故事或目標、工具的使用、API 呼叫、回應、代理處理的任何資料或秘密和環境變數的數據。啟用share_crew
功能後,系統會收集詳細數據,包括任務描述、代理的背景故事或目標以及其他特定屬性,以在尊重用戶隱私的同時提供更深入的見解。我們現在不提供禁用它的方法,但將來我們會提供。
收集的數據包括:
CrewAI 版本
這樣我們就可以了解有多少用戶正在使用最新版本
Python 版本
這樣我們就可以決定要更好地支援哪些版本
通用作業系統(例如CPU數量、macOS/Windows/Linux)
所以我們知道我們應該關注什麼作業系統以及我們是否可以建立特定的作業系統相關功能
團隊中的代理數量和任務
因此,我們確保使用類似的用例進行內部測試,並教育人們最佳實踐
正在使用的船員流程
了解我們應該把精力集中在哪裡
如果代理正在使用記憶體或允許委派
了解我們是否改進了功能或甚至放棄了它們
如果任務是並行執行還是順序執行
了解我們是否應該更專注於並行執行
正在使用的語言模型
改進了對最常用語言的支持
特工在船員中的角色
了解高級用例,以便我們可以建立更好的工具、整合和範例
可用的工具名稱
了解公開可用的工具中哪些工具使用得最多,以便我們可以改進它們
使用者可以選擇加入進一步遙測,透過將其 Crew 上的share_crew
屬性設定為True
來共享完整的遙測資料。啟用share_crew
會收集詳細的人員和任務執行數據,包括goal
、 backstory
、 context
和任務output
。這樣可以更深入了解使用模式,同時尊重使用者的分享選擇。
CrewAI 在 MIT 許可證下發布。
答:CrewAI 是一個用於編排角色扮演、自主 AI 代理的尖端框架。它使代理能夠無縫協作,透過協作智慧處理複雜的任務。
答:您可以使用 pip 安裝 CrewAI:
pip 安裝crewai
其他工具,請使用:
pip install 'crewai[工具]'
答:是的,CrewAI 支援各種法學碩士,包括本地模型。您可以透過 Ollama 和 LM Studio 等工具將代理程式配置為使用本機模型。查看 LLM Connections 文件以了解更多詳細資訊。
答:主要功能包括基於角色的代理設計、自主代理間委託、靈活的任務管理、流程驅動的執行、輸出另存為文件以及與開源和專有模型的兼容性。
答:CrewAI 的設計考慮到了生產,提供類似於 Autogen 的對話代理和 ChatDev 等結構化流程的靈活性,但更適合實際應用。
答:是的,CrewAI 是開源的,歡迎社群做出貢獻。
答:CrewAI 使用匿名遙測技術來收集使用資料以進行改進。不會收集任何敏感資料(如提示、任務描述或 API 呼叫)。使用者可以透過在其 Crew 上設定share_crew=True
來選擇共享更詳細的資料。
答:您可以在 CrewAI-examples 儲存庫中找到各種現實生活中的範例,包括旅行計劃、股票分析工具等。
答:歡迎大家踴躍投稿!您可以分叉儲存庫,為您的功能建立新分支,添加改進,然後發送拉取請求。有關更多詳細信息,請查看自述文件中的貢獻部分。