בית chevron_left מדריכים chevron_left סוכני AI
smart_toy
AI Agents Agentic AI מתקדמים

בניית סוכני AI אוטונומיים

מהתיאוריה לייצור: בנה Agents שמתכננים, מחליטים ומבצעים משימות מורכבות 24/7 ללא פיקוח אנושי.

schedule28 דקות קריאה updateעודכן פברואר 2025

מה זה AI Agent?

Agent הוא מערכת AI שיכולה לתכנן, לפעול ולהסתגל בצורה אוטונומית. בניגוד ל-Chatbot פשוט שרק עונה על שאלות, Agent:

psychology

מחשב ומתכנן

מפרק משימות מורכבות לצעדים קטנים ומחליט על הסדר הנכון

build

משתמש בכלים

גישה לאינטרנט, APIs, קוד, קבצים ומסדי נתונים

loop

רץ בלולאה

בודק תוצאות ביניים ומתאים את הצעדים הבאים בהתאם

memory

זוכר הקשר

שומר מידע בין sessions ולומד מניסיון עבר

ReAct Pattern — הלב של כל Agent

המודל הנפוץ ביותר לסוכנים הוא ReAct (Reason + Act) שרץ בלולאה עד למצב סופי:

Thought: מה עלי לעשות כדי לפתור את הבעיה?
Action: קריאה לכלי מסוים עם פרמטרים
Observation: תוצאת הכלי / תגובת הסביבה
האם הגעתי לתשובה? → אם לא: חזור לשלב 1

סוגי Agents

Tool-Use Agent

סוכן כלים

הסוג הנפוץ ביותר. LLM מחליט מתי לקרוא לאיזה כלי. מתאים ל-90% מהשימושים: חיפוש, עיבוד נתונים, שליחת הודעות.

⚡ השתמש כאן: LangChain AgentExecutor, OpenAI Function Calling

Plan-and-Execute

סוכן תכנון

קודם מתכנן את כל הצעדים, אחר כך מבצע. יעיל יותר למשימות ארוכות ומורכבות. פחות גמיש לשינויים בזמן הריצה.

⚡ השתמש כאן: LangChain Plan-and-Execute, AutoGPT

Multi-Agent

מערכת סוכנים

מספר Agents מתמחים עובדים ביחד. Agent מתאם מחלק עבודה לסוכנים ייעודיים. הכי עוצמתי — גם הכי מורכב.

⚡ השתמש כאן: LangGraph, AutoGen, CrewAI

בניית Agent ראשון עם LangGraph

LangGraph הוא ה-Framework המומלץ לבניית Agents מורכבים ב-2025. הוא מאפשר שליטה מלאה בזרימה:

pip install langgraph langchain-openai
from langgraph.graph import StateGraph, END from langchain_openai import ChatOpenAI from langchain_core.tools import tool from typing import TypedDict, Annotated import operator # הגדרת State class AgentState(TypedDict): messages: Annotated[list, operator.add] task: str result: str # הגדרת כלים @tool def search_web(query: str) -> str: """חפש מידע באינטרנט""" # כאן היית מחבר DuckDuckGo או SerpAPI return f"תוצאות חיפוש עבור: {query}" @tool def write_file(filename: str, content: str) -> str: """כתוב תוכן לקובץ""" with open(filename, 'w', encoding='utf-8') as f: f.write(content) return f"נכתב ל-{filename}" llm = ChatOpenAI(model="gpt-4o", temperature=0) tools = [search_web, write_file] llm_with_tools = llm.bind_tools(tools) # Node: הסוכן מחליט מה לעשות def agent_node(state: AgentState): response = llm_with_tools.invoke(state["messages"]) return {"messages": [response]} # Node: ביצוע הכלי שנבחר def tool_node(state: AgentState): last_message = state["messages"][-1] results = [] for tool_call in last_message.tool_calls: tool_fn = {"search_web": search_web, "write_file": write_file} result = tool_fn[tool_call["name"]].invoke(tool_call["args"]) results.append({"role": "tool", "content": result}) return {"messages": results} # תנאי: המשך או סיים? def should_continue(state): last = state["messages"][-1] if hasattr(last, 'tool_calls') and last.tool_calls: return "tools" return END # בניית ה-Graph graph = StateGraph(AgentState) graph.add_node("agent", agent_node) graph.add_node("tools", tool_node) graph.set_entry_point("agent") graph.add_conditional_edges("agent", should_continue) graph.add_edge("tools", "agent") app = graph.compile() # הרצה result = app.invoke({ "messages": [{"role": "user", "content": "חפש מידע על טרנדים ב-AI 2025 וכתוב סיכום לקובץ summary.txt"}], "task": "research", "result": "" })

