CrewAI: Panduan Praktis untuk Orkestrasi Agen Berbasis Peran


Pendahuluan

CrewAI adalah kerangka kerja Python yang ringan dan sangat cepat untuk mengoordinasikan agen AI otonom yang bekerja sama sebagai "tim" untuk menyelesaikan sebuah tugas. CrewAI dibangun dari dasar, tanpa abstraksi berat, dan 100% independen dari LangChain atau pustaka agen lainnya. CrewAI memberikan pengembang kesederhanaan tingkat tinggi serta kontrol tingkat rendah. Ini dioptimalkan untuk alur kerja multi-agen siap produksi yang memperhatikan keandalan, keterlihatan, dan efisiensi biaya.

Kursus kilat ini akan membimbing Anda dari "hello world" hingga alur kerja multi-agen tingkat produksi dengan CrewAI. Anda akan diperkenalkan dengan konsep-konsep kunci, menyiapkan sebuah proyek, membuat kode alur kerja nyata, mengintegrasikan beberapa alat yang kuat, dan mempelajari praktik terbaik untuk keandalan serta pemantauan. Pada akhir kursus ini, Anda akan mengetahui bagaimana memutuskan apakah CrewAI cocok untuk kasus penggunaan Anda, dan bagaimana perbandingannya dengan kerangka kerja serupa seperti LangGraph dan AutoGen. Mari kita mulai!

Intisari Penting

  • CrewAI dibuat untuk produksi, bukan demo. CrewAI mengutamakan keandalan, keterlihatan, dan pengendalian biaya. Ini ringan dan bekerja secara independen dari LangChain, sehingga ideal untuk sistem multi-agen di dunia nyata.
  • Agensi berbasis peran meningkatkan kejelasan dan skalabilitas. Agen diberikan peran yang jelas (Peneliti, Penulis, Manajer, dll.) alih-alih menggunakan perintah monolitik. Peran mendukung dekomposisi tugas yang bersih dan skalabel serta kolaborasi antar agen.
  • Model mental inti itu sederhana dan kuat. Model mental CrewAI didasarkan pada empat elemen dasar: Agen, Tugas, Alat, dan Tim. Pendekatan ini menghasilkan alur kerja yang sederhana, konsisten, dan mudah dipahami, diperluas, serta diperbaiki.
  • Fleksibilitas deklaratif + programatik mempercepat iterasi. Alur kerja CrewAI dapat dideklarasikan secara deklaratif dalam YAML untuk iterasi cepat, kemudian ditingkatkan menjadi API Python programatik untuk orkestrasi lanjutan, logika kustom, dan kontrol lebih mendalam saat diperlukan.
  • Disiplin rekayasa yang kuat sangat penting. Sistem CrewAI yang efektif bergantung pada pedoman, termasuk spesifikasi tugas yang jelas, delegasi terbatas, batas iterasi, dasar penggunaan alat, dan observabilitas yang tepat, untuk mencegah lingkaran tak berujung, halusinasi, dan biaya yang berlebihan.

Apa itu CrewAI?

CrewAI adalah kerangka kerja multi-agen berbasis peran untuk Python. Ini memungkinkan Anda untuk mendeklarasikan beberapa agen yang didukung LLM dengan keahlian dan tujuan yang ditentukan, serta mengatur mereka untuk berkolaborasi dalam alur kerja yang terstruktur. Anggota kru bekerja secara semi-otonom dalam bidang spesialisasi mereka, dan proses koordinasi terpisah (agen manajer) juga dapat dibuat untuk mengelola alur kerja.

Mengorganisir agen AI dalam suatu tim dengan peran yang jelas memungkinkan Anda untuk menghindari membuat satu agen melakukan segalanya, seperti yang terjadi pada sistem yang lebih sederhana. Misalnya, satu agen bisa unggul dalam penelitian, agen lain dalam menulis, dan agen lain dalam membuat keputusan. CrewAI menangani pengiriman pesan dan organisasi antar agen, memungkinkan mereka untuk berkolaborasi pada berbagai sub-tugas untuk mendapatkan hasil akhir.

Instalasi

Prasyarat: Python 3.10 hingga 3.13. CrewAI membutuhkan Python >=3.10 dan <3.14. Pastikan versi Python Anda berada dalam rentang ini (cek melalui python3 --version). Jika tidak, pastikan untuk memperbarui Python Anda terlebih dahulu. Perlu dicatat juga bahwa CrewAI menggunakan API OpenAI di balik layar, jadi Anda harus memiliki kunci API OpenAI (atau kunci dari penyedia LLM lainnya) yang tersedia.

Langkah 1: Instal CrewAI. CrewAI didistribusikan melalui PyPI. Pustaka inti dapat diinstal melalui pip. Ini menginstal paket dan CLI CrewAI.

pip install crewai

Jika Anda ingin dukungan penuh untuk alat, Anda juga dapat menginstal paket alat opsional. Ini memastikan Anda memiliki perpustakaan alat yang sudah dibuat sebelumnya dari CrewAI.

pip install crewai[tools]

Catatan: CrewAI memiliki pengelola lingkungan sendiri yang disebut UV, yang juga menangani dependensi untuk Anda. Ini bersifat opsional, tetapi direkomendasikan oleh dokumen CrewAI.

  • Pasang UV (sekali saja): di macOS/Linux, jalankan:
curl \-LsSf https://astral.sh/uv/install.sh

Ini menginstal perintah uv.

  • Kemudian, pasang CrewAI melalui alat UV: uv tool install crewai. Ini melakukan hal yang sama seperti pip, tetapi juga secara otomatis menyiapkan lingkungan terisolasi dan alat CLI.

Setelah instalasi, Anda dapat memeriksa apakah semuanya berfungsi dengan memverifikasi versi. Anda seharusnya melihat output seperti crewai v0.x.x yang mengonfirmasi bahwa itu telah terpasang.

