Membangun Agen AI Kolaboratif Dengan CrewAI

Membangun Agen AI Kolaboratif Dengan CrewAI

Node Sumber: 3089434

Pengantar

Pengembangan agen AI adalah salah satu garis terdepan dalam inovasi Perangkat Lunak. Seiring berkembangnya kualitas Model Bahasa Besar, kita akan menyaksikan lonjakan integrasi agen AI dengan sistem perangkat lunak yang ada. Dengan agen AI, tugas dapat diselesaikan dengan perintah suara atau gerakan alih-alih menavigasi aplikasi secara manual. Namun saat ini, pengembangan agen sedang dalam tahap awal. Kita masih melalui tahap awal pengembangan infrastruktur, alat, dan kerangka kerja, serupa dengan Internet pada tahun 1990an. Nah, pada artikel kali ini kita akan membahas framework lain untuk pengembangan agen yang disebut CrewAI.

Agen AI

Tujuan Pembelajaran

  • Pelajari tentang agen AI.
  • Jelajahi CrewAI – alat sumber terbuka untuk agen bangunan.
  • Bangun kru AI kolaboratif untuk menulis konten.
  • Jelajahi kasus penggunaan agen AI di kehidupan nyata.

Artikel ini diterbitkan sebagai bagian dari Blogathon Ilmu Data.

Daftar Isi

Apa itu Agen AI?

Model bahasa unggul dalam penerjemahan, peringkasan, dan penalaran. Namun, Anda dapat melakukan banyak hal dengan mereka. Salah satu cara untuk sepenuhnya mewujudkan potensi penalaran adalah dengan menjadikan LLM bersifat agen. Agen AI adalah LLM yang dilengkapi dengan alat dan petunjuk yang tepat. Agen ini dapat mengotomatiskan penelusuran, penghapusan web, eksekusi kueri SQL, operasi file, dan banyak lagi. Agen menggunakan kapasitas penalaran LLM untuk memilih alat berdasarkan kebutuhan saat ini. Namun alih-alih menggunakan satu agen untuk suatu tugas, kita dapat menggabungkan banyak agen untuk menyelesaikan tugas yang kompleks.

Langchain adalah alat default yang terlintas dalam pikiran ketika membahas agen AI. Namun, mengatur agen AI secara manual untuk melakukan tugas kolaboratif akan menjadi tantangan dengan Langchain. Di sinilah CrewAI berperan.

Apa itu CrewAI?

kruAI adalah kerangka kerja sumber terbuka untuk mengatur agen AI yang bermain peran dan otonom. Ini membantu menciptakan agen AI kolaboratif untuk mencapai tujuan kompleks dengan mudah. Kerangka kerja ini dirancang untuk memungkinkan agen AI mengambil peran, mendelegasikan tugas, dan berbagi tujuan, seperti kru di dunia nyata. Ini adalah beberapa fitur unik CrewAI:

  • Agen Berbasis Peran: Kita dapat mendefinisikan agen dengan peran, tujuan, dan latar belakang tertentu untuk memberikan lebih banyak konteks pada LLM sebelum pembuatan jawaban.
  • Manajemen tugas: Tentukan tugas dengan alat dan tetapkan secara dinamis ke agen.
  • Delegasi antar-agen: Agen dapat mendelegasikan tugas kepada agen lain untuk berkolaborasi secara efektif.

Di bawah ini adalah representasi dari peta pikiran CrewAI.

kruAI

CrewAI terintegrasi secara mulus dengan ekosistem Langchain. Ini berarti kita dapat menggunakan alat Langchain dan integrasi LLM dengan CrewAI. 

Membangun Kru AI yang Kolaboratif

Untuk memahami CrewAI dengan lebih baik, mari bangun agen AI kolaboratif untuk penulisan konten kreatif. Untuk ini, kami akan mendefinisikan agen, alat, dan tugas masing-masing agen. Karena ini adalah tim penulisan konten, kami akan mendefinisikan tiga agen terpisah, seperti analis ide, penulis, dan editor. Setiap agen akan diberi tugas.

