IngiaAnza kipindi cha majaribio bila malipo
Meta Tech Provider

Weka agent ya OpenAI Agents SDK kwenye WhatsApp

Weka webhook ya nambari yako ielekeze kwenye route ya programu yako ya Python. Kwa kila ujumbe unaoingia, endesha agent kwa Runner.run ukitumia kikao chenye kitambulisho cha nambari ya mtumaji, kisha tuma result.final_output kupitia Cloud API kwa token na phone number id ya nambari hiyo. Programu ya WhatsApp Business inaendelea kufanya kazi kwenye nambari ileile.

SQLiteSession

Kikao kilichojengwa ndani ya SDK, kinachotumia faili au kumbukumbu ya muda, na kinakumbuka mazungumzo ya awali chini ya kitambulisho cha kikao.

params["auth"]

MCPServerStreamableHttp inakubali httpx.Auth hapa, au kichwa cha Authorization, kwa uthibitishaji wa server.

v25.0

Toleo la Graph API linalotumika kwenye mifano ya sasa ya Meta ya kutuma ujumbe.

Ujumbe wa WhatsApp unakuwaje uendeshaji wa agent?

Kupitia route kwenye programu yako mwenyewe ambayo Meta inaipigia. Weka webhook ya nambari ielekeze kwake, na siri ndefu ya nasibu kwenye njia ya URL. Route hujibu ombi la uthibitishaji la GET la Meta kwa kurudisha hub.challenge kama maandishi matupu, hukubali kila POST, hujibu 200 mara moja na kuweka kazi kwenye foleni, kwa sababu Meta hurudia majibu ya polepole na ungeendesha agent mara mbili.

Kisha worker husoma mtumaji na maandishi kutoka kwenye payload na kuita Runner.run. Pitisha kikao chenye kitambulisho cha nambari ya mtumaji: SDK huhifadhi mazungumzo chini ya kitambulisho hicho, hivyo ujumbe unaofuata wa mteja yuleyule unaendelea pale uliposimama, na wateja wawili hawashiriki historia kamwe. SQLiteSession inatosha kuanzia; SDK pia ina vikao vya Redis na SQLAlchemy kwa worker nyingi.

Siri iliyo kwenye URL ndiyo uthibitishaji hapa. Meta husaini jumbe kwa siri ya programu ya Tech Provider, kwa hiyo mteja hawezi kuthibitisha kichwa cha sahihi.

Worker: run the agent for one message and send the answer
import os, httpx
from agents import Agent, Runner, SQLiteSession

agent = Agent(name="Front desk", instructions="Answer briefly and politely.")
URL = f"https://graph.facebook.com/v25.0/{os.environ['PHONE_NUMBER_ID']}/messages"

async def handle(sender: str, text: str) -> None:
    session = SQLiteSession(sender, "whatsapp.db")
    result = await Runner.run(agent, text, session=session)
    async with httpx.AsyncClient() as http:
        await http.post(
            URL,
            headers={"Authorization": f"Bearer {os.environ['WA_TOKEN']}"},
            json={"messaging_product": "whatsapp", "to": sender,
                  "type": "text", "text": {"body": result.final_output}},
        )

Kwa nini msimbo wako utume jibu, si agent?

Kwa sababu kanuni moja isiyopaswa kuvunjwa ni ya muda, na msimbo huitekeleza vizuri kuliko prompt. Meta hufungua dirisha la huduma kwa wateja la saa 24 mteja anapoandika. Ndani yake, maandishi huru hupita. Nje yake, ni template iliyoidhinishwa pekee inayopita, na maandishi huru hurudi na hitilafu 131047.

Worker inayojibu ujumbe ambao umefika punde iko ndani ya dirisha daima, kwa hiyo kutuma result.final_output kama maandishi ni salama kwa muundo wenyewe. Kazi inayofanyika baadaye, kama ufuatiliaji wa asubuhi inayofuata au ukumbusho, inapaswa kupitia njia tofauti inayotuma template na kamwe maandishi huru.

