OneLi ב־CrewAI
איך נותנים לסוכן שבנוי ב־CrewAI לבצע שיחות טלפון בעברית דרך OneLi, לעקוב אחרי השיחה, לענות להתייעצויות ולקבל את התוצאה.
ב־CrewAI מעבירים לסוכן MCPServerHTTP דרך הפרמטר mcps, עם כותרת Authorization.
התקנה
- יוצרים מפתח API ב־oneli.io/app/connect ושומרים אותו במשתנה הסביבה
ONELI_API_KEYבשרת. - מתקינים את החבילות:
Terminal
uv add crewai mcp # adapter: uv pip install 'crewai-tools[mcp]'נבדק מול: crewai 1.15.28 · crewai-tools 1.15.28
חיבור דרך MCP (מומלץ)
Python
import os
from crewai import Agent, Task, Crew
from crewai.mcp import MCPServerHTTP
agent = Agent(role="Phone assistant", goal="Place calls with OneLi", backstory="…",
mcps=[MCPServerHTTP(url="https://mcp.oneli.io/mcp",
headers={"Authorization": f"Bearer {os.environ['ONELI_API_KEY']}"},
streamable=True, cache_tools_list=True)])
Crew(agents=[agent], tasks=[Task(description="Call +972… and book a table", expected_output="Call result", agent=agent)]).kickoff()
# Adapter (headers work per source, undocumented); ALWAYS set transport, the default is "sse":
# from crewai_tools import MCPServerAdapter
# with MCPServerAdapter({"url": "https://mcp.oneli.io/mcp", "transport": "streamable-http",
# "headers": {"Authorization": f"Bearer {key}"}}) as tools: Agent(..., tools=tools)שימו לב
- בתיעוד ה־DSL מופיעות כתובות פשוטות עם אימות בפרמטרי שאילתה. כדי לשלוח כותרת משתמשים ב־MCPServerHTTP.
- עם MCPServerAdapter תמיד מגדירים transport, כי ברירת המחדל היא sse.
- סכמות הכלים נשמרות במטמון ל־5 דקות.
- כלי REST: @tool("create_call_task") מ־crewai.tools על פונקציה ששולחת את בקשת ה־POST ומחזירה r.text.
מספרי טלפון: OneLi מקבלת מספר ישראלי בכל פורמט נפוץ (050-1234567, +972501234567). כשהשיחה מתחילה, הסוכן ממשיך עם get_call_events או עם GET /v1/call-tasks/:id/events כדי לעקוב, לענות להתייעצויות ולקבל את הסיכום.
מה הלאה
מקורות: docs.crewai.com/en/mcp/dsl-integration · docs.crewai.com/en/mcp/streamable-http