精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
讓AI Agent像團隊一樣協作的開源架構CrewAI

多Agent的AI應用一直是個有意思的研究方向,之前試過用LangGraph構建一組Agent的執行流程,用于自動產出研究報告。但是流程都是針對任務固化的,如果要執行別的任務就需要修改代碼。CrewAI相對來說自動化程度就要高一些,你只需要定義好Agent和Task,剩下的就交給CrewAI。CrewAI(https://github.com/joaomdmoura/crewAI)專注于協調角色扮演的自主AIAgent。通過使用LLM作為協調器促進協作,使得多個Agent像一支默契十足的團隊一樣工作,每個Agent扮演不同的角色,共同完成一項大的任務。Agent被視為團隊的成員,具有特定的技能和特定的工作要做,執行任務、做出決策并與其他Agent進行通信。此外,CrewAI還支持LangChain引入的可擴展功能,包括工具集成和支持開源大語言模型。下面我們介紹一下CrewAI的核心概念,只有稍微懂一點Python的知識,就可以在本地運行多Agent的AI應用。順便試一下百度最近免費的大模型服務。

核心概念包括Agent、Task、Tool、Process、Crew、Collaboration、Memory。對大部分目標來說,我們需要定義的是Agent、Task。有點類似成立了一個團隊,第一要有隊員,第二設置好要完成的任務,剩下的就交給CrewAI這個職業經理人管理了,我們作為老板就等收結果就好了。Agent:可以視為團隊的一員,擁有特定技能,并承擔特定工作。Agent可以擔任不同的角色,例如“研究員”、“作家”或“客戶支持”,每個角色都為團隊的總體目標做出貢獻。有幾個主要的屬性。

agent = Agent(  role='數據分析師',  goal='分析總結出可進行下一步行動的建議',  backstory='''你是一家大公司的數據分析師。您負責分析數據并提供公司下一步行動的建議。  您當前正在進行一個項目,以分析我們營銷活動的表現。''',  tools=[my_tool1,my_tool2] #可選,默認為空列表)

Role,定義Agent在團隊中的職能角色,決定了Agent最適合執行的任務類型。

Goal,想要實現的個體目標,指導Agent的決策過程。

Backstory,為Agent的角色和目標提供背景,豐富互動和驅動協作。

Tool,工具是可用于執行任務的一組能力或功能,使得Agent能和外部環境交互,比如搜索網絡信息,執行特定的計算等。雖然不是必須的,但使用工具能給Agent提供更多的可能性。

Task:由Agent完成的特定任務。任務提供執行所需的所有詳細信息,例如描述、負責的Agent、所需的工具、指定期望輸出等,從而促進各種行動的復雜性。任務可以是協作的,需要多個Agent一起工作。這是通過任務屬性進行管理并由 Crew 流程進行編排,從而增強團隊合作和效率。Task是使用時最重要的概念,是驅動Agent執行和協作的動力。因此CrewAI也提供了多種任務的定義形式,支持異步執行、任務依賴關系、任務回調等。

task = Task(  description='查找并總結最新的AI新聞',  expected_output='輸出前5大最重要AI新聞的摘要',  agent=research_agent,  tools=[search_tool])Tool:工具為Agent提供了多種功能,從網絡搜索和數據分析到協作和在同事之間委派任務。CrewAI是基于LangChain框架實現的,也繼承了LangChain的Tool實現方式,這就意味著我們可以自定義工具。除此之外,CrewAI也提供了一套額外的工具包,有很多,這里列舉幾個:

YoutubeVideoSearchTool:RAG 工具旨在在 YouTube 視頻中進行搜索,非常適合視頻數據提取。

ScrapeWebsiteTool:方便抓取整個網站,非常適合全面的數據收集。

GithubSearchTool:用于在 GitHub 存儲庫內進行搜索的 RAG 工具,可用于代碼和文檔搜索。

CodeDocsSearchTool:一款針對搜索代碼文檔和相關技術文檔而優化的 RAG 工具。Process:流程協調Agent執行任務,類似于人類團隊中的項目管理。這些流程確保任務按照預定義的策略有效地分配和執行。主要有兩種流程,順序和分層,默認是順序執行。

順序,按順序執行任務,一個任務的輸出作為下一個任務的背景。

分層,模擬企業層級結構,自動創建經理Agent,需要為經理Agent指定manager_llm(一個LLM的實例)。此經理Agent負責監督任務執行,包括規劃、委派和驗證。任務不是編程分配的,經理Agent根據其他Agent的能力分配任務,審查輸出并評估任務完成情況。這個就會比較靈活,也有點像AutoGen。

共識(開發中),在Agent之間引入了一種民主的任務管理方法,在任務執行時進行協作決策,從而不需要經理Agent。

Crew:相當于一個團隊,定義有哪些Agent、Task,以及以什么樣的流程執行。團隊組建完畢,就用kickoff()方法啟動工作流程。

Collaboration:這是個基礎概念,并沒有可以實例化的對象。這個是CrewAI最主要的核心能力,對于我們來說,定義Agent、定義Task并不是什么難事,并且這肯定是使用者應該輸入的。但讓Agent協作完成目標就是比較麻煩了,當然你可以自己去編寫流程,智能化自動化才是更優方案。

Memory:CrewAI引入了復雜的記憶系統,旨在增強人工智能代理的能力。包括短期記憶、長期記憶、實體記憶和新識別的情境記憶,每個記憶都有一個獨特的目的,幫助Agent記憶、推理并從過去的交互中學習。默認情況下,記憶系統處于禁用狀態,可以通過memory=True開啟,這個需要Embedding模型的支持。

實例自從Deepseek的大模型把價格打下來之后,各家卷價格也是相當拼了,百度直接免費了幾個大模型的調用,剛好給大家試試效果。注冊百度智能云賬號后,進入千帆大模型平臺-》模型服務-〉應用接入,就可以創建一個用來調用API的Access key 和 Secret key。

下面創一個自動寫技術博客的crew,看看效果怎樣創建一個Project目錄,用pip安裝需要的python包

pip install crewai qianfan接下來在python文件中創建百度千帆的LangChain對象

import osfrom langchain_community.chat_models.baidu_qianfan_endpoint import QianfanChatEndpoint

os.environ['QIANFAN_AK'] = '上面創建應用Access key'os.environ['QIANFAN_SK'] = '上面創建應用Secret key'

baidu_chat = QianfanChatEndpoint( model='ERNIE-SPEED-8K', verbose=True)要寫技術博客,少不了要上網搜索資料,定義一個搜索工具Tool,這里換成LangChain的Tools是可以的,只不過輸入輸出可能要做一些特殊處理

from crewai_tools import SerperDevTool

os.environ['SERPER_API_KEY'] = 'Your Key' # serper.dev API key

search_tool = SerperDevTool()接下來定義Agent和Task,把Agent的llm設置成baidu_chat

researcher = Agent( role='高級研究分析師', goal='揭示人工智能和數據科學的前沿發展', backstory='''你在一家領先的科技智庫工作。您的專業技能在于識別新興趨勢。 你有分析復雜數據和提出可行見解的訣竅。''', verbose=True, allow_delegation=False, tools=[search_tool], llm=baidu_chat)

writer = Agent( role='技術內容策略師', goal='創造關于技術進步的引人注目的內容', backstory='''你是一位著名的內容策略師,以其富有洞察力和引人入勝的文章而聞名。 你將復雜的概念轉化為引人入勝的敘述。''', verbose=True, allow_delegation=True, llm=baidu_chat)

task1 = Task( description='''在2024年對人工智能的最新進展進行全面分析。 確定關鍵趨勢、突破性技術和潛在的行業影響。''', expected_output='要點中的完整分析報告', agent=researcher)

task2 = Task( description='''利用所提供的見解,開發一個引人入勝的博客 文章強調了人工智能的最重大進步。 你的帖子應該內容豐富,易于訪問,迎合精通技術的受眾。 讓它聽起來很酷,避免使用復雜的單詞,這樣聽起來就不像人工智能。''', expected_output='至少4段的完整博客文章', agent=writer)

crew = Crew( agents=[researcher, writer], tasks=[task1, task2], verbose=2,)

result = crew.kickoff()Crew的verbose設置了打印日志的級別,我們看看輸出的效果

只能說一般吧,如果要解決某一專業的問題,我覺得寫技術博客也需要專業,還需要不少優化的,定制化Prompt、執行流程等,但實際效果還不得而知,但這也是大多數AI應用的現狀。

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Agent調研--19類Agent框架對比
OpenAI早就不卷大模型,開始卷AI Agents了?這是一篇來自OpenAI應用研究主管關于Agent的萬字長文
功能超全的AI Agents開源庫來了,能寫小說,還能當導購、銷售
LLM AI Agent:思想脈絡、產業化技術與展望
The Age of AI:拾象大模型及OpenAI投資思考
一言不合就跑分,國內AI大模型為何沉迷于“刷榜”
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 北碚区| 洮南市| 昌江| 来凤县| 商丘市| 临高县| 梁山县| 乐东| 金坛市| 北川| 铁岭县| 绥阳县| 乐昌市| 叙永县| 汉源县| 吉林省| 海伦市| 德昌县| 大姚县| 方城县| 台南县| 大田县| 宜春市| 体育| 荃湾区| 台北县| 中山市| 道真| 兴城市| 闻喜县| 朝阳县| 南皮县| 呼伦贝尔市| 北京市| 寿阳县| 闻喜县| 山阳县| 区。| 嘉义市| 尼木县| 惠水县|