Agent bado inaweza kuwa na tools. Ipe function tools za kutafuta taarifa, kama oda au miadi, na ubaki na utumaji wa WhatsApp kwenye worker. Hilo pia linaweka token ya ufikiaji mbali na chochote ambacho modeli inaweza kuita kwa hoja zozote.

Je, agent inaweza kutumia server ya MCP ya EasyCoexistence?

Inaweza, kupitia MCPServerStreamableHttp, lakini kwa usanidi zaidi ya kichwa kimoja. SDK inakubali kichwa cha Authorization au httpx.Auth kwenye params["auth"]. Server ya MCP ya EasyCoexistence hutoa token zake za OAuth baada ya kuingia kupitia kivinjari, kwa dynamic client registration na PKCE, kwa hiyo funguo isiyobadilika haipo. MCP Python SDK ina OAuthClientProvider, kidhibiti cha HTTP auth kinachoendesha mchakato huo kwa PKCE na kusasisha token, na ndicho kinachowekwa kwenye params["auth"].

Inafaa agent inapopaswa kuamua yenyewe: kukagua afya ya nambari, kusoma hali ya template, au kuchagua kati ya send_message na send_template kwa kutumia kanuni zilizo kwenye maelezo ya tools. Kwa dawati la mapokezi linalojibu tu, worker ya hapo juu ni fupi zaidi na ina mambo machache ya kuharibika.

Vyovyote vile, webhook inabaki. MCP ni ombi na jibu, na ujumbe wa mteja unaweza kufika kwa agent kupitia route ambayo Meta inaipigia pekee.

Makosa ya kawaida

  • Kuendesha agent kabla ya kurudisha 200 kwa Meta. Jibu la polepole hurudiwa, na mteja anapata majibu mawili.
  • Kutumia kikao kimoja kwa kila mteja. Kitambulishe kwa nambari ya mtumaji, la sivyo historia huchanganyika.
  • Kuacha ufuatiliaji uliochelewa utume maandishi huru. Baada ya saa 24 hushindwa na hitilafu 131047; tuma template badala yake.
Kufanya hili ukitumia EasyCoexistence

Unganisha nambari yako kwenye easycoexistence.com, weka webhook ielekeze kwenye route yako, na usome token na phone number id kutoka dashboard. Kuanzia US$ 9 kwa kila nambari iliyounganishwa kwa mwezi, hadi US$ 1 kadiri nambari zinavyoongezwa, na kipindi cha majaribio bila malipo cha siku 3.

Maswali yanayoulizwa mara kwa mara

Je, hii inahitaji tool ya MCP inayohifadhiwa na OpenAI Responses API?

Hapana. Worker huendesha agent kwenye server yako kwa Runner.run, na upande wa WhatsApp ni simu ya kawaida ya HTTPS ambayo msimbo wako unapiga.

Nitumie toleo gani la Graph API?

Mifano ya sasa ya Meta inatumia v25.0. Weka toleo mahali pamoja kwenye msimbo wako ili kupandisha toleo iwe badiliko la mstari mmoja.

Je, mtu anaweza kuchukua mazungumzo kutoka kwenye simu?

Ndiyo. Coexistence huweka programu ya WhatsApp Business ikifanya kazi, na jibu la kwenye simu hufika kwenye route yako kama tukio la echo ambalo worker inaweza kulitumia kusimamisha agent.

Je, EasyCoexistence huhifadhi mazungumzo?

Hapana. Meta hupeleka moja kwa moja kwenye route yako. Chochote ambacho kikao kinahifadhi kiko kwenye hifadhidata yako mwenyewe.

Endelea kusoma

Uko tayari kuanza?

Sanidi WhatsApp Coexistence kwa dakika chache, si miezi. Programu inaendelea kufanya kazi kwenye simu.

Anza kipindi cha majaribio bila malipo

Imethibitishwa kwenye

OpenAI Agents SDK kwenye WhatsApp, Cloud API