Agen analis akan bertanggung jawab untuk menganalisis ide dan menyiapkan cetak biru komprehensif untuk menulis konten. Agen Penulis akan menyiapkan draf artikel, dan terakhir, editor akan bertanggung jawab untuk memformat, mengedit, dan mengoreksi draf tersebut. Seperti yang kita ketahui, CrewAI memungkinkan kita menambah agen dengan alat khusus. Kami akan menambah editor dengan alat untuk menyimpannya ke disk lokal. Tapi untuk mencapai semua hal ini, kita memerlukan LLM. Di sini, kita akan menggunakan model Gemini Google.

Mari kita pelajari codingnya

Seperti halnya proyek Python lainnya, buat lingkungan virtual dan instal dependensinya. Kita memerlukan perpustakaan Crewai dan implementasi Langchain Google GenAI. Anda dapat menggunakan LLM lain, seperti model akses terbuka dari BersamaSkala apa pun, atau model OpenAI.

pip install crewai langchain-google-genai

Langkah selanjutnya adalah mendefinisikan LLM dan Agen kolaboratif kami. Buat file terpisah bernama agen.py untuk mendefinisikan agen.

import os

from crewai import Agent
from langchain.tools import tool
from langchain_google_genai import GoogleGenerativeAI

GOOGLE_API_KEY = "Your Key"
llm = GoogleGenerativeAI(
           model="gemini-pro", 
           google_api_key=GOOGLE_API_KEY
           )

Mari kita definisikan alat penyimpan file.

class FileTools:

    @tool("Write File with content")
    def write_file(data: str):
        """Useful to write a file to a given path with a given content. 
           The input to this tool should be a pipe (|) separated text 
           of length two, representing the full path of the file, 
           including the ./lore/, and the written content you want to write to it.
        """
        try:
            path, content = data.split("|")
            path = path.replace("n", "").replace(" ", "").replace("`", "")
            if not path.startswith("./lore"):
                path = f"./lore/{path}"
            with open(path, "w") as f:
                f.write(content)
            return f"File written to {path}."
        except Exception:
            return "Error with the input format for the tool."

Metode write_file di atas dihiasi dengan fungsi alat Langchain. Karena CrewAI menggunakan Langchain, alat tersebut harus mematuhi konvensi Langchain. Fungsi ini mengharapkan string tunggal dengan dua bagian, jalur file, dan konten yang dipisahkan oleh pipa (|). Metode string doc juga digunakan sebagai konteks tambahan untuk fungsi tersebut. Jadi, pastikan Anda memberikan informasi detail tentang metode tersebut.

Mari kita definisikan agennya

idea_analyst = Agent(
    role = "Idea Analyst",
    goal = "Comprehensively analyse an idea to prepare blueprints for the article to be written",
    backstory="""You are an experienced content analyst, well versed in analyzing 
    an idea and preparing a blueprint for it.""",
    llm = llm,
    verbose=True
)
writer = Agent(
    role = "Fiction Writer",
    goal = "Write compelling fantasy and sci-fi fictions from the ideas given by the analyst",
    backstory="""A renowned fiction-writer with 2 times NYT 
    a best-selling author in the fiction and sci-fi category.""",
    llm=llm,
    verbose=True
)

editor = Agent(
    role= "Content Editor",
    goal = "Edit contents written by writer",
    backstory="""You are an experienced  editor with years of 
    experience in editing books and stories.""",
    llm = llm,
    tools=[FileTools.write_file],
    verbose=True
)

Kami memiliki tiga agen, masing-masing dengan peran, tujuan, dan latar belakang berbeda. Informasi ini digunakan sebagai petunjuk bagi LLM untuk memberikan lebih banyak konteks. Agen editor memiliki alat penulisan yang terkait dengannya.

