CrewAI : กรอบการทำงานที่ล้ำสมัยสำหรับการจัดการตัวแทน AI ที่เป็นอิสระและมีบทบาทตามบทบาท ด้วยการส่งเสริมความฉลาดในการทำงานร่วมกัน CrewAI ช่วยให้เจ้าหน้าที่ทำงานร่วมกันได้อย่างราบรื่นและจัดการกับงานที่ซับซ้อน
หน้าแรก | เอกสารประกอบ | แชทกับเอกสาร | ตัวอย่าง | วาทกรรม
ทำไมต้อง CrewAI?
เริ่มต้นใช้งาน
คุณสมบัติที่สำคัญ
ตัวอย่าง
บทช่วยสอนด่วน
เขียนคำอธิบายงาน
นักวางแผนการเดินทาง
การวิเคราะห์หุ้น
การเชื่อมต่อลูกเรือของคุณเข้ากับโมเดล
CrewAI เปรียบเทียบอย่างไร
ผลงาน
การวัดและส่งข้อมูลทางไกล
ใบอนุญาต
พลังของการทำงานร่วมกันของ AI มีมากเกินไป CrewAI ได้รับการออกแบบมาเพื่อให้ตัวแทน AI สามารถรับบทบาท แบ่งปันเป้าหมาย และปฏิบัติงานในหน่วยที่เหนียวแน่น เหมือนกับลูกเรือที่ทำงานหนัก ไม่ว่าคุณจะสร้างแพลตฟอร์มผู้ช่วยอัจฉริยะ กลุ่มบริการลูกค้าอัตโนมัติ หรือทีมวิจัยหลายตัวแทน CrewAI มอบแกนหลักสำหรับการโต้ตอบระหว่างตัวแทนหลายรายที่ซับซ้อน
ในการเริ่มต้นกับ CrewAI ให้ทำตามขั้นตอนง่ายๆ เหล่านี้:
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Python >=3.10 <=3.13 บนระบบของคุณ CrewAI ใช้ UV สำหรับการจัดการการพึ่งพาและการจัดการแพ็คเกจ มอบประสบการณ์การตั้งค่าและการดำเนินการที่ราบรื่น
ขั้นแรก ติดตั้ง CrewAI:
pip ติดตั้ง crewai
หากคุณต้องการติดตั้งแพ็คเกจ 'crewai' พร้อมกับคุณสมบัติเสริมที่มีเครื่องมือเพิ่มเติมสำหรับตัวแทน คุณสามารถทำได้โดยใช้คำสั่งต่อไปนี้:
pip ติดตั้ง 'crewai [เครื่องมือ]'
คำสั่งด้านบนจะติดตั้งแพ็คเกจพื้นฐานและเพิ่มส่วนประกอบพิเศษที่ต้องการการพึ่งพาเพิ่มเติมในการทำงาน
หากต้องการสร้างโครงการ CrewAI ใหม่ ให้รันคำสั่ง CLI (Command Line Interface) ต่อไปนี้:
crewai สร้างทีมงาน <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
สร้างอินสแตนซ์ให้ลูกเรือของคุณ:
crewai สร้างลูกเรือล่าสุด-ai-การพัฒนา
แก้ไขไฟล์ตามความจำเป็นเพื่อให้เหมาะกับกรณีการใช้งานของคุณ:
ตัวแทน.yaml
# src/my_project/config/agents.yamlresearcher: บทบาท: > {topic} เป้าหมายนักวิจัยข้อมูลอาวุโส: > ค้นพบการพัฒนาที่ล้ำหน้าในเรื่องราวเบื้องหลังของ {topic}: > คุณเป็นนักวิจัยที่ช่ำชองและมีความสามารถพิเศษในการเปิดเผยการพัฒนาล่าสุดใน {หัวข้อ}. เป็นที่รู้จักในด้านความสามารถในการค้นหาข้อมูลที่เกี่ยวข้องมากที่สุดและนำเสนอในลักษณะที่ชัดเจนและรัดกุม Reporting_analyst: บทบาท: > {topic} เป้าหมายของนักวิเคราะห์การรายงาน: > สร้างรายงานโดยละเอียดตาม {topic} การวิเคราะห์ข้อมูลและเรื่องราวเบื้องหลังผลการวิจัย: > คุณเป็นนักวิเคราะห์ที่พิถีพิถันและใส่ใจในรายละเอียด คุณเป็นที่รู้จักในด้านความสามารถในการเปลี่ยนข้อมูลที่ซับซ้อนให้เป็นรายงานที่ชัดเจนและรัดกุม ทำให้ผู้อื่นเข้าใจและดำเนินการกับข้อมูลที่คุณให้ได้อย่างง่ายดาย
งาน.yaml
# src/my_project/config/tasks.yamlresearch_task: description: > ดำเนินการวิจัยอย่างละเอียดเกี่ยวกับ {topic} ตรวจสอบให้แน่ใจว่าคุณพบข้อมูลที่น่าสนใจและเกี่ยวข้องในปีปัจจุบันคือปี 2024 Expect_output: > รายการที่มีสัญลักษณ์แสดงหัวข้อย่อย 10 หัวข้อที่มีหัวข้อมากที่สุด ข้อมูลที่เกี่ยวข้องเกี่ยวกับตัวแทน {topic}: researcherreporting_task: คำอธิบาย: > ตรวจสอบบริบทที่คุณได้รับและขยายแต่ละหัวข้อออกเป็นส่วนทั้งหมดสำหรับรายงาน ตรวจสอบให้แน่ใจว่ารายงานมีรายละเอียดและมีข้อมูลที่เกี่ยวข้องทั้งหมด Expect_output: > รายงานฉบับสมบูรณ์พร้อมหัวข้อหลัก โดยแต่ละหัวข้อมีข้อมูลครบถ้วน จัดรูปแบบเป็นมาร์กดาวน์โดยไม่มีตัวแทน ````: Reporting_analyst ผลลัพธ์_ไฟล์: report.md
crew.py
# src/my_project/crew.pyfrom นำเข้า crewai ตัวแทน, ลูกเรือ, กระบวนการ, งานจาก crewai.project นำเข้า CrewBase, ตัวแทน, ลูกเรือ, งานจาก crewai_tools นำเข้า SerperDevTool@CrewBaseclass LastAiDevelopmentCrew(): """LatestAiDevelopment ลูกเรือ"""@agentdef researcher (ตนเอง ) -> ตัวแทน: ส่งคืนตัวแทน ( config=self.agents_config['researcher'], verbose=จริง เครื่องมือ=[SerperDevTool()] ) @agentdef Reporting_analyst(self) -> ตัวแทน: ส่งคืนตัวแทน ( 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 crew(self) -> Crew: """สร้างทีม LastAiDevelopment"""return Crew( agent=self.agents, # สร้างโดยอัตโนมัติโดย @agent decoratortasks=self.tasks, # สร้างโดยอัตโนมัติโดย @task มัณฑนากรกระบวนการ = Process.sequential, verbose = True, -
main.py
#!/usr/bin/env python# src/my_project/main.pyimport sysfrom latest_ai_development.crew นำเข้า LastAiDevelopmentCrewdef run():""" เรียกใช้ทีมงาน """inputs = {'topic': 'AI Agents'}LatestAiDevelopmentCrew ().crew().kickoff(อินพุต=อินพุต)
ก่อนที่จะเรียกใช้ทีมงานของคุณ ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าคีย์ต่อไปนี้เป็นตัวแปรสภาพแวดล้อมในไฟล์ .env
ของคุณ:
คีย์ OpenAI API (หรือคีย์ LLM API อื่นๆ): OPENAI_API_KEY=sk-...
คีย์ Serper.dev API: SERPER_API_KEY=YOUR_KEY_HERE
ล็อคการขึ้นต่อกันและติดตั้งโดยใช้คำสั่ง CLI แต่ก่อนอื่น ให้นำทางไปยังไดเร็กทอรีโปรเจ็กต์ของคุณ:
ซีดี my_project ติดตั้ง crewai (ไม่บังคับ)
ในการรันทีมงานของคุณ ให้รันคำสั่งต่อไปนี้ในรูทของโปรเจ็กต์ของคุณ:
ลูกเรือวิ่ง
หรือ
หลาม src/my_project/main.py
หากมีข้อผิดพลาดเกิดขึ้นเนื่องจากการใช้บทกวี โปรดรันคำสั่งต่อไปนี้เพื่ออัปเดตแพ็คเกจ Crewai ของคุณ:
อัพเดตลูกเรือ
คุณควรเห็นเอาต์พุตในคอนโซลและควรสร้างไฟล์ report.md
ในรูทของโปรเจ็กต์ของคุณด้วยรายงานฉบับสมบูรณ์
นอกเหนือจากกระบวนการตามลำดับ คุณสามารถใช้กระบวนการตามลำดับชั้น ซึ่งจะมอบหมายผู้จัดการให้กับลูกทีมที่กำหนดไว้โดยอัตโนมัติ เพื่อประสานงานการวางแผนและการปฏิบัติงานอย่างเหมาะสม ผ่านการมอบหมายและการตรวจสอบความถูกต้องของผลลัพธ์ ดูข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการต่างๆ ที่นี่
การออกแบบตัวแทนตามบทบาท : ปรับแต่งเจ้าหน้าที่ด้วยบทบาท เป้าหมาย และเครื่องมือเฉพาะ
Autonomous Inter-Agent Delegation : ตัวแทนสามารถมอบหมายงานและสอบถามระหว่างกันเองได้โดยอัตโนมัติ ช่วยเพิ่มประสิทธิภาพในการแก้ปัญหา
การจัดการงานที่ยืดหยุ่น : กำหนดงานด้วยเครื่องมือที่ปรับแต่งได้ และมอบหมายงานให้กับเจ้าหน้าที่แบบไดนามิก
ขับเคลื่อนกระบวนการ : ขณะนี้รองรับเฉพาะการดำเนินงาน sequential
และกระบวนการ hierarchical
เท่านั้น แต่ยังมีกระบวนการที่ซับซ้อนมากขึ้น เช่น ความยินยอมและแบบอัตโนมัติที่กำลังทำงานอยู่
บันทึกเอาต์พุตเป็นไฟล์ : บันทึกเอาต์พุตของแต่ละงานเป็นไฟล์เพื่อให้คุณสามารถใช้งานได้ในภายหลัง
แยกวิเคราะห์ผลลัพธ์เป็น Pydantic หรือ Json : แยกวิเคราะห์ผลลัพธ์ของแต่ละงานเป็นแบบจำลอง Pydantic หรือเป็น Json หากคุณต้องการ
ใช้งานได้กับโมเดลโอเพ่นซอร์ส : บริหารทีมของคุณโดยใช้ Open AI หรือโมเดลโอเพ่นซอร์ส โปรดดูที่หน้า เชื่อมต่อ CrewAI กับ LLM สำหรับรายละเอียดเกี่ยวกับการกำหนดค่าการเชื่อมต่อของตัวแทนกับโมเดล แม้แต่โมเดลที่ทำงานในพื้นที่!
คุณสามารถทดสอบตัวอย่างชีวิตจริงต่างๆ ของทีม AI ได้ในคลังตัวอย่าง CrewAI:
เครื่องกำเนิดหน้า Landing Page
มีข้อมูลจากมนุษย์ในการประหารชีวิต
นักวางแผนการเดินทาง
การวิเคราะห์หุ้น
ตรวจสอบโค้ดสำหรับตัวอย่างนี้หรือดูวิดีโอด้านล่าง:
ตรวจสอบโค้ดสำหรับตัวอย่างนี้หรือดูวิดีโอด้านล่าง:
ตรวจสอบโค้ดสำหรับตัวอย่างนี้หรือดูวิดีโอด้านล่าง:
CrewAI รองรับการใช้ LLM ต่างๆ ผ่านตัวเลือกการเชื่อมต่อที่หลากหลาย ตามค่าเริ่มต้น เจ้าหน้าที่ของคุณจะใช้ OpenAI API เมื่อทำการสืบค้นโมเดล อย่างไรก็ตาม มีหลายวิธีในการอนุญาตให้ตัวแทนของคุณเชื่อมต่อกับโมเดลได้ ตัวอย่างเช่น คุณสามารถกำหนดค่าตัวแทนของคุณให้ใช้โมเดลท้องถิ่นผ่านเครื่องมือ Ollama
โปรดดูหน้า Connect CrewAI กับ LLM สำหรับรายละเอียดเกี่ยวกับการกำหนดค่าการเชื่อมต่อของตัวแทนกับโมเดล
ข้อได้เปรียบของ CrewAI : CrewAI สร้างขึ้นโดยคำนึงถึงการผลิตเป็นหลัก โดยนำเสนอความยืดหยุ่นของตัวแทนการสนทนาของ Autogen และแนวทางกระบวนการที่มีโครงสร้างของ ChatDev แต่ไม่มีความแข็งแกร่ง กระบวนการของ CrewAI ได้รับการออกแบบให้มีไดนามิกและปรับเปลี่ยนได้ โดยปรับให้เข้ากับขั้นตอนการพัฒนาและขั้นตอนการผลิตได้อย่างราบรื่น
Autogen : แม้ว่า Autogen จะทำได้ดีในการสร้างตัวแทนการสนทนาที่สามารถทำงานร่วมกันได้ แต่ก็ขาดแนวคิดเกี่ยวกับกระบวนการโดยธรรมชาติ ใน Autogen การโต้ตอบของเจ้าหน้าที่ประสานงานจำเป็นต้องมีการเขียนโปรแกรมเพิ่มเติม ซึ่งอาจกลายเป็นเรื่องซับซ้อนและยุ่งยากเมื่อขนาดของงานเพิ่มมากขึ้น
ChatDev : ChatDev นำแนวคิดของกระบวนการมาสู่ขอบเขตของตัวแทน AI แต่การใช้งานค่อนข้างเข้มงวด การปรับแต่งใน ChatDev มีจำกัดและไม่ได้มุ่งเน้นไปที่สภาพแวดล้อมการใช้งานจริง ซึ่งอาจขัดขวางความสามารถในการปรับขนาดและความยืดหยุ่นในแอปพลิเคชันในโลกแห่งความเป็นจริง
CrewAI เป็นโอเพ่นซอร์สและเรายินดีรับการมีส่วนร่วม หากคุณต้องการมีส่วนร่วม โปรด:
แยกพื้นที่เก็บข้อมูล
สร้างสาขาใหม่สำหรับฟีเจอร์ของคุณ
เพิ่มคุณลักษณะหรือการปรับปรุงของคุณ
ส่งคำขอดึง
ขอขอบคุณสำหรับข้อมูลของคุณ!
ล็อคยูวี ยูวีซิงค์
ยูวี เวนวี
ติดตั้งล่วงหน้า
ยูวีรัน pytest
uvx mypy
สร้างยูวี
pip ติดตั้ง dist/*.tar.gz
CrewAI ใช้การวัดและส่งข้อมูลทางไกลแบบไม่เปิดเผยตัวตนเพื่อรวบรวมข้อมูลการใช้งานโดยมีวัตถุประสงค์หลักในการช่วยเราปรับปรุงห้องสมุดโดยมุ่งเน้นความพยายามของเราไปที่ฟีเจอร์ การผสานรวม และเครื่องมือที่ใช้มากที่สุด
สิ่งสำคัญคือต้องเข้าใจว่า ไม่มีการรวบรวมข้อมูล ที่เกี่ยวข้องกับพร้อมต์ คำอธิบายงาน เรื่องราวเบื้องหลังหรือเป้าหมายของตัวแทน การใช้เครื่องมือ การเรียก API การตอบกลับ ข้อมูลใด ๆ ที่ประมวลผลโดยตัวแทน หรือความลับและตัวแปรสภาพแวดล้อม ยกเว้นเงื่อนไขที่กล่าวถึง . เมื่อเปิดใช้งานคุณสมบัติ share_crew
ข้อมูลโดยละเอียดรวมถึงคำอธิบายงาน เรื่องราวเบื้องหลังหรือเป้าหมายของตัวแทน และคุณลักษณะเฉพาะอื่น ๆ จะถูกรวบรวมเพื่อให้ข้อมูลเชิงลึกที่ลึกซึ้งยิ่งขึ้นในขณะที่เคารพความเป็นส่วนตัวของผู้ใช้ เราไม่ได้เสนอวิธีปิดการใช้งานในขณะนี้ แต่เราจะนำเสนอในอนาคต
ข้อมูลที่รวบรวมประกอบด้วย:
เวอร์ชันของ CrewAI
ดังนั้นเราจึงสามารถทราบจำนวนผู้ใช้ที่ใช้เวอร์ชันล่าสุดได้
เวอร์ชันของไพธอน
ดังนั้นเราจึงตัดสินใจได้ว่าเวอร์ชันใดที่จะรองรับได้ดีกว่า
ระบบปฏิบัติการทั่วไป (เช่น จำนวน CPU, macOS/Windows/Linux)
ดังนั้นเราจึงรู้ว่าระบบปฏิบัติการใดที่เราควรมุ่งเน้น และเราสามารถสร้างคุณสมบัติที่เกี่ยวข้องกับระบบปฏิบัติการเฉพาะได้หรือไม่
จำนวนตัวแทนและงานในลูกเรือ
ดังนั้นเราจึงทำให้แน่ใจว่าเรากำลังทดสอบภายในด้วยกรณีการใช้งานที่คล้ายกันและให้ความรู้แก่ผู้คนเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุด
กระบวนการลูกเรือถูกนำมาใช้
เข้าใจว่าเราควรมุ่งเน้นความพยายามของเราไปที่ใด
หากตัวแทนใช้หน่วยความจำหรืออนุญาตการมอบหมาย
ทำความเข้าใจว่าเราปรับปรุงคุณสมบัติหรืออาจจะทิ้งมันไป
หากงานถูกดำเนินการแบบขนานหรือตามลำดับ
ทำความเข้าใจว่าเราควรให้ความสำคัญกับการดำเนินการแบบคู่ขนานมากกว่านี้หรือไม่
รูปแบบภาษาที่ใช้
ปรับปรุงการรองรับภาษาที่ใช้บ่อยที่สุด
บทบาทของตัวแทนในลูกเรือ
ทำความเข้าใจกรณีการใช้งานระดับสูง เพื่อให้เราสามารถสร้างเครื่องมือ การบูรณาการ และตัวอย่างเกี่ยวกับเรื่องนี้ได้ดีขึ้น
ชื่อเครื่องมือที่มีอยู่
ทำความเข้าใจกับเครื่องมือที่เปิดเผยต่อสาธารณะ เครื่องมือใดที่มีการใช้งานมากที่สุด เพื่อให้เราสามารถปรับปรุงได้
ผู้ใช้สามารถเลือกใช้การส่งข้อมูลทางไกลเพิ่มเติม โดยแบ่งปันข้อมูลการส่งข้อมูลทางไกลที่สมบูรณ์โดยการตั้งค่าแอตทริบิวต์ share_crew
เป็น True
บนทีมงานของพวกเขา การเปิดใช้งาน share_crew
จะส่งผลให้มีการรวบรวมข้อมูลทีมงานโดยละเอียดและการดำเนินการงาน รวมถึง goal
backstory
context
และ output
ของงาน ซึ่งช่วยให้เข้าใจรูปแบบการใช้งานได้ลึกซึ้งยิ่งขึ้น ในขณะเดียวกันก็เคารพตัวเลือกของผู้ใช้ในการแบ่งปัน
CrewAI ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT
ตอบ: CrewAI เป็นเฟรมเวิร์กที่ล้ำสมัยสำหรับการจัดการตัวแทน AI ที่เป็นอิสระและมีบทบาทตามบทบาท ช่วยให้ตัวแทนทำงานร่วมกันได้อย่างราบรื่น จัดการกับงานที่ซับซ้อนผ่านระบบอัจฉริยะในการทำงานร่วมกัน
ตอบ: คุณสามารถติดตั้ง CrewAI ได้โดยใช้ pip:
pip ติดตั้ง crewai
สำหรับเครื่องมือเพิ่มเติม ให้ใช้:
pip ติดตั้ง 'crewai [เครื่องมือ]'
ตอบ: ใช่ CrewAI รองรับ LLM หลากหลาย รวมถึงรุ่นท้องถิ่นด้วย คุณสามารถกำหนดค่าตัวแทนของคุณให้ใช้โมเดลท้องถิ่นผ่านเครื่องมือ เช่น Ollama และ LM Studio ตรวจสอบเอกสารประกอบการเชื่อมต่อ LLM สำหรับรายละเอียดเพิ่มเติม
ตอบ: คุณสมบัติหลักได้แก่ การออกแบบตัวแทนตามบทบาท การมอบหมายระหว่างตัวแทนโดยอัตโนมัติ การจัดการงานที่ยืดหยุ่น การดำเนินการตามกระบวนการ การบันทึกเอาต์พุตเป็นไฟล์ และความเข้ากันได้กับทั้งโมเดลโอเพ่นซอร์สและที่เป็นกรรมสิทธิ์
ตอบ: CrewAI ได้รับการออกแบบโดยคำนึงถึงการผลิต โดยให้ความยืดหยุ่นคล้ายกับตัวแทนการสนทนาของ Autogen และกระบวนการที่มีโครงสร้างเช่น ChatDev แต่มีความสามารถในการปรับตัวมากขึ้นสำหรับแอปพลิเคชันในโลกแห่งความเป็นจริง
ตอบ: ใช่ CrewAI เป็นโอเพ่นซอร์สและยินดีรับการสนับสนุนจากชุมชน
ตอบ: CrewAI ใช้การตรวจวัดทางไกลแบบไม่เปิดเผยตัวตนเพื่อรวบรวมข้อมูลการใช้งานเพื่อการปรับปรุง ไม่มีการรวบรวมข้อมูลที่ละเอียดอ่อน (เช่น ข้อความแจ้ง คำอธิบายงาน หรือการเรียก API) ผู้ใช้สามารถเลือกที่จะแบ่งปันข้อมูลโดยละเอียดเพิ่มเติมได้โดยการตั้งค่า share_crew=True
บนทีมงานของตน
ตอบ: คุณสามารถค้นหาตัวอย่างในชีวิตจริงได้มากมายในพื้นที่เก็บข้อมูลตัวอย่าง CrewAI รวมถึงเครื่องมือวางแผนการเดินทาง เครื่องมือวิเคราะห์หุ้น และอื่นๆ อีกมากมาย
ตอบ: ยินดีต้อนรับการบริจาค! คุณสามารถแยกพื้นที่เก็บข้อมูล สร้างสาขาใหม่สำหรับฟีเจอร์ของคุณ เพิ่มการปรับปรุง และส่งคำขอดึงได้ ตรวจสอบส่วนการสนับสนุนใน README เพื่อดูรายละเอียดเพิ่มเติม