CrewAI Tutorial: Complete Crash Course for Beginners
π€ CrewAI νλ μμν¬μ μ μμ κ°μΉ
CrewAIλ κ°κΈ° λ€λ₯Έ μ λ¬Έ μ§μκ³Ό μ§μΉ¨μ κ°μ§ μ¬λ¬ AI μμ΄μ νΈλ₯Ό νλμ 'ν¬λ£¨(Crew)'λ‘ κ΅¬μ±νμ¬, 볡μ‘ν λ¬Έμ λ₯Ό ν΄κ²°νλλ‘ λλ νλ μμν¬μ λλ€. μ¬μ©μλ μ£Όμ λΆμ, μ¬ν κ³ν, κ²μ κ°λ° λ± νΌμ μννκΈ°μ μκ°μ΄ μ€λ 걸리λ λκ·λͺ¨ κ³Όμ μ μμ΄μ νΈ κ΅°λ¨μκ² μμν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ£Όμ λΆμ ν¬λ£¨λ λ¨ 7λΆ λ§μ μλ§μ μΈν°λ· 리ν¬νΈμ λΆκΈ°λ³ λ³΄κ³ μλ₯Ό λΆμνμ¬ λ§€μ/λ§€λ κΆκ³ μμ λμΆνλ©°, μ΄λ μΈκ°μ΄ μλμΌλ‘ μμ ν λ μμλλ λͺ μκ°μ νκΈ°μ μΌλ‘ λ¨μΆνλ ν¨μ¨μ±μ 보μ¬μ€λλ€.
βοΈ CrewAIλ₯Ό ꡬμ±νλ 4λ ν΅μ¬ μμ
CrewAIμ μλ μ리λ λ€μ λ€ κ°μ§ ν΅μ¬ κ΅¬μ± μμμ μ κΈ°μ μΈ κ²°ν©μΌλ‘ μ€λͺ λ©λλ€. 첫째, **μμ΄μ νΈ(Agents)**λ νΉμ μ§λ¬΄λ₯Ό μννλ μ§μ(μ: μ°κ΅¬μ, μκ°)κ³Ό κ°μΌλ©° κ°κ° μν , λͺ©ν, λ°°κ²½ μ΄μΌκΈ°λ₯Ό κ°μ§λλ€. λμ§Έ, **λꡬ(Tools)**λ μμ΄μ νΈκ° κ²μμ΄λ κ³μ° λ±μ μμ μ μννκΈ° μν΄ μ¬μ©νλ μλ¨μ λλ€. μ μ§Έ, **μμ (Tasks)**μ μμ΄μ νΈκ° μλ£ν΄μΌ ν ꡬ체μ μΈ κ³Όμ μ μμμ΄λ©°, λ·μ§Έ, **νλ‘μΈμ€(Process)**λ μμ΄μ νΈλ€μ΄ νλ ₯νλ λ°©μ(νμ¬λ μ£Όλ‘ μμ°¨μ λ°©μ)μ κ΄λ¦¬ν©λλ€. μμ΄μ νΈλ€μ μ€μ€λ‘ μ΄λ€ λꡬλ₯Ό μ¬μ©ν μ§ κ²°μ νλ©°, ν μμ΄μ νΈμ μμ κ²°κ³Όκ° λ€μ μμ΄μ νΈλ‘ μ λ¬λλ κ³Όμ μ ν΅ν΄ 볡μ‘ν λ¬Έμ λ₯Ό νμ΄λκ°λλ€.
βοΈ μ€μ νλ‘μ νΈ: μ¬ν κ³ν ν¬λ£¨ μ€κ³
ν¨κ³Όμ μΈ ν¬λ£¨λ₯Ό ꡬμΆνκΈ° μν΄μλ λͺ©νλ‘λΆν° μμ°νμ¬ νμν 'μ§μ'μ κ³ μ©νλ λΉμ¦λμ€μ μ¬κ³ κ° νμν©λλ€. λ³Έ νλ‘μ νΈμμλ 'μμ°κ³Ό μμ μ λ³΄κ° ν¬ν¨λ 7μΌκ°μ μμΈ μ¬ν μΌμ ν μ μ'μ μ΅μ’ λͺ©νλ‘ μ€μ ν©λλ€. μ΄λ₯Ό μν΄ μ 체λ₯Ό μ΄κ΄νλ μ λ¬Έ μ¬ν μλ΄μ¬(Captain), μ΅μ μ λ°©λ¬Έμ§λ₯Ό μ μ νλ λμ μ ν μ λ¬Έκ°, κ·Έλ¦¬κ³ κ° λμμ μΈλΆ νλμ κΈ°ννλ νμ§ κ°μ΄λλΌλ μΈ λͺ μ μμ΄μ νΈλ‘ κ³μΈ΅ ꡬ쑰λ₯Ό μ€κ³ν©λλ€. μ΄λ¬ν νν₯μ(Top-down) ꡬ쑰λ μμ΄μ νΈ κ°μ λͺ νν μν΅κ³Ό ν¨μ¨μ μΈ μν λΆλ΄μ κ°λ₯νκ² ν©λλ€.
π» κ°λ° νκ²½ κ΅¬μΆ λ° μ΄κΈ° μ€μ
μ€μ ꡬνμ μν΄ Python νκ²½κ³Ό μμ‘΄μ± κ΄λ¦¬ λκ΅¬μΈ Poetryλ₯Ό μ¬μ©ν©λλ€. pyproject.toml νμΌμ ν΅ν΄ CrewAI, LangChain, κ·Έλ¦¬κ³ λ μ¨ μ 보 API(Pydantic λ±)μ κ°μ νμ ν¨ν€μ§λ₯Ό μ μνκ³ μ€μΉν©λλ€. κ°λ°μλ μμ€ μ½λλ₯Ό 체κ³μ μΌλ‘ κ΄λ¦¬νκΈ° μν΄ μμ΄μ νΈ, λꡬ, μμ μ κ°κ°μ νμΌ(agents.py, tasks.py λ±)λ‘ λΆλ¦¬νμ¬ κ΅¬μ±νλ©°, μ΅μ’ μ μΌλ‘ main.pyμμ μ΄ λͺ¨λ μμλ€μ κ²°ν©νμ¬ ν¬λ£¨λ₯Ό μ€νν©λλ€. μ΄ κ³Όμ μ λ¨μν μ½λλ₯Ό μμ±νλ κ²μ΄ μλλΌ, AI μμ΄μ νΈλ€μ΄ μ€λ₯ μμ΄ μλν μ μλλ‘ μ κ΅ν 'λμ§νΈ μμ 곡κ°'μ λ§λλ κ³Όμ μ λλ€.