crewai --version

Langkah 2: Buat kerangka proyek CrewAI. CrewAI dilengkapi dengan CLI untuk membuat kerangka proyek baru dengan struktur yang direkomendasikan. Di terminal, jalankan:

crewai create crew my_project_name

Gantilah my_project_name dengan nama yang ingin Anda berikan untuk proyek Anda. Ini akan membuat folder my_project_name/ dengan template siap pakai:

my_project_name/
├── .gitignore
├── pyproject.toml
├── README.md
├── .env                # for API keys and config
├── knowledge/          # (optional knowledge base)
└── src/
   └── my_project_name/
       ├── crew.py     # Crew orchestration code
       ├── main.py     # Entry point to run your crew
       ├── agents.yaml # Define your agents here
       ├── tasks.yaml  # Define tasks/workflows here
       └── tools/      # Custom tools (with __init__.py and example tool file)

Kerangka ini memberikan Anda titik awal yang terstruktur. File agents.yaml dan tasks.yaml adalah tempat Anda dapat secara deklaratif menentukan konfigurasi kru Anda (peran, tujuan, urutan tugas, dll.), sementara main.py dan crew.py adalah titik masuk Python jika Anda lebih suka konfigurasi berbasis kode. .env adalah tempat Anda menyimpan kunci API (misalnya, OPENAI_API_KEY=…) agar tidak tertanam secara langsung.

Langkah 3: Instal dependensi proyek. Di dalam direktori proyek Anda, jalankan:

crewai install

Perintah ini akan menjalankan CrewAI CLI untuk menginstal semua dependensi yang mungkin diperlukan proyek (menyiapkan lingkungan, memastikan paket crewai-tools terinstal, dll.). Jika proyek Anda memerlukan paket Python tambahan untuk diinstal, Anda dapat menyebutkannya menggunakan ‘uv add <package>’ (UV) atau melalui ‘pip install’ seperti biasa.

Langkah 4: Jalankan kru pertama Anda. Sekarang Anda siap untuk menjalankan kru contoh default. Cukup jalankan:

crewai run

Ini akan menjalankan kru yang didefinisikan dalam kerangka kerja Anda (secara default, ini mungkin menjalankan contoh kolaborasi dua agen yang sederhana). Jika semuanya berfungsi, Anda akan melihat para agen berpikir/bertindak di konsol.

Kesalahan umum saat instalasi*:*

  • Versi Python – Instal pada versi yang didukung (3.10–3.13), karena instalasi mungkin gagal pada versi Python yang lebih lama akibat masalah dependensi.
  • Versi SDK OpenAI – CrewAI mungkin memerlukan SDK Python OpenAI versi minimum (misalnya, openai >= 1.13.3 adalah persyaratan untuk CrewAI 0.175.0). Jika Anda mengalami kesalahan impor terkait OpenAI, pastikan Anda memperbarui paket OpenAI Anda.
  • Alat build Windows – Jika Anda menemui kesalahan build untuk chroma-hnswlib di Windows, Anda perlu menginstal Visual Studio C++ Build Tools (CrewAI menggunakan Chroma untuk memori; solusinya adalah memiliki alat build C++ tersedia).
  • UV tidak ada di PATH – Jika perintah uv tidak dapat ditemukan setelah instalasi, jalankan uv tool update-shell untuk memperbarui PATH Anda.

Model Mental CrewAI: Agen, Tugas, Alat, dan Kru

Layak untuk melihat empat blok bangunan utama dari CrewAI. Alur kerja CrewAI terdiri dari 4 komponen utama: Agen, Tugas, Alat, dan Crew itu sendiri (seorang pengatur yang menggabungkan agen dan tugas).

Agen: Pekerja LLM Berbasis Peran

Seorang Agen di CrewAI adalah pekerja yang didukung oleh LLM dengan peran tertentu, tujuan yang ingin dicapai, dan (opsional) beberapa konteks latar belakang. Agen bekerja secara mandiri, membuat keputusan yang dianggap mampu dilakukan dalam bidang keahliannya. Misalnya, Anda mungkin memiliki agen dengan peran Analis Riset yang tujuannya melakukan riset, dan agen lain dengan peran Penulis yang tujuannya menyusun laporan. Anda membuat agen dengan menentukan perannya, tujuan, dan parameter lainnya. Berikut adalah contohnya:

from crewai import Agent

researcher = Agent(
    role="Senior Research Analyst",
    goal="Identify emerging AI trends and their business implications",
    backstory="You have 10 years of experience in AI research...",
    llm=your_llm_instance,         # (Optional) use a specific LLM for this agent
    tools=[web_search_tool, document_loader_tool],
    memory=True,                   # Enable short/long-term memory for this agent
    verbose=True                   # Log the agent's thought process and decisions
)

Atribut kunci dari seorang Agen:

  • peran: Nama atau set keterampilan agen (ini dapat memengaruhi perilaku; misalnya, “Penasihat Keuangan”, “Analis Database SQL”).
  • tujuan: Tujuan tingkat tinggi bagi agen untuk dicapai.
  • latar belakang: Konteks atau persona. Ini dapat membantu meningkatkan kualitas prompt dengan memberikan agen sebuah sudut pandang atau nada (misalnya, “Anda memiliki 10 tahun pengalaman di bidang keamanan siber…”).
  • alat: Daftar alat (fungsi/API) yang dapat dipanggil agen untuk membantunya dalam pekerjaannya.
  • llm: Anda dapat menetapkan LLM tertentu untuk setiap agen. Misalnya, Anda bisa menggunakan model yang lebih murah untuk tugas-tugas sederhana berbasis pencarian/kata kunci, dan model GPT-5 yang lebih kuat untuk tugas yang lebih kompleks guna membantu mengoptimalkan trade-off kinerja.
  • memori: Jika True, agen akan mempertahankan memori di berbagai tugas (memungkinkannya untuk mengingat masa lalu, misalnya, interaksi/pertanyaan/temuan sebelumnya).
  • verbose: Jika True, agen akan mencetak log kegiatan secara luas (berguna untuk debugging/menelusuri pengambilan keputusan).

