שילוב OpenAI Agents SDK: העברות, מעקות בטיחות, מעקב

תיאום ידני בין מחלקות וחוסר שקיפות בפעולות סוכני AI מאטים את קליטת הלקוחות ויוצרים סיכוני דליפת מידע. אנו בונים מערכות מרובות סוכנים על OpenAI Agents SDK, מאוטמים ניתוב בקשות ומיישמים guardrails. הצוות שלנו מספק את הפרויקט במפתח מלא—מביקורת ועד תמיכה שוטפת—ומבטיח פתרון אמין שגדל עם העסק שלך.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

הטמעת לקוח B2B חדש בשירות SaaS אורכת שבועיים. היא דורשת תיאום בין שלוש מחלקות: הטמעה, אינטגרציה ותמיכה. בעיות אופייניות: ניתוב ידני של פניות, דליפת מידע אישי דרך המודל, וחוסר שקיפות בקבלת החלטות. אוטמטנו תהליך זה באמצעות מערכת מרובת סוכנים המבוססת על OpenAI Agents SDK (להלן SDK) — חבילת Python רשמית מ-OpenAI לבניית סוכני AI. תוצאה: הזמן עד לאינטגרציה הראשונה ירד מ-14 ל-3 ימים, פניות התמיכה ירדו ב-54%, ועלויות התפעול ב-40%.

הפתרון מבוסס על האבסטרקציות Agent, Runner, Handoffs, Guardrails וניטור מובנה. ה-SDK מחליף קריאות ישירות ל-Assistants API בממשק טיפוסי, מה שמפשט את התחזוקה והבדיקות. הניסיון שלנו: 5 שנים בפיתוח AI/ML, למעלה מ-20 פרויקטים על OpenAI API. אנו מיישמים פתרונות turnkey עם זמן תגובה מובטח של סוכן של p99 < 2 שניות. קבלו ייעוץ — המהנדס שלנו יעריך את התרחיש שלכם.

כיצד OpenAI Agents SDK פותר בעיות במערכות מרובות סוכנים?

ללא ה-SDK, מפתחים נתקלים בשלושה אתגרים עיקריים:

  • כאוס עם סוכנים מרובים: ניתוב ידני של פניות והעברת קונטקסט.
  • דליפת PII: המודל עלול לחשוף מספרי כרטיסים או פרטי דרכון ללא פילטרים נוספים.
  • חוסר שקיפות: בלתי אפשרי להבין מדוע סוכן קיבל החלטה.

ה-SDK פותר这些问题 עם העברות אוטומטיות (handoffs), guardrails מובנים, וניטור OpenTelemetry. מערכת מרובת סוכנים על Agents SDK מעבדת בקשות פי 3 מהר יותר מסוכן מונוליטי (בהתבסס על benchmark שלנו של 1000 בקשות). חיסכון בקריאות API: עד $30k בשנה בעומס של 10k בקשות ליום.

למה Handoffs חשובים לסקייל?

Handoffs מאפשרים האצלת משימות לסוכנים מתמחים תוך שמירה על קונטקסט השיחה. זה קריטי למערכות production בעומס גבוה: סוכן triage על מודל קל (gpt-4o-mini) מנתב פניות, בעוד סוכנים מורכבים (gpt-4o) מטפלים רק בתחום שלהם. ללא handoffs, כל סוכן חייב לדעת לעשות הכל, מה שמוביל לעלייה ב-latency ובעלויות. בפרויקט שלנו, ארכיטקטורת ה-handoffs הפחיתה את ה-p99 latency ב-40%.

דוגמאות ליישום סוכנים

ה-SDK מותקן עם pip install openai-agents. תיעוד מלא נמצא ב-מאגר הרשמי.

סוכן בסיסי עם כלים

import asyncio
from openai import AsyncOpenAI
from agents import Agent, Runner, function_tool, RunConfig
from agents.models.openai_responses import OpenAIResponsesModel

client = AsyncOpenAI()

@function_tool
def get_weather(city: str, unit: str = "celsius") -> str:
    """Получить текущую погоду в городе.

    Args:
        city: Название города
        unit: Единица температуры (celsius/fahrenheit)
    """
    data = weather_api.get(city=city, unit=unit)
    return f"Погода в {city}: {data['temp']}°, {data['description']}"

@function_tool
def create_calendar_event(
    title: str,
    date: str,
    duration_minutes: int,
    attendees: list[str],
) -> str:
    """Создать событие в корпоративном календаре."""
    event = calendar_api.create(
        title=title,
        date=date,
        duration=duration_minutes,
        attendees=attendees,
    )
    return f"Событие создано: {event['id']}, ссылка: {event['meet_link']}"