Hal berikutnya adalah mendefinisikan tugas. Untuk ini, buat file task.py yang berbeda.

from textwrap import dedent


class CreateTasks:

    def expand_idea():
        return dedent(""" Analyse the given task {idea}. Prepare comprehensive pin-points
                for accomplishing the given task.
                Make sure the ideas are to the point, coherent, and compelling.
                Make sure you abide by the rules. Don't use any tools.
                
                RULES:
                - Write ideas in bullet points.
                - Avoid adult ideas.
            """)
    def write():
        return dedent("""Write a compelling story in 1200 words based on the blueprint 
        ideas given by the Idea 
              analyst.
              Make sure the contents are coherent, easily communicable, and captivating.
               Don't use any tools.

              Make sure you abide by the rules.

              RULES:
              - Writing must be grammatically correct.
              - Use as little jargon as possible

              """)
    def edit():
        return dedent("""
    Look for any grammatical mistakes, edit, and format if needed.
    Add title and subtitles to the text when needed.
    Do not shorten the content or add comments.
    Create a suitable filename for the content with the .txt extension.
    You MUST use the tool to save it to the path ./lore/(your title.txt).
            """)

Tugas di sini adalah rencana tindakan terperinci yang Anda harapkan akan dilakukan oleh agen.

Terakhir, buat file main.py tempat kita merakit Agen dan Tugas untuk membuat kru fungsional.

from textwrap import dedent

from crewai import Crew, Task

from agents import editor, idea_analyst, writer
from tasks import CreateTasks


class ContentWritingCrew():
    def __init__(self, idea):
        self.idea = idea
    def __call__(self):
        tasks = self._create_tasks()
        crew = Crew(
            tasks=tasks,
            agents=[idea_analyst, writer, editor],
            verbose=True
            )
        result = crew.kickoff()
        return result

    def _create_tasks(self):
        idea = CreateTasks.expand_idea().format(idea=self.idea)
        expand_idea_task = Task(
            description=idea,
            agent = idea_analyst
        )
        write_task =  Task(
            description=CreateTasks.write(),
            agent=writer
        )
        edit_task = Task(
            description=CreateTasks.edit(),
            agent=editor
        )
        return [expand_idea_task, write_task, edit_task]

if __name__ == "__main__":
    dir = "./lore"
    if not os.path.exists(dir):
        os.mkdir(dir)
    idea = input("idea: ")
    my_crew = ContentWritingCrew(idea=idea)
    result = my_crew()
    print(dedent(result))

Dalam kode di atas, kita mendefinisikan kelas ContentWritingCrew yang menerima string ide dari pengguna. Metode _create_tasks membuat tugas. Metode __call__ menginisialisasi dan memulai kru. Setelah Anda menjalankan skrip, Anda dapat mengamati rangkaian tindakan di terminal atau notebook. Tugas akan dilaksanakan sesuai urutan yang ditentukan oleh kru. Berikut ini cuplikan log eksekusi.

agen terakhir

Ini adalah log eksekusi untuk agen terakhir. yaitu Editor. Ini mengedit draf yang diterima dari agen penulis dan menggunakan alat penulisan file untuk menyimpan file dengan nama file yang sesuai.

Ini adalah alur kerja umum untuk membuat agen AI kolaboratif dengan CrewAI. Anda dapat memasangkan alat Langchain lainnya atau membuat alat khusus dengan perintah efisien untuk menyelesaikan tugas yang lebih kompleks.

Berikut adalah repositori GitHub untuk kode-kode tersebut: sunilkumardash9/ContentWritingAgents.

Replika repositori: Sunil-KumarKu17/CollborativeAIAgent

Kasus Penggunaan di Dunia Nyata