Tugas: Unit Kerja Spesifik

Sebuah Task di CrewAI mewakili satu unit pekerjaan yang harus dilakukan oleh agen, termasuk instruksi dan hasil yang diharapkan. Anda bisa menganggapnya seperti memberikan item yang harus dilakukan kepada salah satu agen Anda. Berikut cara mendefinisikan sebuah Task dalam kode:

from crewai import Task

analysis_task = Task(
    description="Analyze the top 5 AI trends in 2025 and assess their market potential.",
    expected_output="A structured analysis including each trend's name, market size, key players, and growth forecast.",
    agent=researcher,
    async_execution=False,      # False = this task runs synchronously (waits for previous tasks if any)
    output_file="analysis.md",  # save the output to a file
    depends_on=[research_task]  # (Optional) task dependency: run after research_task
)

Atribut utama dari sebuah Tugas:

  • deskripsi: Instruksi untuk tugas (apa yang harus dilakukan oleh agen).
  • expected_output: Deskripsi tentang bagaimana seharusnya output terlihat (ini juga akan membantu agen untuk memformat dan menyusun outputnya).
  • agen: Agen mana yang akan digunakan untuk tugas ini (yang telah kita definisikan sebelumnya).
  • async_execution: Jika True, tugas dapat dijalankan secara paralel dengan tugas lainnya (berguna ketika tugas bersifat independen). Secara default, nilainya False untuk eksekusi berurutan.
  • output_file: Jika diberikan, CrewAI akan menulis output agen ke file ini di disk.
  • depends_on: Daftar tugas lain yang harus diselesaikan sebelum tugas ini dapat dimulai. Ini memungkinkan Anda membuat ketergantungan dan, dengan demikian, menjamin urutan eksekusi yang benar (jika diperlukan).

Alat: Kemampuan Agen

Alat adalah cara Anda memberikan agen kemampuan tambahan. Sebuah Alat pada dasarnya adalah fungsi atau integrasi API yang dapat dipanggil oleh agen sebagai bagian dari proses penalarannya. Misalnya, alat pencarian web memungkinkan agen untuk mencari di internet, alat basis data memungkinkan agen untuk mengambil data, dan sebagainya.

CrewAI dilengkapi dengan beberapa alat bawaan dan memungkinkan Anda untuk menentukan alat kustom Anda sendiri. Menyematkan alat ke agen pada dasarnya berarti agen dapat memutuskan untuk menggunakan alat tersebut sesuai kebutuhan untuk mencapai tujuannya.

Berikut adalah contoh penggunaan salah satu alat bawaan CrewAI, yaitu alat pencarian web, serta alat I/O file:

from crewai_tools import SerperDevTool, FileReadTool, FileWriteTool

# Initialize some tools
web_search = SerperDevTool()   # web search via Serper (Google)
file_reader = FileReadTool()   # read from files
file_writer = FileWriteTool()  # write to files

# Give our researcher agent the ability to use these tools
researcher.tools = [web_search, file_reader, file_writer]

Alat kustom hanyalah fungsi Python (atau kelas) yang dihias dengan @tool dari CrewAI, yang tersedia untuk agen:

from crewai.tools import tool
import json

@tool("Database Query")
def query_database(sql: str) -> str:
    """Execute an SQL query against the company database."""
    # Simple validation example:
    if "DROP" in sql.upper():
        return "Error: Destructive queries are not allowed."
    # (Pretend we run the query and get results)
    results = execute_sql(sql)
    return json.dumps(results)

Dalam contoh ini, kami membuat sebuah alat bernama “Database Query.” Docstring dan nama fungsi memberikan konteks bagi agen untuk memahami fungsi alat tersebut. Kami menyertakan pemeriksaan keamanan untuk perintah SQL yang berpotensi berbahaya. Agen dapat memanggil query_database(“SELECT * FROM Customers”) menggunakan alat ini saat dijalankan.

CrewAI mendukung berbagai jenis alat dan interaksi:

  • Alat bawaan: Ada alat bawaan untuk berbagai jenis pencarian web, membaca/menulis file, membuat permintaan HTTP, dll. Ini sederhana, hanya plug-in yang bisa langsung digunakan.
  • Alat kustom: Tentu saja, Anda dapat memperluas kemampuan dengan alat yang dibuat oleh Anda. Ini bisa sesederhana contoh di atas, atau Anda bisa membangun perilaku yang lebih kompleks dengan membuat subclass dari CrewAI BaseTool.
  • Delegasi: Agen CrewAI dapat mendelegasikan suatu tugas kepada agen lain. Agen tersebut dapat memutuskan bahwa ia memerlukan bantuan dari agen spesialis lain dan memicu pembuatan sub-tugas untuk agen tersebut (CrewAI mengatur ini di latar belakang).

Crew: Mesin Orkestrasi

Tim mengoordinasikan agen dengan tugas-tugas dan mengontrol alur eksekusi. Saat membuat objek Tim, Anda harus menyediakan daftar agen, daftar tugas, dan konfigurasi tentang bagaimana Anda ingin proses berjalan. Misalnya:

from crewai import Crew, Process

crew = Crew(
    agents=[researcher, writer, manager],
    tasks=[research_task, writing_task, review_task],
    process=Process.HIERARCHICAL,  # The manager agent will delegate tasks to the others
    manager_agent=manager,        # Specify which agent is the manager (for hierarchical process)
    memory=True,                  # Enable shared memory among agents (they can see each other's outputs)
    verbose=True                  # Enable detailed logging for debugging
)

result = crew.kickoff(inputs={"topic": "AI Safety"})