assistant = Agent(
    name="Corporate Assistant",
    instructions="""Ты — корпоративный ассистент. Помогай сотрудникам планировать встречи, находить информацию, решать задачи. При необходимости — используй инструменты.""",
    model="gpt-4o",
    tools=[get_weather, create_calendar_event],
)

async def main():
    result = await Runner.run(
        assistant,
        input="Запланируй встречу с командой на завтра в 14:00 на 1 час",
    )
    print(result.final_output)

asyncio.run(main())

Handoffs: העברה בין סוכנים מתמחים

from agents import Agent, handoff, Runner

triage_agent = Agent(
    name="Triage",
    instructions="""Классифицируй запрос и передай соответствующему агенту.
Billing → billing_agent
Technical → tech_agent
General → general_agent""",
    model="gpt-4o-mini",
)

billing_agent = Agent(
    name="Billing Support",
    instructions="Помогай с вопросами выставления счётов, платежами, подписками.",
    model="gpt-4o",
    tools=[get_invoice, process_refund, update_payment_method],
)

tech_agent = Agent(
    name="Technical Support",
    instructions="Решай технические проблемы: API, интеграции, ошибки.",
    model="gpt-4o",
    tools=[check_api_status, get_error_logs, create_bug_report],
)

general_agent = Agent(
    name="General Support",
    instructions="Отвечай на общие вопросы о продукте.",
    model="gpt-4o-mini",
    tools=[search_docs],
)

triage_agent.handoffs = [
    handoff(billing_agent, tool_name_override="transfer_to_billing"),
    handoff(tech_agent, tool_name_override="transfer_to_technical"),
    handoff(general_agent, tool_name_override="transfer_to_general"),
]

result = await Runner.run(
    triage_agent,
    input="Я получил двойное списание за прошлый месяц",
)

אילו סיכונים Guardrails ממתנים?

Guardrails מגנים מפני דליפת PII, תגובות רעילות, וניצול לרעה של המודל. InputGuardrails חוסמים בקשות עם מידע רגיש לפני עיבוד; OutputGuardrails מסננים תגובות לפני שליחה למשתמש. בפיננסים ובריאות, זו דרישה מחייבת. ללא guardrails, המודל עלול לחשוף בטעות נתוני לקוחות — אירוע אחד כזה יכול לגרור קנסות של עד 4% מהמחזור.

Guardrails: פילטרי קלט ופלט

from agents import Agent, InputGuardrail, OutputGuardrail, GuardrailFunctionOutput

async def pii_detection_guardrail(ctx, agent, input) -> GuardrailFunctionOutput:
    pii_check_agent = Agent(
        name="PII Checker",
        instructions="Проверь, содержит ли текст персональные данные (номера карт, паспортов, СНИЛС).",
        model="gpt-4o-mini",
        output_type={"contains_pii": bool, "pii_types": list[str]},
    )
    result = await Runner.run(pii_check_agent, input=input)
    contains_pii = result.final_output.get("contains_pii", False)
    return GuardrailFunctionOutput(
        output_info=result.final_output,
        tripwire_triggered=contains_pii,
    )

async def content_safety_guardrail(ctx, agent, output) -> GuardrailFunctionOutput:
    violations = await compliance_checker.check(output)
    return GuardrailFunctionOutput(
        output_info=violations,
        tripwire_triggered=len(violations) > 0,
    )

safe_agent = Agent(
    name="Safe Assistant",
    instructions="Отвечай на вопросы о финансовых продуктах.",
    model="gpt-4o",
    input_guardrails=[InputGuardrail(guardrail_function=pii_detection_guardrail)],
    output_guardrails=[OutputGuardrail(guardrail_function=content_safety_guardrail)],
)

פלט מובנה עם טיפוסים

from pydantic import BaseModel
from typing import Literal

class CustomerAnalysis(BaseModel):
    customer_id: str
    churn_risk: Literal["low", "medium", "high"]
    churn_probability: float
    key_risk_factors: list[str]
    recommended_actions: list[str]
    priority_contact: bool

analysis_agent = Agent(
    name="Churn Analyst",
    instructions="""Анализируй данные клиента и оцени риск оттока. Учитывай: активность за последние 30 дней, NPS, количество обращений в поддержку, использование функций продукта.""",
    model="gpt-4o",
    tools=[get_customer_activity, get_support_history, get_product_usage],
    output_type=CustomerAnalysis,
)

result = await Runner.run(
    analysis_agent,
    input=f"Проанализируй клиента ID: {customer_id}",
)

analysis: CustomerAnalysis = result.final_output
print(f"Риск оттока: {analysis.churn_risk} ({analysis.churn_probability:.0%})")

מה מספק ניטור סוכנים (Tracing)?

