Integracije
Orodja agenta po meri
Dajte AI-ju neposreden dostop do vaših sistemov: definirajte orodja, ki jih LLM lahko pokliče med ustvarjanjem odgovora, da pridobi status naročila, poišče račune, preveri zalogo in več.
Hitre dejstvice#
| Vrste orodij | SERVER_SIDE (HTTP klic iz HelpStack) ali CLIENT_SIDE (deluje v brskalniku obiskovalca) |
| Upravljanje | Nadzorna plošča + /api/agent-tools (na ravni organizacije), /api/channels/[id]/agent-tools (na ravni kanala) |
| Avtentikacija | Seja nadzorne plošče (konfigurira vaša ekipa) |
| Časovna omejitev za strežniška orodja | ~10s, odgovor omejen na ~10 KB |
| Časovna omejitev za odjemalska orodja | ~5s (krog prek vtičnice) |
| Beleženje | Vsak klic se zabeleži v ToolCallLog |
Za konceptualni pregled glejte Navodila za orodja agenta. Ta stran je tehnična referenca.
Anatomija orodja#
Definicija orodja ima ta polja:
| Polje | Obvezno | Opombe |
|---|---|---|
| Ime | da | Ime funkcije, ki jo LLM pokliče, npr. get_order_status. Mora biti veljaven identifikator funkcije |
| Opis | da | LLM ga prebere, da odloči, kdaj poklicati orodje. Največ ~2000 znakov (prevereno). Bodite natančni |
| URL | da (strežniška stran) | Mora biti HTTPS. Zaščiteno pred SSRF: seznam blokiranih zavrne notranje/zasebne omrežne cilje |
| Metoda | ne | GET | POST | PUT | PATCH. Privzeto POST |
| Glave | ne | Neobvezni objekt JSON. Lahko šifrirano/zamaskirano (uporabite za API ključe/žetone) |
| Shema parametrov | da | Objekt JSON Schema, ki opisuje argumente, ki jih LLM izpolni (parametersSchema) |
| Tip | da | SERVER_SIDE ali CLIENT_SIDE |
| Aktivno | — | Vklopi/izklopi orodje brez brisanja |
Delovni primer — get_order_status (SERVER_SIDE)#
Definicija orodja
| Polje | Vrednost |
|---|---|
| Ime | get_order_status |
| Tip | SERVER_SIDE |
| Metoda | POST |
| URL | https://api.YOURCOMPANY.com/orders/status |
| Glave | { "Authorization": "Bearer YOUR_API_TOKEN" } (shranite kot šifrirano glavo) |
| Opis | Look up the current status and tracking info for a customer order by its order number. Call this whenever the customer asks where their order is, when it will arrive, or to confirm an order was placed. |
Shema parametrov (JSON Schema)
{
"type": "object",
"properties": {
"order_number": {
"type": "string",
"description": "The customer's order number, e.g. ORD-10432"
}
},
"required": ["order_number"]
}
Zahteva, ki jo prejme vaša končna točka
Ob klicu orodja HelpStack pošlje argumente, ki jih je posredoval LLM, kot telo zahteve (za POST/PUT/PATCH), z vašimi konfiguriranimi glavami ter Content-Type: application/json:
POST /orders/status HTTP/1.1
Host: api.YOURCOMPANY.com
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
{ "order_number": "ORD-10432" }
Pogodba o odzivu, ki jo mora spoštovati vaša končna točka
Vrnite JSON, ki ga model lahko prebere. Ohranite ga majhnega — odgovori so omejeni na ~10 KB in klic preteče po ~10s.
{
"status": "shipped",
"carrier": "DHL",
"tracking_number": "JD0140...",
"estimated_delivery": "2026-06-02"
}
AI prejme to koristno obremenitev kot rezultat orodja in jo vpleta v odgovor. Ni zahtevane ovojnice — vrnite katerakoli polja so koristna, vendar jih naredite samorazlagajoča, da jih model pravilno uporabi.
Pisanje dobrih opisov#
Opis je najpomembnejše polje — to je edina stvar, ki jo LLM uporabi za odločitev, ali in kdaj poklicati orodje.
- Navedite kaj orodje vrne in kdaj ga poklicati ("Pokliči, ko stranka vpraša ...").
- Omenite sprožilne fraze, ki jih stranke dejansko uporabljajo.
- Jasno opišite vsak parameter v
descriptionsheme. - Ostanite pod omejitvijo ~2000 znakov (pogovorno okno za shranjevanje to preverja in prikaže napake).
Varnost in zaščita pred SSRF#
- Samo HTTPS. Navadni HTTP URL-ji so zavrnjeni.
- Seznam blokiranih za SSRF. Notranje/zasebne omrežne cilje (povratna zanka, zasebni obsegi RFC1918, lokalna povezava, končne točke metapodatkov) so blokirani, da orodje ne more biti usmerjeno na notranjo infrastrukturo.
- Skrivne glave. Dajte API ključe/žetone v Glave, ki so lahko šifrirane/zamaskirane namesto shranjene v navadnem besedilu.
- Obravnavajte končno točko orodja kot javno dosegljivo — avtenticirajte zahteve (npr. žeton za prenos v Glavah) in preverjajte vhodne vrednosti pri sebi.
Časovne omejitve in omejitveni parametri#
| Strežniška stran | Odjemalska stran | |
|---|---|---|
| Časovna omejitev | ~10s | ~5s |
| Omejitev odgovora | ~10 KB | — |
| Ob napaki/prekoračitvi časa | Zabeleženo; AI obveščen, da orodje ni na voljo, in nadaljuje z najboljšim možnim odgovorom |
Napake se postopno razrešijo — pokvarjeno ali počasno orodje nikoli ne blokira odgovora; AI preprosto nadaljuje brez teh podatkov.
Orodja organizacije vs. kanala in semantično filtriranje#
- Orodja se lahko definirajo na ravni organizacije in na ravni kanala.
- Za dani pogovor se orodja na ravni organizacije in kanala združijo, orodje kanala pa prepiše orodje organizacije z enakim imenom.
- Združeni nabor se semantično filtrira glede na ustreznost poizvedbi stranke, tako da velik katalog orodij ne napiha vsakega klica LLM — ponujena so samo relevantna orodja.
- Izbrana orodja se pretvorijo v definicije funkcij OpenAI/Anthropic in ponudijo med ustvarjanjem odgovora.
Uvoz OpenAPI#
Orodja lahko bootstrapirate iz obstoječega API-ja: prilepite ali naložite specifikacijo OpenAPI 3.0, in HelpStack iz nje izvleče operacije v definicije orodij, ki jih pregledate in shranite. To je najhitrejši način za izpostavitev obstoječega REST API-ja AI-ju.
Beleženje#
Vsak klic orodja se zabeleži v ToolCallLog. Oglejte si zgodovino klicev orodja (argumente, izid, čas) prek:
GET /api/agent-tools/[id]/logs
Uporabite dnevnike za odpravljanje napak, zakaj orodje je ali ni bilo poklicano, in za prepoznavanje prekoračitev časa/napak.
Orodja na strani odjemalca (napredno)#
Orodja CLIENT_SIDE so deklarirana enako (ime, opis, shema parametrov), vendar se izvajajo v brskalniku obiskovalca spletnega mesta, posredovano prek vtičnice widgeta:
- AI odda klic orodja za orodje
CLIENT_SIDE. - Strežnik pošlje
tool:executewidgetu. - Widget ga izvede in odgovori z
tool:result(alitool:error). - Časovna omejitev je ~5s; ob prekoračitvi se klic postopno razreši (orodje ni na voljo).
Danes ni javnega JS API-ja za registracijo upravljalnikov orodij na strani odjemalca v nalagalniku widgeta. Izvajanje na strani odjemalca je posredovano prek strežnika/iframea — obravnavajte ga kot napredno zmogljivost in ne pričakujte odrezka v slogu
registerTool()na vaši strani. Glejte Vgraditev widgeta.