Cara Menggunakan CrewAI: Panduan Praktikal untuk Aliran Kerja Berbilang Ejen
Janji yang berani: Jika anda pernah berhasrat untuk mengklon rakan sepasukan terbaik anda untuk menangani projek dengan lebih pantas, CrewAI membawakan anda hampir—dengan mengatur berbilang ejen AI yang merancang, bekerjasama dan menghantar kerja bersama-sama.
Dalam panduan praktikal dan berorientasikan penyelesaian ini, anda akan mempelajari dengan tepat cara menggunakan CrewAI: daripada memasang rangka kerja dan mentakrifkan ejen, hingga membina peranan, alatan, tugas dan aliran kerja berbilang ejen berstruktur yang memberikan hasil yang nyata. Kami akan meliputi corak untuk penyelidikan, kandungan, analisis data dan penjanaan kod—dan cara mengelakkan perangkap biasa seperti jalan buntu ejen, pembengkakan gesaan dan capaian lampau alatan.
Fokus kami: memberikan anda laluan langkah demi langkah "cuba hari ini" dengan kod salin-tampal, amalan terbaik yang telah diuji dalam pertempuran dan beberapa pelan tindakan aliran kerja yang boleh anda sesuaikan. Sama ada anda mengautomasikan penyelidikan pasaran atau membina spesifikasi produk daripada tiket, ini ialah jalan masuk anda untuk menggunakan CrewAI dengan berkesan.
Apakah Itu CrewAI (dan Mengapa Ia Berbeza)
- CrewAI ialah rangka kerja untuk membina sistem berbilang ejen di mana setiap ejen mempunyai peranan, matlamat, alatan dan peraturan. Rangka kerja kemudiannya menyelaraskan ejen ini—menyerahkan tugas, berkongsi konteks dan mengulangi ke arah output.
- Tidak seperti gesaan LLM tunggal, CrewAI menguatkuasakan struktur: ejen adalah jelas, tugas adalah modular, alatan diberi kebenaran dan hasil boleh diaudit.
- Ganjaran: aliran kerja yang dipecahkan (penyelidikan → sintesis → penulisan → QA) yang mencerminkan cara pasukan sebenar bekerja—hanya lebih pantas, berskala dan boleh dihasilkan semula.
Permulaan Pantas: Cara Menggunakan CrewAI dalam 10 Minit
Di bawah ialah corak minimum untuk membawa anda daripada sifar kepada kru berbilang ejen yang berfungsi. Kami akan mengandaikan Python.
1) Pasang dan Sediakan
pip install crewai langchain-openai python-dotenv
Cipta fail .env dengan kunci pembekal LLM anda:
OPENAI_API_KEY=sk-your-key
# atau pembekal lain yang disokong oleh tindanan anda
2) Takrifkan Ejen Anda (Peranan + Matlamat + Alatan)
from crewai import Agent
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.2)
researcher = Agent(
role="Penyelidik Pasaran",
goal="Cari cerapan yang boleh dipercayai dan terkini tentang pasaran sasaran dan pesaing.",
backstory=(
"Anda ialah penganalisis yang tekun yang mengesahkan tuntutan, memetik sumber dan meringkaskan "
"isyarat daripada penerbitan yang bereputasi."
),
tools=[], # tambah alatan web/carian/pengikis kemudian
llm=llm
)
strategist = Agent(
role="Pakar Strategi Produk",
goal="Sintesiskan penyelidikan ke dalam kedudukan yang jelas dan pilihan pelan tindakan.",
backstory="Anda mengutamakan kejelasan, kebolehlaksanaan dan hasil yang boleh diukur.",
tools=[],
llm=llm
)
writer = Agent(
role="Penulis Kandungan",
goal="Hasilkan ringkasan yang tersusun rapi dengan contoh dan langkah seterusnya.",
backstory="Anda menulis dalam bahasa Inggeris yang ringkas dan meyakinkan serta mengikut panduan gaya.",
tools=[],
llm=llm
)
3) Cipta Tugas (Input, Output dan Kriteria Penerimaan)
from crewai import Task
research_task = Task(
description=(
"Kaji pasaran perisian pengurusan projek SMB AS pada tahun 2025. "
"Kenal pasti pesaing utama, peringkat harga, ICP dan tiga keperluan yang belum dipenuhi. "
"Kembalikan mata bulet dengan 3–5 petikan."
),
expected_output=(
"Ringkasan markdown dengan bahagian: Saiz Pasaran, Pemain Utama, Harga, ICP, "
"Keperluan yang Tidak Dipenuhi, Sumber (dengan pautan)."
),
agent=researcher
)
synthesis_task = Task(
description=(
"Menggunakan ringkasan penyelidikan, hasilkan penyataan kedudukan, 2–3 pembeza dan "
"pelan tindakan 90 hari dengan pencapaian penting."
),
expected_output="Memo strategi ringkas (<= 400 patah perkataan).",
agent=strategist
)
writing_task = Task(
description=(
"Ubah memo strategi menjadi satu halaman yang menghadap orang ramai. Sertakan tajuk utama, "
"cadangan nilai, mata ciri dan CTA."
),
expected_output="Satu halaman markdown yang sesuai untuk halaman pendaratan.",
agent=writer
)
4) Susun Kru (Aliran + Memori)
from crewai import Crew
crew = Crew(
agents=[researcher, strategist, writer],
tasks=[research_task, synthesis_task, writing_task],
process="sequential", # serahkan output mengikut susunan
verbose=True
)
result = crew.kickoff
print(result)
Itulah saluran paip kerja pertama anda. Anda mentakrifkan ejen, mendawai tugas dan menjalankan aliran berurutan. Untuk melanjutkannya, tambahkan alatan (carian, pengikisan, pelaksanaan kod), langkah pengesahan dan peringkat selari.
Model Mental untuk Projek CrewAI
Berfikir seperti pengurus projek:
- Peranan: Siapa buat apa? Penyelidik, Penganalisis, Jurutera, Penyemak.
- Peraturan: Apakah piawaian yang mesti dipenuhi? Panduan gaya, petikan, ujian.
- Alatan: Apakah keupayaan yang dibenarkan? Carian web, DB vektor, Python, API.
- Tugas: Bagaimanakah kita memecahkan masalah? Input, output, kriteria penerimaan.
- Penyerahan: Apakah yang disampaikan? Artifak, metadata, kekangan.
- Maklum Balas: Siapa yang mengesahkan? Ejen QA, manusia‑dalam‑gelung atau ujian.
Dengan CrewAI, kod anda mengekodkan model pengendalian ini.
Cara Menggunakan CrewAI untuk Kerja Sebenar: 5 Corak Terbukti
1) Penyelidikan → Sintesis → Draf (Kandungan & Laporan)
- Ejen: Penyelidik, Editor, Penulis, Penyemak Fakta.
- Alatan: Carian web, penyemak sumber, panduan gaya.
- Petua: Paksa petikan dan "jadual tuntutan" untuk mengelakkan halusinasi.
fact_checker = Agent(
role="Penyemak Fakta",
goal="Sahkan semua tuntutan terhadap sumber utama; tandakan petikan yang lemah.",
backstory="Skeptikal, teliti, tidak berat sebelah.",
llm=llm
)
qa_task = Task(
description="Sahkan semua penyataan fakta; tambahkan pembetulan sebaris dengan teg [FIX].",
expected_output="Draf yang diperbetulkan dengan ringkasan pembetulan.",
agent=fact_checker
)
2) Spesifikasi Produk daripada Tiket (Kejuruteraan)
- Ejen: Pengumpul Tiket, Pengarang Spesifikasi, Penyemak, Pengarang Ujian.
- Alatan: API penjejak isu, konteks pangkalan kod melalui pembenaman, penjana unit‑test.
- Petua: Tambahkan senarai semak "Definisi Selesai" automatik.
3) Data → Cerapan → Naratif (Analitis)
- Ejen: Perangkai Data (Python), Penganalisis, Pencerita.
- Alatan: Pandas, SQL, carta, pelaksanaan buku nota.
- Petua: Gunakan ejen yang didayakan alatan dengan pelaksanaan
python untuk analitis yang boleh disahkan.
4) Kod‑Gen dengan Rel Panduan
- Ejen: Perancang, Pengekod, Linter, Penguji, Penyemak.
- Alatan: Baca repo, pelari ujian unit, pemformat, pengimbas keselamatan.
- Petua: Minta Penyemak merujuk ujian yang membuktikan ketepatan.
5) Urutan E-mel Pelanggan pada Skala
- Ejen: Penyegmen, Penulis Iklan, Pemperibadi, QA.
- Alatan: API CRM, templat, panduan nada jenama.
- Petua: Tambahkan alatan semakan lantunan/spam dan paksa varian A/B.
Menambah Alatan: Berikan Ejen Keupayaan Sebenar
CrewAI menyerlah apabila ejen boleh menggunakan alatan. Contoh: berikan carian web penyelidik dan pembaca URL.
from langchain_community.tools import DuckDuckGoSearchRun
from langchain_community.document_loaders import WebBaseLoader
search = DuckDuckGoSearchRun
def web_search_tool(query: str):
return search.run(query)
def read_url_tool(url: str):
loader = WebBaseLoader(url)
docs = loader.load
return "\n\n".join([d.page_content[:2000] for d in docs])
researcher.tools = [web_search_tool, read_url_tool]
Amalan terbaik:
- Keistimewaan paling rendah: Hanya lampirkan alatan yang benar-benar diperlukan oleh ejen.
- Disiplin skema: Alatan harus bersifat deterministik dan ditaip; kembalikan teks ringkas dan berstruktur (JSON/Markdown) apabila boleh.
- Kawalan kos: Pastikan output alatan pendek; ringkaskan sebelum menyerahkan.
Mereka Bentuk Tugas Yang Berjaya
Tugas yang direka dengan baik menjadikan atau memecahkan sistem berbilang ejen.
- Bersikap eksplisit: “Kembalikan jadual markdown dengan lajur X, Y, Z.”
- Takrifkan kriteria penerimaan: “Mengandungi 3 petikan yang memaut ke sumber utama.”
- Tetapkan sempadan: Kiraan perkataan, had masa atau had langkah mengurangkan hanyutan.
- Sertakan contoh: Berikan mini‑spec format output yang dikehendaki.
- Tambahkan teg memori: Gunakan pengepala/kunci yang konsisten merentas tugas untuk penyerahan yang mudah.
Rangka tugas contoh:
Task(
description=(
"Ringkaskan 5 kajian terkini tentang produktiviti kerja jauh (2023–2025) dengan "
"metodologi, saiz sampel dan penemuan utama."
),
expected_output=(
"Markdown dengan bahagian H2 setiap kajian, jadual perbandingan akhir dan pautan."
),
agent=researcher
)
Mod Penyusunan: Berurutan lawan Selari lawan Hibrid
- Berurutan: Penyerahan yang boleh dipercayai; lebih perlahan tetapi lebih mudah untuk difikirkan.
- Selari: Berbilang ejen bekerja serentak (cth., 3 penyelidik); gabungkan kemudian.
- Hibrid: Penyelidikan kipas‑keluar selari → sintesis kipas‑masuk dan QA.
Contoh hibrid:
r1 = Agent(role="Penyelidik A", goal="Fokus pada harga", backstory="", llm=llm)
r2 = Agent(role="Penyelidik B", goal="Fokus pada ciri", backstory="", llm=llm)
# Tugas selari untuk r1, r2; tugas sintesis susulan menggabungkan output mereka.
Petua: Apabila menggabungkan, arahkan pensintesis untuk menyahduplikasi, menyelesaikan konflik dan memetik sumber yang lebih kuat.
Rel Panduan dan QA: Pastikan Ejen Jujur
- Pengadil: Tambahkan Penyemak atau Penyemak Fakta dengan kuasa veto yang jelas.
- Senarai semak: Kodkan pematuhan (privasi, keselamatan, nada jenama) sebagai senarai semak yang mesti ditanda oleh ejen QA.
- Kritikan diri: Minta ejen untuk memasukkan bahagian "Perkara Yang Mungkin Saya Terlepas" yang ringkas.
- Determinisme: Gunakan suhu yang lebih rendah untuk ejen QA.
qa = Agent(
role="Penyemak QA",
goal="Pastikan output memenuhi kriteria penerimaan dan panduan gaya.",
backstory="Anda tegas dan teliti.",
llm=llm
)
Kejuruteraan Gesaan untuk Ejen CrewAI
Gesaan ejen anda ialah penerangan kerja mini. Pastikan ia ketat.
- Gesaan peranan: Siapa anda, perkara yang anda optimumkan.
- Gesaan matlamat: Keadaan akhir yang diingini.
- Kekangan: Kiraan perkataan, format, nada, rujukan.
- Alatan: Nama, masa untuk menggunakannya, perkara untuk dikembalikan.
- Contoh: 1–2 sampel yang pendek dan realistik.
Petikan:
researcher = Agent(
role="Penyelidik Analitikal",
goal=(
"Sampaikan ringkasan yang padat dan tepat dengan 3–5 petikan yang boleh dipercayai dan nota risiko."
),
backstory=(
"Anda mengesahkan tuntutan, lebih suka sumber utama dan menandakan ketidakpastian."
),
llm=llm
)
Kebolehcerapan: Lihat Perkara yang Ejen Lakukan (dan Mengapa)
Dayakan log verbose dan kekalkan artifak:
- Simpan gesaan, output dan panggilan alat setiap tugas.
- Simpan manifes larian dengan metadata (model, suhu, alatan).
- Simpan pad gores untuk nota sementara; ia membantu penyahpepijatan dan audit.
Corak:
crew = Crew(..., verbose=True, output_log_file="runs/2025-crew.log")
Petua Kos, Kependaman dan Kebolehpercayaan
- Pembatuhan: Selaraskan tugas bebas; hadkan keserentakan untuk mengelakkan had kadar.
- Ringkaskan: Mampatkan artifak perantaraan untuk mengurangkan putaran token.
- Penimbalan: Memoize langkah yang stabil (cth., definisi pasaran) dengan stor vektor.
- Laluan balik: Sediakan model sandaran atau dasar cuba semula untuk panggilan yang tidak menentu.
- Manusia‑dalam‑gelung: Masukkan get kelulusan pilihan pada langkah berisiko tinggi.
Perangkap Biasa (dan Cara Memperbaikinya)
- Perangkap: Tugas yang samar → output yang berdolak‑dalik.
- Betulkan: Tambahkan kriteria penerimaan dan contoh yang jelas.
- Perangkap: Terlalu banyak alatan → gangguan dan kos.
- Betulkan: Hanya alatan khusus tugas yang paling rendah keistimewaannya.
- Perangkap: Gelung tak terhingga atau lebih‑lelaran.
- Betulkan: Tambahkan had langkah/masa dan klausa “berhenti jika kriteria dipenuhi”.
- Perangkap: Kehilangan konteks merentas ejen.
- Betulkan: Gunakan objek penyerahan berstruktur (JSON) dan pengepala yang konsisten.
- Perangkap: Fikiran terkemudian QA.
- Betulkan: Anggap QA sebagai ejen kelas pertama dengan kuasa veto.
Contoh Hujung‑ke‑Hujung: Penjana Ringkasan Persaingan
Matlamat: Hasilkan ringkasan persaingan yang membandingkan tiga alatan untuk persona sasaran.
Ejen:
- Penganalisis Persona → mentakrifkan titik kesakitan dan kerja‑yang‑perlu‑dilakukan.
- Penyelidik → mengumpul data dan petikan.
- Pensintesis → membina jadual perbandingan dan cerapan.
- Penulis → menghasilkan ringkasan akhir.
- QA → mengesahkan sumber dan kejelasan.
Rangka:
persona = Agent(role="Penganalisis Persona", goal="Takrifkan ICP dan JTBD.", llm=llm)
researcher = Agent(role="Penyelidik", goal="Kumpul data yang boleh dipercayai.", llm=llm)
synth = Agent(role="Pensintesis", goal="Bandingkan dan tafsir.", llm=llm)
writer = Agent(role="Penulis", goal="Cipta ringkasan sedia eksekutif.", llm=llm)
qa = Agent(role="QA", goal="Sahkan tuntutan dan kejelasan.", llm=llm)
persona_task = Task(description="Takrifkan ICP & JTBD untuk pemimpin RevOps dalam SaaS.", agent=persona,
expected_output="Bulet + titik kesakitan + metrik kejayaan.")
research_task = Task(description="Kumpul harga, ciri dan ulasan untuk 3 alatan.", agent=researcher,
expected_output="Jadual + 5 petikan.")
synth_task = Task(description="Bina matriks perbandingan dan 3 cerapan teratas.", agent=synth,
expected_output="Jadual Markdown + cerapan.")
write_task = Task(description="Rangka ringkasan 1 halaman dengan cadangan.", agent=writer,
expected_output="Ringkasan eksekutif dalam markdown.")
qa_task = Task(description="Semak ketepatan dan kebolehbacaan; betulkan isu.", agent=qa,
expected_output="Ringkasan yang bersih dan disahkan.")
crew = Crew(agents=[persona, researcher, synth, writer, qa],
tasks=[persona_task, research_task, synth_task, write_task, qa_task],
process="sequential", verbose=True)
print(crew.kickoff)
Bila Menggunakan CrewAI lawan Gesaan Tunggal
Gunakan CrewAI apabila:
- Tugas itu secara semula jadi terurai menjadi peranan atau peringkat.
- Anda memerlukan kebolehkesanan, QA atau penggunaan alatan.
- Anda membina saluran paip boleh guna semula, bukan sekali‑sekala.
Berpegang pada gesaan tunggal apabila:
- Ia adalah tugas yang pendek dan subjektif tanpa alatan luaran.
- Kelajuan lebih penting daripada struktur.
Dengan Cara Ini: Draf Lebih Pantas dengan Panel Sisi AI
Jika anda menggunakan aliran kerja berbilang ejen untuk menyelidik, menggariskan dan merangka kandungan, perlu diingatkan bahawa panel sisi AI seperti Sider.ai boleh berada di samping pelayar dan dokumen anda untuk meringkaskan halaman, menjana garis besar dan memperhalusi draf dalam masa nyata. Ia tidak akan menggantikan penyusunan CrewAI, tetapi ia boleh mempercepatkan bahagian manual—mengumpul coretan, menulis semula bahagian atau menyemak kewarasan nada—sebelum anda memasukkan kandungan kembali ke dalam kru anda. Langkah Seterusnya yang Boleh Diambil Tindakan
- Pasang CrewAI dan jalankan contoh permulaan pantas.
- Pilih aliran kerja sebenar (penyelidikan → draf → QA) dan kodkannya.
- Tambahkan satu alatan pada satu masa; ukur impak ke atas kualiti dan kos output.
- Perkenalkan ejen QA dengan kriteria penerimaan yang jelas.
- Beralih ke model penyusunan hibrid untuk kelajuan.
Perkara Utama yang Perlu Diingati
- CrewAI mengubah projek kompleks menjadi aliran kerja modular dan berbilang ejen.
- Kejayaan bergantung pada peranan yang jelas, tugas yang jelas dan penggunaan alatan yang berdisiplin.
- Rel panduan (QA, senarai semak, had) memastikan kos rendah dan kualiti meningkat.
- Mulakan dengan kecil, kemudian skala dengan penyelidikan selari dan aliran hibrid.
Senarai Semak Mini: Cara Menggunakan CrewAI dengan Berkesan
- Takrifkan peranan, matlamat dan alatan secara jelas.
- Tulis tugas dengan kriteria penerimaan dan contoh.
- Gunakan berurutan untuk kebolehpercayaan, hibrid untuk kelajuan.
- Tambahkan ejen QA awal; berikan kuasa veto kepadanya.
- Log segala-galanya; simpan artifak untuk audit.
- Optimumkan kos dengan ringkasan, penimbalan dan pembatuhan.
Soalan Lazim
S1: Apakah CrewAI dan bagaimana saya menggunakannya untuk aliran kerja berbilang ejen?
CrewAI ialah rangka kerja untuk mengatur berbilang ejen AI dengan peranan, tugas dan alatan. Anda menggunakannya dengan mentakrifkan ejen, mencipta tugas dengan kriteria penerimaan dan menjalankan kru yang menyelaraskan penyerahan untuk menghasilkan output akhir.
S2: Bagaimana cara saya menambahkan alat seperti carian web kepada ejen CrewAI?
Lekatkan fungsi alat kepada ejen dan arahkan bila untuk menggunakannya. Pastikan output berstruktur dan ringkas (contohnya, JSON atau markdown) untuk mengawal kos dan meningkatkan penyerahan.
S3: Bilakah saya patut menggunakan CrewAI dan bukannya satu prompt LLM?
Gunakan CrewAI apabila tugas terbahagi kepada peringkat, memerlukan penggunaan alat atau QA, atau memerlukan saluran paip yang boleh diulang. Gunakan satu prompt untuk tugas yang cepat, subjektif yang tidak memerlukan struktur.
S4: Bagaimana saya boleh mengelakkan halusinasi dalam output CrewAI?
Tambahkan ejen Penyemak Fakta atau QA dengan kuasa veto, perlukan petikan kepada sumber utama, tetapkan suhu rendah untuk QA, dan nyatakan kriteria penerimaan seperti jadual tuntutan.
S5: Bolehkah CrewAI menjalankan tugas secara selari untuk mempercepatkan proses?
Ya. Gunakan ejen selari untuk tugas bebas (contohnya, beberapa penyelidik) dan kemudian tugas pensintesis untuk menggabungkan hasil. Orkestrasi hibrid mengimbangi kelajuan dan kebolehpercayaan.