Agen AI otonom dapat memiliki banyak kasus penggunaan. Dari asisten pribadi hingga instruktur virtual. Berikut adalah beberapa kasus penggunaan agen AI.

  • Asisten AI Pribadi: Asisten Pribadi akan segera menjadi bagian integral dari kami. Asisten mirip Jarvis yang memproses semua data Anda memberikan wawasan seiring berjalannya waktu dan menangani tugas-tugas sepele sendiri.
  • Penerjemah kode: Penerjemah kode OpenAI adalah contoh brilian dari agen AI. Penerjemah dapat menjalankan skrip Python apa pun dan menampilkan hasilnya sebagai respons terhadap perintah teks. Ini bisa dibilang agen tersukses hingga saat ini.
  • Instruktur Virtual: Seiring berkembangnya teknologi AI, kita dapat mengharapkan instruktur virtual di berbagai bidang seperti pendidikan, pelatihan, dll.
  • Perangkat Lunak Agen Pertama: Potensi besar kasus penggunaan agen AI adalah dalam pengembangan perangkat lunak yang mengutamakan agen. Daripada menelusuri dan mengklik tombol secara manual untuk menyelesaikan sesuatu, agen AI akan secara otomatis menyelesaikannya berdasarkan perintah suara.
  • Komputasi Spasial: Seiring berkembangnya teknologi AR/VR, agen AI akan memainkan peran penting dalam menjembatani kesenjangan antara dunia maya dan dunia nyata.

Kesimpulan

Kami masih dalam tahap awal pengembangan agen AI. Saat ini, untuk mendapatkan hasil terbaik dari agen AI, kita perlu mengandalkan GPT-4, dan biayanya mahal. Namun seiring dengan model sumber terbuka yang mampu mengejar GPT-4, kita akan mendapatkan opsi yang lebih baik untuk menjalankan agen AI secara efisien dengan biaya yang wajar. Di sisi lain, kerangka pengembangan agen mengalami kemajuan pesat. Seiring kemajuan kita, kerangka kerja ini akan memungkinkan agen untuk melakukan tugas yang lebih kompleks.

 Pengambilan Kunci

  • Agen AI memanfaatkan kapasitas penalaran LLM untuk memilih alat yang tepat untuk menyelesaikan tugas kompleks.
  • CrewAI adalah kerangka kerja sumber terbuka untuk membangun agen AI kolaboratif.
  • Fitur unik CrewAI mencakup Agen berbasis peran, delegasi antar-agen yang otonom, dan manajemen tugas yang fleksibel.
  • CrewAI terintegrasi secara mulus dengan ekosistem Langchain yang ada. Kita dapat menggunakan alat Langchain dan integrasi LLM dengan CrewAI.

Tanya Jawab Umum (FAQ)

Q1. Apa itu agen AI?

A. Agen AI adalah program perangkat lunak yang berinteraksi dengan lingkungannya, membuat keputusan, dan bertindak untuk mencapai tujuan akhir.

Q2. LLM apa yang terbaik untuk digunakan dengan agen AI?

J. Hal ini bergantung pada kasus penggunaan dan anggaran Anda. GPT 4 adalah yang paling mumpuni namun mahal, sedangkan model GPT 3.5, Mixtral, dan Gemini Pro kurang mumpuni namun cepat dan murah.

Q3. Apa itu CrewAI?

A. CrewAI adalah kerangka kerja sumber terbuka untuk mengatur agen AI yang bermain peran dan otonom. Ini membantu menciptakan agen AI kolaboratif untuk mencapai tujuan kompleks dengan mudah.

Q4. Untuk apa CrewAI digunakan?

A. CrewAI menyediakan abstraksi tingkat tinggi untuk membangun agen AI kolaboratif untuk alur kerja yang kompleks.

Q5. Apa perbedaan antara CrewAi dan Autogen?

A. Di Autogen, mengatur interaksi agen memerlukan pemrograman tambahan, yang dapat menjadi rumit dan rumit seiring dengan bertambahnya skala tugas.

Media yang ditampilkan dalam artikel ini bukan milik Analytics Vidhya dan digunakan atas kebijaksanaan Penulis.

Stempel Waktu:

Lebih dari Analisis Vidhya