זיכרון ארוך טווח לסוכנים

Agent שרץ לאורך זמן זקוק לזיכרון מחוץ ל-Context Window. הפתרון: שמירה ב-Vector Store:

from langchain_community.vectorstores import Chroma from langchain_openai import OpenAIEmbeddings from datetime import datetime class AgentMemory: def __init__(self): self.embeddings = OpenAIEmbeddings() self.store = Chroma( collection_name="agent_memory", embedding_function=self.embeddings ) def save(self, content: str, metadata: dict = {}): """שמור זיכרון חדש""" metadata["timestamp"] = datetime.now().isoformat() self.store.add_texts([content], metadatas=[metadata]) def recall(self, query: str, k: int = 5) -> list: """שלוף זיכרונות רלוונטיים""" docs = self.store.similarity_search(query, k=k) return [d.page_content for d in docs] # שימוש memory = AgentMemory() memory.save("הלקוח יעל מעדיפה תקשורת קצרה וישירה") memory.save("פרויקט X נעצר בגלל בעיות תקציב בנובמבר 2024") # לפני כל שיחה: שלוף הקשר רלוונטי context = memory.recall("יעל - עדכון סטטוס") # ["הלקוח יעל מעדיפה תקשורת קצרה..."

מערכת Multi-Agent עם CrewAI

CrewAI מפשטת יצירת צוותי Agents שעובדים ביחד:

pip install crewai
from crewai import Agent, Task, Crew, Process # הגדרת Agents מתמחים researcher = Agent( role="חוקר שוק", goal="אסוף מידע מקיף על נושא נתון", backstory="אנליסט שוק עם 10 שנות ניסיון בTech", tools=[search_tool], verbose=True ) writer = Agent( role="כותב תוכן", goal="כתוב דוחות מקצועיים וקריאים", backstory="עיתונאי טכנולוגי עם הבנה עמוקה ב-AI", verbose=True ) # הגדרת משימות research_task = Task( description="חקור את הטרנדים המובילים ב-AI ב-2025", agent=researcher, expected_output="רשימה של 10 טרנדים עם הסבר" ) write_task = Task( description="כתוב מאמר 800 מילה על הממצאים", agent=writer, expected_output="מאמר מוכן לפרסום בעברית" ) # הרצת הצוות crew = Crew( agents=[researcher, writer], tasks=[research_task, write_task], process=Process.sequential # או hierarchical ) result = crew.kickoff()

טיפים קריטיים לייצור

warning

⚠️ הגדר תמיד Timeout ו-Max Iterations

Agent ללא גבולות יכול לרוץ לאינסוף ולצבור עלויות API גבוהות. הוסף תמיד: max_iterations=10 ו-timeout.

Human-in-the-Loop

לפעולות בלתי הפיכות (מחיקה, שליחת אימייל לאלף אנשים), הוסף checkpoint לאישור אנושי לפני הביצוע.

Logging מלא

שמור כל Thought, Action ו-Observation. קריטי לדיבוג ולהבנה מה קרה כשהAgent עושה החלטות לא צפויות.

Sandbox לכלים מסוכנים

הרץ קוד שנוצר ע"י AI ב-Docker Container מבודד. אף פעם אל תרוץ קוד שנוצר ע"י LLM ישירות בסביבת הייצור.

מוכן לבנות Agent אמיתי?

ראה את הקורס המלא שלנו שכולל בניית Agent לחיפוש ומחקר שוק, Agent לניהול סושיאל מדיה ועוד.

school לקורסים שלנו

מדריכים נוספים