Tracing הוא הדרך היחידה לנפות באגים בתרחישים מרובי סוכנים. ה-SDK מתעד כל קריאה, handoff ו-guardrail, כולל latency ו-tokens. אינטגרציית OpenTelemetry שולחת נתונים ל-Jaeger, Grafana או New Relic. ללא tracing, לא תראו היכן התרחש עיכוב או איזה סוכן גרם לשגיאה.

ניטור ומעקב

from agents.tracing import set_tracing_provider
from agents.tracing.opentelemetry import OpenTelemetryTracingProvider
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter

otlp_exporter = OTLPSpanExporter(endpoint="http://jaeger:4318/v1/traces")
set_tracing_provider(OpenTelemetryTracingProvider(exporter=otlp_exporter))

from agents import trace

async def run_with_trace():
    with trace("customer_support_session"):
        result = await Runner.run(
            triage_agent,
            input="Проблема с подключением к API",
            run_config=RunConfig(
                trace_include_sensitive_data=False,
                workflow_name="customer_support",
            ),
        )
        return result

מקרה מעשי: אוטומציה של הטמעת B2B

לקוח: שירות B2B גדול עם למעלה מ-2000 לקוחות. הטמעה אופיינית ארכה שבועיים ודרשה תיאום של 3 מחלקות: מכירות, אינטגרציה ותמיכה.

ארכיטקטורה:

  • מתאם הטמעה (triage): מקבל בקשה, מנתב
  • סוכן הגדרת חשבון: הגדרת חשבון, תפקידים, SSO
  • סוכן אינטגרציה: סיוע באינטגרציית API, יצירת דוגמאות קוד
  • סוכן הדרכה: תוכן הדרכה מותאם אישית
  • סוכן הצלחה: מעקב, ניטור מדדי אימוץ

שרשרת handoff: מתאם → הגדרת חשבון → אינטגרציה → הדרכה → הצלחה. תוצאות:

מדד לפני אחרי שיפור
זמן עד לערך (Time-to-value) 14 ימים 3 ימים -78%
פניות תמיכה (30 הימים הראשונים) 1200 552 -54%
שיעור הפעלה ב-30 יום 61% 84% +23 נקודות אחוז
מדד מעורבות 6.2/10 8.1/10 +31%

חיסכון בעלויות תמיכה: כ-$30k בשנה.

תהליך היישום ולוח זמנים

שלבי יישום

שלב משך תוצאה
אנליטיקה ועיצוב ארכיטקטורה יומיים תרשים סוכנים, הרשאות
הקמת סוכנים בסיסיים עם כלים 3 ימים אב טיפוס עובד
יישום handoffs ו-guardrails 5 ימים ניתוב בטוח
ניטור ומעקב 3 ימים לוחות מחוונים: latency p99, שגיאות
פריסה ל-production 3 ימים CI/CD, בדיקות אוטומטיות

לוח זמנים כולל: בין 2 ל-4 שבועות בהתאם למורכבות.

לוח זמנים לפי רכיב

  • סוכן בסיסי עם כלים: 2–4 ימים
  • ארכיטקטורת handoff עם 3–5 סוכנים: 1–2 שבועות
  • Guardrails ובדיקות בטיחות: 3–5 ימים
  • ניטור ומעקב: 3–5 ימים
  • פריסה ל-production: שבוע

העלות מחושבת בנפרד לכל פרויקט.

טעויות עיצוב נפוצות

  • שימוש באותו מודל לכל הסוכנים: triage צריך להיות זול (gpt-4o-mini), משימות מורכבות על gpt-4o.
  • חוסר ב-output guardrails: PII עלול לדלוף לתגובות. תמיד הוסיפו OutputGuardrail.
  • הוראות ארוכות מדי: המודל מאבד פוקוס. חלקו סוכנים לפי התמחות.
  • התעלמות מ-tracing: בלתי אפשרי לנפות באגים בתרחישים מרובי סוכנים בלעדיו.

מה כלול בעבודה

  • תיעוד ארכיטקטורת סוכנים (מפות סוכנים, דיאגרמות handoff)
  • ניטור מוגדר (OpenTelemetry / OpenAI tracing)
  • Guardrails מוכנים (PII, בטיחות תוכן, בדיקות מותאמות אישית)
  • הדרכת צוות הלקוח (סדנה של יום אחד)
  • שבועיים של תמיכה לאחר הפריסה

הבטחות ותמיכה

אנו מבטיחים SLA לתגובת סוכן של p99 < 2 שניות. מהנדסי OpenAI מוסמכים. ניסיון יישום בפיננסים ובריאות. צרו קשר כדי להעריך את התרחיש שלכם — קבלו ייעוץ על ארכיטקטורת סוכנים.