Dalam contoh ini, kami sedang menginisialisasi sebuah tim dengan 3 agen dan 3 tugas. Kami juga memilih proses hierarkis, di mana agen Manajer bertanggung jawab atas alur kerja dan menetapkan tugas kepada agen pekerja. Sebuah input (topik: “Keamanan AI”) juga disediakan, yang dapat digunakan untuk mengisi placeholder pada deskripsi tugas atau tujuan agen.

Jenis proses: CrewAI menyediakan berbagai strategi eksekusi melalui pengaturan Proses:

  • Berurutan: Agen dieksekusi satu per satu sesuai dengan urutan yang ditentukan (alur kerja linier sederhana).
  • Hierarkis: Seorang manajer (atau agen koordinator) bertanggung jawab atas proses tersebut. Ia dapat secara dinamis menugaskan atau mendelegasikan tugas kepada agen lain dan melacak hasilnya (ideal untuk alur kerja yang kompleks di mana agen "bos" mengendalikan sub-tugas).
  • Kustom: Anda dapat menentukan logika orkestrasi Anda sendiri jika Anda memiliki kebutuhan khusus (untuk skenario lanjutan di luar proses bawaan).

Di balik layar, crew.kickoff() akan mengarahkan alur kerja berdasarkan jenis proses:

  • Dalam mode berurutan, CrewAI akan langsung menjalankan daftar tugas satu per satu.
  • Dalam mode hierarki, agen manajer dapat menentukan urutan atau membuat tugas secara dinamis.
  • Jika memory=True, agen akan memiliki akses ke ruang memori bersama di mana mereka dapat memanfaatkan hasil agen lain atau mempertahankan konteks.

Sekarang setelah kita membahas dasar-dasar komponen CrewAI, mari kita lihat contoh alur kerja multi-agen yang bisa Anda buat.

Membangun Alur Kerja Nyata (Proyek Terpandu)

Misalkan kita ingin membangun alur kerja otomatis untuk riset dan penulisan konten — misalnya "Meneliti suatu topik dan membuat laporan ringkasan". Kita akan mengonfigurasi dua agen: satu agen melakukan riset ("Peneliti") dan agen lainnya menggunakan informasi yang ditemukan untuk menulis ringkasan ("Penulis"). Ini akan menjadi contoh sederhana dari kasus penggunaan di dunia nyata yang melibatkan kolaborasi berurutan, penggunaan alat (untuk riset), dan penyerahan hasil antar agen.

Langkah 1: Tentukan Agen. Kita membutuhkan Agen Peneliti dan Agen Penulis. Dalam YAML (agents.yaml) atau Python, kita akan menentukan:

# agents.yaml
agents:
  - name: researcher
    role: Researcher
    goal: "Gather relevant information on a given topic"
    backstory: "An expert at finding and analyzing information."
    tools: [WebSearchTool]    # allow web search capability
    allow_delegation: false

  - name: writer
    role: Writer
    goal: "Produce a clear, concise summary of the research findings"
    backstory: "Skilled at summarizing information into reports."
    tools: []                 # no external tools, just relies on LLM
    allow_delegation: false

Perhatikan bagaimana kami menetapkan Peneliti dengan WebSearchTool – sebuah alat 'dummy' yaitu agen yang memiliki kemampuan untuk melakukan pencarian web (ada alat seperti SerperApiTool di CrewAI yang sebenarnya melakukan pencarian Google melalui API – kita bisa mendapatkan kunci API untuk itu dan mengonfigurasi alat sesuai kebutuhan). Penulis tidak memerlukan alat; ia menggunakan LLM yang mendasarinya untuk menghasilkan teks. Keduanya memiliki allow_delegation: false demi kesederhanaan (kami tidak akan menugaskan ulang tugas ke agen lain dalam alur ini). Kami juga bisa menentukan memory: true untuk setiap agen (atau cukup memory: true di tingkat kru jika kami ingin semua agen memiliki perilaku itu – konfigurasi kru akan menyebarkannya ke agen) jika kami ingin mereka menyimpan informasi.

Langkah 2: Definisikan Tugas dan Proses. Kami ingin Peneliti dijalankan terlebih dahulu, kemudian Penulis. Ini adalah proses berurutan: Tugas 1 (riset) -> Tugas 2 (menulis). Di CrewAI, kita bisa mendefinisikan tugas dalam YAML (tasks.yaml) seperti:

# tasks.yaml
tasks:
  - id: do_research
    description: "Research the topic: {{topic}}"
    expected_output: "Key points and relevant facts about {{topic}}."
    agent: researcher

  - id: write_report
    description: |
      "Write a summary report on '{{topic}}' using the research findings."
    expected_output: "A well-structured summary of the topic."
    agent: writer
    context: [do_research]  # use output of research task as context
process: sequential

Beberapa hal yang perlu diingat: Anda bisa memiliki placeholder dalam deskripsi (misalnya, {{topic}}) untuk diisi saat kami mengeksekusi kru dengan parameter. Kami memberi anotasi bahwa tugas write_report memiliki context: [do_research], yang akan memberikan output Peneliti sebagai input/konteks secara otomatis kepada agen Penulis. Ini sangat penting — inilah cara data/konteks mengalir antar agen. Kami telah mendefinisikan process: sequential untuk membuat urutan eksekusi menjadi jelas. Bidang expected_output bertujuan untuk membimbing agen (juga untuk mendefinisikan validasi).

Langkah 3: Tulis Kode Orkestrasi (crew.py/main.py). Dengan konfigurasi YAML, jika kita menjalankan crewai run, CrewAI akan melakukan orkestrasi untuk kita. Mari kita lihat seperti apa tampilannya dalam Python agar kita bisa lebih memahami bagian dalamnya:

# crew.py (conceptual example)
from crewai import Crew, Task, Process

# Import agents and tools definitions (or define inline)
from crewai import Agent
from crewai_tools import WebSearchTool

