iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0
自我挑戰組

攔截記憶碼:每日一小時記錄技術學習系列 第 22

Day 21 - crewAI — 打造多 Agent 協作的任務指揮系統

  • 分享至 

  • xImage
  •  

攔截源頭

  • 發現管道:Threads
  • 攔截原因:最近在研究多 Agent 協作框架(像是 AutoGen、LangGraph、OpenDevin),想找一個更直覺的系統能讓多個 AI 角色分工合作。看到 crewAI 的 slogan「Building multi-agent teams with memory, roles, and workflows」,立刻決定攔截。

技術初探

  • 官方定義:crewAI helps you build agentic teams that collaborate using shared memory, tools, and workflows. It provides abstractions for roles, tasks, and communication.

  • 核心賣點:

    • 多智能體團隊 (Crew):每個 Agent 具備角色、能力、記憶。
    • 任務與工作流 (Tasks & Flows):支援多階段任務、指揮鏈設計。
    • 工具與整合 (Tools):內建 Google、Serper、Browser、Python、文件讀取等常用工具。
    • 語義協作 (Semantic Collaboration):Agent 之間以自然語言互動,非硬性規則。
    • 記憶系統 (Memory):支援對話歷史、上下文保存,甚至長期記憶。
  • 適用場景:

    • 建立「AI 團隊」來解決複雜任務(例如:內容生產、研究報告、自動化決策)
    • 需要多角色分工(PM、研究員、工程師、審稿人)的 AI 應用
    • 想快速驗證多智能體概念,而不想自己寫溝通邏輯

實戰使用

快速安裝

pip install crewai

Hello World:建立兩個協作 Agent

from crewai import Agent, Task, Crew
from langchain.chat_models import ChatOpenAI

# 初始化 LLM
llm = ChatOpenAI(model="gpt-4o-mini")

# 定義兩個角色
researcher = Agent(
    role="Researcher",
    goal="研究最新的 AI 工具與框架",
    backstory="你是一位專業技術研究員,擅長從多來源整理資訊。",
    llm=llm
)

writer = Agent(
    role="Writer",
    goal="撰寫技術部落格文章",
    backstory="你是一名文字編輯,善於用簡潔語言說明技術內容。",
    llm=llm
)

# 定義任務
task = Task(
    description="請合作撰寫一篇介紹 CrewAI 的技術文章。",
    agents=[researcher, writer]
)

# 組成團隊
crew = Crew(agents=[researcher, writer], tasks=[task])
result = crew.run()

print(result)

這樣就能建立一個最小化的多 Agent 團隊,由研究員與寫手分工完成同一個任務。

進階:加入工具與記憶

crewAI 支援讓 Agent 使用工具(Tools),例如網頁搜尋、文件讀取、Python 程式執行:

from crewai_tools import SerperDevTool, BrowserTool, FileReadTool

search_tool = SerperDevTool()
browser = BrowserTool()
file_reader = FileReadTool()

researcher = Agent(
    role="Researcher",
    goal="找出最新 AI 框架趨勢",
    backstory="你是一位技術研究員。",
    tools=[search_tool, browser],
)

writer = Agent(
    role="Writer",
    goal="撰寫摘要與分析",
    backstory="你是一名部落客。",
    tools=[file_reader],
)

Workflow(多階段任務範例)

crewAI 支援設計任務流程:

from crewai import Process

crew = Crew(
    agents=[researcher, writer],
    tasks=[task],
    process=Process.sequential  # 也可設定為 concurrent 並行
)
crew.run()

可讓多 Agent 同時或依序執行,根據任務需求選擇流程策略。

記憶碼摘要

技術:crewAI  
分類:多智能體協作框架  
難度:⭐⭐⭐☆☆(1–5 顆星)  
實用度:⭐⭐⭐⭐⭐(1–5 顆星)  
一句話:讓多個 AI Agent 能像團隊一樣分工合作完成任務。   
適用情境:需要多角色 AI 協作(研究、撰文、測試、分析等)或自動化工作流。

結語

crewAI 的設計讓我想到「AI 團隊的 Slack」:每個成員(Agent)都有自己的角色、目標與背景,然後透過自然語言協作完成任務。
它最大的價值是把多智能體協作「模組化」,不再需要手動寫互動邏輯,直接描述角色與流程即可。


上一篇
Day 20 - VibeKit:安全沙盒下的 AI 編碼代理整合
下一篇
Day 22 - zen-mcp-server:為 Claude Code 打造的輕量 MCP 伺服器框架
系列文
攔截記憶碼:每日一小時記錄技術學習23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言