# Initialize tools
search_tool = WebSearchTool()  # assume configured with API key via .env

# Create Agent instances
researcher = Agent(role="Researcher", goal="Gather relevant info on a topic",
                   tools=[search_tool], allow_delegation=False)
writer = Agent(role="Writer", goal="Summarize research into a report",
               tools=[], allow_delegation=False)

# Define Tasks
research_task = Task(
    description="Research the topic: {topic}",
    agent=researcher,
    expected_output="Key facts about {topic}",
)
write_task = Task(
    description="Write a summary report on '{topic}' using the research findings.",
    agent=writer,
    context=[research_task],  # link output of research_task
    expected_output="Summary report for {topic}"
)

# Create a Crew with sequential process
crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, write_task],
    process=Process.sequential,  # sequential execution
    memory=True  # enable memory if we want agents to retain info
)

Sekarang, untuk mengeksekusi tim ini, kita akan memanggil crew.kickoff(topic="Dampak Perubahan Iklim") (misalnya, memberikan parameter topik yang diharapkan oleh deskripsi tugas kita). CrewAI kemudian akan:

  1. Mulai tugas penelitian: Agen Peneliti diberikan prompt "Teliti topik: Dampak Perubahan Iklim." Agen Peneliti memiliki kemampuan WebSearchTool, yang berarti LLM agen dapat memutuskan untuk menggunakan alat tersebut (jika diinginkan). Agen mungkin mencari "Fakta kunci dampak perubahan iklim," misalnya, dan mengambil beberapa hasil. Output dari panggilan alat (misalnya potongan informasi) dikembalikan ke agen, yang kemudian digunakan oleh LLM agen sebagai responsnya. Agen mengeluarkan sesuatu: dalam hal ini, mungkin daftar poin penting tentang dampak perubahan iklim. CrewAI menyimpan output ini (dan juga mengindeksnya dalam memori, jika pengindeksan diaktifkan).
  2. Lanjutkan ke write_task: Agen Penulis menerima prompt “Tulis laporan ringkasan tentang ‘Dampak Perubahan Iklim’ menggunakan temuan penelitian.” Konteks yang secara otomatis diberikan oleh CrewAI adalah output dari research_task. Agen Penulis disajikan daftar poin-poin kunci dari Peneliti. LLM milik Penulis menyusun laporan ringkasan berdasarkan poin-poin kunci tersebut.
  3. Selesai: CrewAI kemudian mengembalikan output akhir (laporan Penulis), yang dapat dicetak ke konsol atau disimpan tergantung pada bagaimana main.py disusun. Karena kami menyediakan expected_output untuk setiap tugas, CrewAI juga dapat memeriksa apakah output secara kasar sesuai dengan harapan tersebut (ini bukan validasi ketat, hanya sebagai panduan).

Langkah 4: Jalankan dan uji alur kerja. Kita akan menjalankan crewai run --param topic=“Dampak Perubahan Iklim” (jika menggunakan CLI dengan YAML) atau memanggil crew.kickoff(topic=“Dampak Perubahan Iklim”) dalam skrip Python. Pantau output konsol:

  • Anda sebaiknya melihat proses berpikir agen Peneliti (jika verbose=True pada kru atau agen) – mungkin akan menampilkan sesuatu seperti “Peneliti: Mencari ‘Fakta Kunci Dampak Perubahan Iklim’… ”, kemudian “Peneliti: Menemukan data tentang naiknya permukaan laut, cuaca ekstrem, dll. ”, dan “Peneliti: Tugas penelitian selesai. ”
  • Kemudian keluaran agen Penulis mungkin ditampilkan saat ia membuat draf ringkasan.
  • Akhirnya, teks laporan ringkasan dikeluarkan sebagai hasilnya.

Tips produksi untuk membangun alur kerja:

  • Jadilah spesifik dalam deskripsi tugas: Jangan gunakan instruksi yang ambigu. Misalnya, dalam prompt penulis, kami menambahkan “menggunakan temuan penelitian” untuk memperjelas apa yang harus dirangkum. Jika kami hanya menulis “tulis ringkasan,” mungkin saja muncul konten yang tidak akurat atau melewatkan poin penting.
  • Gunakan expected_output untuk membentuk jawaban. Kami menyediakan format yang diharapkan (daftar "Poin-poin penting", kemudian "ringkasan yang terstruktur dengan baik"). Anda dapat menggunakan ini sebagai bentuk spesifikasi atau batasan ringan. Jika output agen yang sebenarnya tidak sesuai, Anda mungkin perlu merumuskan ulang prompt atau menangani output tersebut dalam kode Anda.
  • Uji setiap agen secara individu. Sangat membantu untuk mencoba menjalankan agen secara terpisah dengan sebuah prompt untuk mengetahui perilakunya. Misalnya, uji prompt Peneliti secara terpisah untuk melihat apakah WebSearchTool berfungsi dan memberikan informasi yang berguna. Setelah diverifikasi, integrasikan ke dalam tim Anda.
  • Manfaatkan YAML untuk iterasi cepat. File konfigurasi YAML CrewAI memungkinkan Anda mengedit peran, prompt, dan pengaturan lainnya tanpa mengubah kode dasar. Anda bisa menjalankan crewai validate (jika terpasang) untuk memeriksa apakah YAML Anda diformat dengan benar. Jika Anda memerlukan logika yang kompleks (loop, kondisional), Anda bisa menggunakan kode Python (melalui SDK CrewAI) untuk menambahkan logika tambahan ke kru Anda (misalnya, menggunakan pernyataan if untuk menambahkan tugas secara kondisional), tetapi banyak alur kerja dapat ditentukan secara deklaratif.

Memperluas contoh: Anda bisa dengan mudah mengembangkan alur kerja ini dengan menambahkan agen ketiga (misalnya, agen “Editor” yang memeriksa laporan Penulis untuk kualitas atau kepatuhan gaya. Anda juga bisa menambahkan agen “FactChecker” yang memverifikasi fakta menggunakan pencarian web kedua. Anda akan menambahkan tugas tambahan, membuat tautan konteks yang diperlukan, dan mungkin memungkinkan agen Editor untuk meminta revisi (delegasi) jika diperlukan.

Alat & Integrasi

CrewAI dilengkapi dengan perpustakaan besar alat bawaan yang memungkinkan agen untuk berinteraksi dengan file, web, basis data, penyimpanan vektor, dan layanan eksternal. Berikut adalah tabel yang secara singkat menjelaskan kategori utama alat, contoh alat untuk masing-masing, dan kasus umum kapan Anda akan menggunakannya.

CrewAI menyertakan perpustakaan alat bawaan yang luas yang membantu agen berinteraksi dengan file, web, basis data, penyimpanan vektor, dan layanan eksternal. Tabel di bawah ini merangkum kategori alat utama, contoh alat, dan kasus penggunaan umumnya.

Alat (tautan referensi)Deskripsi
AlatPengikisSitusWebMengambil konten dari situs web dengan mengambil dan mengurai halaman HTML.
SerperAlatPengembangMelakukan pencarian Google melalui Serper API untuk hasil web secara real-time.
AlatBacaBerkasMembaca konten dari file lokal berbagai jenis.
Alat Kain LapMemungkinkan Generasi yang Ditingkatkan dengan Pengambilan dengan menanyakan dokumen eksternal.
AlatInterpreterKodeMenjalankan potongan kode Python dengan aman di dalam lingkungan agen.
Alat DALLE (DallETool)Menghasilkan gambar dari deskripsi teks menggunakan model DALL-E milik OpenAI.
AlatPencarianPGMengkueri database PostgreSQL untuk pengambilan data (dukungan pencarian gaya semantik/RAG).

Integrasi dan Alat Lanjutan: CrewAI juga terintegrasi dengan Model Context Protocol (MCP), sebuah ekosistem lengkap dari alat-alat yang dibuat oleh komunitas yang dapat diakses melalui antarmuka umum. Mengaktifkan integrasi MCP untuk agen Anda berarti ia bisa mengakses ribuan alat yang berjalan di server MCP (seperti layanan pengolahan data kompleks, API khusus, dll). Ini memerlukan pemasangan tambahan crewai-tools[mcp] dan (opsional) menjalankan server MCP atau terhubung ke salah satunya.

Pola Keandalan untuk Alur Kerja Multi-Agen

Dalam produksi, Anda akan ingin mempertimbangkan berbagai mode kegagalan. Agen yang masuk ke dalam loop tak berujung, alat yang bekerja secara salah, lonjakan biaya, dan sebagainya. CrewAI menyediakan pola dan alat bawaan untuk meningkatkan keandalan. Berikut adalah beberapa pola penting yang perlu diketahui:

Pola keandalanApa yang dicegahnya (dengan penjelasan singkat)Cara mendaftar di CrewAI (dengan penjelasan singkat)
Hasil alat dengan pagar pengamanHalusinasi setelah output alat yang benar — LLM “mengulang kata-kata” dan memperkenalkan kesalahan bahkan ketika alat mengembalikan kebenaran.Untuk alat yang memiliki otoritas (kueri DB, kalkulator, pengambilan data), konfigurasikan alur kerja sehingga output alat menjadi jawaban akhir (atau disalin secara verbatim ke dalam respons). Selain itu, tulis tugas yang secara eksplisit memerlukan penggunaan alat untuk fakta.
Batas iterasiLoop tak terbatas dan pembakaran token — agen terus berpikir, mencoba lagi, atau merencanakan ulang tanpa mencapai kesimpulan.Tetapkan max_iter agen untuk membatasi siklus pemikiran/alat. Jaga tetap rendah untuk tugas sederhana; tingkatkan hanya untuk penalaran kompleks multi-langkah. Perlakukan kejadian 'hit max_iter' yang sering sebagai tanda masalah desain prompt/tugas.
Waktu eksekusi habisHung runs — pengambilan data web yang lambat, jaringan yang terhenti, atau panggilan alat yang lama dapat memblokir seluruh tim.Atur max_execution_time per agen/tugas. Di dalam alat kustom, terapkan batas waktu (timeout HTTP, batas pemuatan halaman Selenium). Lebih baik menggunakan “timeout + coba lagi” daripada menunggu tanpa batas.
Percobaan ulang + penundaan kembaliKegagalan sementara — batasan kecepatan, API yang tidak stabil, konektivitas yang bersifat intermittent.Gunakan max_retry_limit dan terapkan exponential backoff dalam kode alat (misalnya, tunggu 1s → 2s → 4s). Setelah percobaan terbatas, kembalikan payload error terstruktur agar tugas berikutnya dapat menanganinya secara deterministik.
Delegasi terbatasDelegasi ping-pong — agen terus melempar pekerjaan bolak-balik dan tidak pernah menyelesaikannya.Aktifkan allow_delegation hanya untuk agen manajer/koordinator; biarkan agen pekerja tidak mendelegasikan. Tambahkan aturan prompt yang jelas seperti “delegasikan hanya saat data/akses alat tidak tersedia,” dan minta pekerja untuk mengembalikan output yang konkret, bukan permintaan.
Input deterministikOutput yang tidak stabil — variasi kecil pada prompt menyebabkan format/hasil yang berbeda, merusak otomatisasi di tahap selanjutnya.Gunakan spesifikasi tugas yang ketat (expected_output), skema tetap (JSON), dan prompt yang terstruktur. Untuk agen ekstraksi/klasifikasi, kurangi kerandoman (turunkan temperatur) dan batasi output pada bidang yang telah ditentukan.
Validasi outputKegagalan kualitas diam-diam — hasil tampak 'OK' tetapi kehilangan bidang yang diperlukan, melanggar batasan, atau mengandung kontradiksi.Tambahkan tugas validator/reviewer yang memeriksa skema, bagian yang diperlukan, kutipan, dan batasan. Jika validasi gagal, jalankan kembali dengan umpan balik korektif yang ditargetkan (apa yang hilang + format persis yang diharapkan).
Pengendalian biayaPengeluaran yang melonjak — alur kerja multi-agen mempercepat penggunaan token dan pemanggilan alat dengan cepat.Gunakan model yang lebih kecil/murah untuk langkah rutin dan simpan model yang lebih kuat untuk penalaran kritis. Batasi langkah/waktu, simpan konteks yang diulang, dan catat token/biaya per tugas untuk mengidentifikasi titik panas biaya guna mengoptimalkan prompt/alat.

Observabilitas dan Debugging

Tabel ini merangkum tiga lapisan observabilitas yang paling praktis untuk alur kerja CrewAI. Tabel ini menunjukkan cara memulai dengan visibilitas konsol sederhana selama pengembangan, kemudian berkembang menjadi pelacakan terstruktur dan pemantauan eksternal untuk produksi. Akhirnya, tabel ini menambahkan hook debug dan evaluasi untuk terus meningkatkan keandalan dan kualitas output dari waktu ke waktu.

Area observabilitasApa yang diberikannya kepada Anda (mengapa itu penting)Cara menggunakannya di CrewAI (praktis, berorientasi pada produksi)
Pencatatan dasar & tingkat kejelasanDebugging instan dan mudah dibaca — Anda dapat melihat langkah-langkah penalaran agen, pemanggilan alat, dan alur keputusan secara real time. Terbaik untuk pengembangan dan triase cepat, tetapi terbatas untuk analisis jangka panjang.Setel verbose=True pada Crew atau Agents tertentu untuk mencetak log langkah demi langkah (THINKING → ACTION → OBSERVATION). Gunakan ini secara lokal untuk mereproduksi masalah. Dalam produksi, jaga agar tingkat verbosity rendah dan keluarkan log terstruktur (JSON) bila memungkinkan agar dapat menggabungkannya.
Pelacakan + keterlihatan eksternal + pemantauan produksiJejak bukti terstruktur — eksekusi langkah demi langkah yang dicatat dengan cap waktu, input/output, pemanggilan alat, dan ID jalankan. Memungkinkan analisis pasca-kematian, penyetelan performa, dan pengendalian biaya (lonjakan token, alat lambat).Aktifkan pelacakan CrewAI (konfigurasi/flag/env sesuai dokumen) sehingga setiap jalannya menghasilkan data jejak dengan pengidentifikasi unik. Kirim jejak/metric ke backend observabilitas (misalnya, Langfuse untuk jejak LLM, Datadog untuk log/metric/peringatan, Arize/Phoenix untuk pemantauan model, LangSmith/LangTrace untuk pelacakan terpadu, Neatlogs untuk replay jalannya yang bisa dibagikan). Tambahkan peringatan pada kegagalan/latensi, lacak token dan biaya per tugas, serta pantau throughput untuk keputusan skalasi.
Hook debug + alur kerja evaluasiDiagnosa yang dapat ditindaklanjuti dan kontrol kualitas — hook kustom menampilkan pola (loop delegasi, percobaan ulang yang berulang, kesalahan alat), sementara evaluasi mencegah regresi tersembunyi dalam kualitas output.Gunakan step_callback untuk menandai/mencatat kejadian penting setelah setiap langkah (delegasi dipicu, kesalahan alat, jumlah percobaan ulang, pelanggaran skema). Tambahkan tahap evaluasi otomatis (pemeriksaan aturan + penilaian LLM opsional) pada output akhir dan simpan skor. Gunakan tren untuk menyempurnakan prompt/alat dan untuk mengatur rilis (peningkatan berkelanjutan ala AgentOps).

CrewAI vs LangGraph vs AutoGen

Agen yang berbeda mungkin memiliki filosofi, arsitektur, atau fitur yang berbeda yang sesuai dengan kasus penggunaan Anda. Tiga kerangka kerja yang paling populer adalah CrewAI, LangGraph, dan AutoGen. Mari kita bandingkan ketiganya secara singkat untuk menunjukkan kesamaan dan perbedaan utamanya:

AspekCrewAI (Tim Berbasis Peran)LangGraph (Alur Kerja Graf)AutoGen (Agen Percakapan)
PendekatanAgen yang berperan dalam kru yang terstruktur; tugas & alur menggabungkan otonomi dengan kendali.Graf siklik terarah dari langkah-langkah (sering melalui LangChain); manajemen status yang eksplisit.Sesi obrolan multi-agen; perilaku yang muncul tanpa proses tetap secara default.
Kemudahan PenggunaanModel Agen/Kru/Tugas yang jelas; cepat untuk memulai. Pencatatan bisa menjadi sulit tanpa alat yang tepat.Kurva belajar lebih curam; lebih banyak boilerplate dan desain kondisi awal.Cepat untuk membuat prototipe, tetapi memerlukan desain prompt yang cermat untuk mengoordinasikan agen.
Kontrol Alur KerjaMode ganda: kru mandiri dan aliran deterministik; keseimbangan yang baik antara fleksibilitas dan struktur.Kontrol kuat melalui grafik; sangat baik untuk percabangan kompleks, kurang adaptif saat dijalankan.Kontrol bawaan terbatas; urutan muncul dari percakapan, lebih sulit untuk diterapkan.
Status & MemoriModul memori bawaan (pendek/panjang/entity); tangguh sejak pertama digunakan.Sering bergantung pada memori LangChain; kondisi harus ditentukan sebelumnya dan dikelola dalam kode.Utamanya, riwayat percakapan, kecuali jika Anda menerapkan memori tambahan.
Alat & Integrasi100+ alat; tidak terikat pada LangChain, mudah mengintegrasikan API/alat kustom apa pun; masih bisa menggunakan alat LangChain jika diperlukan.Ketergantungan yang kuat pada LangChain; banyak integrasi, tetapi menambah kompleksitas dan beban adaptasi.Pemanfaatan alat melalui fungsi dan antarmuka AutoGen Studio; penggunaan alat dibentuk oleh paradigma percakapan.
KinerjaOverhead minimal; inti dioptimalkan; dilaporkan eksekusi lebih cepat pada beberapa tugas; kuat untuk alur kerja kecil dan kompleks.Lebih banyak overhead (LangChain + runtime graph); bisa lebih lambat tetapi efektif untuk alur yang terstruktur.Tergantung pada jumlah giliran percakapan; bisa lebih lambat jika agen melakukan banyak iterasi.
Kesiapan ProduksiDibangun untuk produksi: fitur observabilitas, fitur perusahaan, kontrol yang rinci, sistem yang dapat dipelihara.Produksi mungkin dilakukan dengan perancangan yang cermat; mungkin perlu lem tambahan karena keanehan LangChain.Lebih berorientasi pada penelitian/demo; penguatan produksi (logging, kesalahan, kontrol) sebagian besar dilakukan sendiri (DIY).
Terbaik UntukAlur kerja berbasis peran dengan langkah-langkah yang sudah diketahui tetapi pelaksanaan yang fleksibel (otomasi perusahaan, alur analitik, RAG multi-langkah dengan pengawasan).Alur kerja statis/prediktabel yang membutuhkan percabangan kompleks (misalnya, pipeline ETL/QA), terutama jika sudah berinvestasi di LangChain.Pemecahan masalah terbuka melalui percakapan (brainstorming, siklus kritik, obrolan dengan manusia sebagai bagian proses), di mana langkah-langkahnya tidak tetap.

Pertanyaan yang Sering Diajukan

1. Apa itu CrewAI, dan apa bedanya dengan agen AI tradisional?

CrewAI adalah kerangka kerja yang dirancang untuk mengatur beberapa agen AI yang bekerja sama menggunakan peran, tujuan, dan tanggung jawab yang jelas. Tidak seperti pengaturan agen tunggal tradisional, CrewAI menekankan kolaborasi dan delegasi tugas, mirip dengan cara tim manusia bekerja. Hal ini membuatnya sangat efektif untuk alur kerja yang kompleks dan multi-langkah yang memerlukan perencanaan, pelaksanaan, dan validasi.

2. Bagaimana cara kerja orkestrasi agen berbasis peran di CrewAI?

Di CrewAI, setiap agen diberikan peran tertentu, seperti peneliti, penulis, atau peninjau, beserta tujuan yang jelas. Tugas didistribusikan berdasarkan peran ini, memastikan agen hanya fokus pada hal-hal yang paling sesuai dengan kemampuan mereka. Pendekatan yang terstruktur ini meningkatkan efisiensi, mengurangi redundansi, dan menghasilkan output yang lebih koheren.

3. Apa saja penggunaan umum untuk CrewAI?

CrewAI banyak digunakan untuk pembuatan konten, otomatisasi penelitian, jalur analisis data, dan alur kerja produk yang digerakkan oleh AI. Ini sangat berguna terutama dalam skenario di mana tugas harus diselesaikan secara berurutan atau kolaboratif. Contohnya termasuk membangun sistem RAG, mengotomatisasi laporan, dan mengoordinasikan berbagai alat bertenaga LLM.

4. Apakah saya perlu pengetahuan AI atau Python lanjutan untuk memulai dengan CrewAI?

Familiaritas dasar dengan Python dan model bahasa besar berguna tetapi tidak wajib. CrewAI dirancang agar ramah bagi pengembang, dengan abstraksi yang jelas untuk agen, tugas, dan alur kerja. Pemula dapat memulai dengan contoh sederhana dan secara bertahap beralih ke pola orkestrasi multi-agen yang lebih kompleks.

5. Bisakah CrewAI diintegrasikan dengan alat dan kerangka kerja yang sudah ada?

Ya, CrewAI dapat diintegrasikan dengan penyedia LLM populer, API, dan alat eksternal seperti basis data vektor serta mesin alur kerja. Fleksibilitas ini memungkinkan CrewAI untuk menyesuaikan diri dengan mulus ke dalam jalur AI yang sudah ada. Akibatnya, tim dapat meningkatkan sistem yang sedang digunakan tanpa harus menulis ulang semuanya dari awal.

Kesimpulan

CrewAI paling berguna ketika Anda memperlakukan sebuah “crew” sebagai alur kerja yang dirancang, bukan sekadar eksperimen obrolan. Tetapkan peran dan batas tugas, dasarkan langkah-langkah kunci dengan alat, dan tetapkan batasan pada perilaku yang tidak terkendali agar sistem tidak jatuh ke dalam loop, kegagalan, atau biaya yang tak terduga. Kemudian pasang semuanya—log, jejak, dan evaluasi ringan—agar Anda bisa dengan cepat men-debug masalah dan meningkatkan kualitas dari rilis ke rilis. Jika Anda membutuhkan otomatisasi multi-langkah yang dapat diprediksi dengan kepemilikan yang jelas dan kontrol produksi, CrewAI adalah pilihan default yang kuat. Namun, jika masalah Anda terutama adalah logika percabangan yang kompleks atau kolaborasi percakapan yang terbuka, LangGraph atau AutoGen mungkin lebih cocok.

Referensi

  • Apa itu CrewAI?
  • Mulai dengan CrewAI - Pasang, atur, dan bangun kru AI pertama Anda
  • Gambaran Umum tentang Agen
  • Membangun Sistem Multi-Agen dengan CrewAI - Tutorial Lengkap
  • Alat CrewAI
  • Mulai Cepat: Aktifkan Kolaborasi

Terima kasih telah belajar bersama Komunitas Linux-Console.net.