AI Agent-API
En AI Agent er hjernen bag din bot: dens instruktioner, personlighed, sprog, viden og værktøjer. Du bygger en Agent én gang og dirigerer derefter trafikken hen til den. Denne guide dækker alt, hvad du kan gøre med en Agent via API’et — oprette den, konfigurere den, give den viden og værktøjer, gennemse dens kladder og dirigere samtaler til den.
- Base URL —
https://api.youraiconnector.com/v1 - Autentificering — din API-nøgle (se Autentificering)
- Fejl & paginering — se Fejl & Paginering
Alle eksempler herunder viser ?apiKey= forespørgselsformen i cURL og X-API-Key headeren i JavaScript og Python — begge virker på alle slutpunkter.
Hvis du er ny i forhold til konceptet Agents, så læs AI Agents først.
Hvordan en Agent er sammensat
Fire ting administreres separat, og det er nyttigt at vide, hvad der er hvad, før du starter:
| Del | Hvad det er | Hvor du indstiller det |
|---|---|---|
| Konfiguration | Instruktioner, regler, mål, personlighed, sprog, AI-niveau, booking- og opfølgningsadfærd | PUT /agents/{agentId} eller den mere specifikke PUT /agents/{agentId}/bot-config |
| Viden | Ofte stillede spørgsmål (FAQ) og videnskilder (sider og dokumenter, som platformen har læst for dig) | FAQs API og POST /agents/{agentId}/kb-sources |
| Værktøjer | Brugerdefinerede funktioner og MCP-servere, som Agenten kan kalde midt i en samtale | POST /agents/{agentId}/custom-functions og POST /agents/{agentId}/mcp-servers |
| Routing | Hvilke kanaler og samtaler der rent faktisk når denne Agent | Indgangspunkter — PUT /entry-points/channel-defaults og POST /agents/{agentId}/entry-points |
En ny Agent svarer ikke nogen, før du dirigerer trafik til den. Oprettelse af en Agent placerer den ikke på en kanal. Det er det trin, de fleste integrationer overser — se Routing af samtaler til en Agent nederst på denne side.
Agent-objektet
Et fuldt Agent-dokument er stort — flere hundrede kilobyte, primært dens FAQ-liste, dens videnskilder og alt sideindhold læst fra dit websted. Derfor returnerer en liste en kort oversigtsrække pr. Agent, når du beder om det:
{
"id": "ag7HkQ2ZpLxR3mNb",
"name": "Listing assistant",
"active": true,
"language": "en",
"goal": "Book a viewing",
"tags": [],
"anthropic_model": "standard",
"ai_speed": "balanced",
"enable_bookings": false,
"enable_follow_ups": true,
"faq_refs_count": 42,
"kb_source_refs_count": 3,
"created_at": 1700000000000,
"last_modified_at": 1700000000000
}
| Felt | Type | Beskrivelse |
|---|---|---|
id |
string | Agentens unikke identifikator. |
name |
string | null | Agentnavn, som vist i dashboardet. |
active |
boolean | null | Om Agenten i øjeblikket har tilladelse til at svare. |
language |
string | null | Sprog, som Agenten svarer på. |
goal |
string | null | Hvad Agenten arbejder hen imod, forkortet til de første 200 tegn (en afsluttende ellipse betyder, at den er blevet forkortet). |
tags |
array | null | Agentens tag-regler. |
anthropic_model |
string | null | AI-kvalitetsniveau: standard, economy, max eller mini. |
ai_speed |
string | null | Hvor meget ræsonnement Agenten anvender, før den svarer: fast, fast_thinker, balanced eller thorough. |
enable_bookings |
boolean | null | Om Agenten må booke aftaler. |
enable_follow_ups |
boolean | null | Om Agenten sender opfølgningsbeskeder. |
faq_refs_count |
integer | Hvor mange FAQs der er i denne Agents vidensbase. |
kb_source_refs_count |
integer | Hvor mange videnskilder der er linket til den. |
created_at |
integer | null | Oprettelsestidspunkt, epoke-millisekunder. |
last_modified_at |
integer | null | Sidste ændring, epoke-millisekunder. |
Det fulde dokument tilføjer alt andet: instructions, rules, personality, availability, follow_up_config, de linkede FAQ- og videnskildelister, de genererede tekstblokke og enhver kørselsstatus (tag_generation, optimize_run).
Nogle svar indeholder også
substrate_campaign_id. Det er en intern post, der føres på ældre konti; du behøver aldrig at foretage dig noget i forhold til den, og på nyere konti er dennulleller fraværende.
Liste over agenter
GET /agents — hver Agent på kontoen, nyeste først.
Dette slutpunkt er ikke pagineret. Som standard returneres hver Agent med sin fulde konfiguration, hvilket er tungt: en enkelt Agent kan fylde 580 KB, og en konto med 64 agenter over 3 MB. Send view=summary for en kort række pr. Agent i stedet, og læs derefter den, du ønsker, med Hent en Agent.
Forespørgselsparametre
| Parameter | Beskrivelse |
|---|---|
view |
Sæt til summary for korte rækker. Enhver anden værdi returnerer 400. Udelad for fulde dokumenter. |
fields |
Gælder kun sammen med view=summary. Kommaseparerede opsummeringsnøgler, der skal beholdes, for eksempel id,name,active. id er altid inkluderet; ukendte navne ignoreres. |
cURL
curl "https://api.youraiconnector.com/v1/agents?apiKey=YOUR_API_KEY&view=summary&fields=id,name,active"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/agents?view=summary", {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const { agents } = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/agents",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"view": "summary"},
)
agents = res.json()["agents"]
Svar (200)
{
"success": true,
"agents": [
{ "id": "ag7HkQ2ZpLxR3mNb", "name": "Listing assistant", "active": true }
]
}
Opret en Agent
POST /agents — kun name er reelt nødvendig; send hvilken som helst konfiguration, du allerede kender, sammen med den. En ny Agent er aktiv som standard.
Anmodningsfelter (alle valgfrie undtagen name)
| Felt | Type | Beskrivelse |
|---|---|---|
name |
string | Agentnavn. |
active |
boolean | Om den må svare med det samme. Standard er true. |
language |
string | Sprog, som Agenten svarer på. |
instructions |
string | Primære instruktioner, der styrer, hvordan den taler med kontakter. |
rules |
string | Hårde regler, den altid skal følge. |
goal |
string | Resultatet, den skal arbejde hen imod. |
personality |
string | Tonefald og personlighed. |
availability |
object | Aktive timer pr. ugedag — se Indstil aktive timer. |
ai_speed |
string | fast, fast_thinker, balanced eller thorough. |
anthropic_model |
string | standard, economy, max eller mini. |
scrape_urls |
string[] | Sider, der skal læses for at opbygge Agentens instruktioner. |
Opbygning af en Agent fra din hjemmeside. Inkluder scrape_urls, så læser platformen disse sider og skriver instruktionerne for dig. Svaret fortæller dig, om genereringen er startet, så du ved, om du skal forespørge Agenten om fremskridt.
cURL
curl -X POST "https://api.youraiconnector.com/v1/agents?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Listing assistant",
"language": "en",
"instructions": "Answer questions about our listings and book viewings.",
"goal": "Book a viewing"
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/agents", {
method: "POST",
headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
name: "Listing assistant",
scrape_urls: ["https://example.com", "https://example.com/faq"],
}),
});
const data = await res.json();
console.log(data.agent_id);
Python
res = requests.post(
"https://api.youraiconnector.com/v1/agents",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"name": "Listing assistant", "scrape_urls": ["https://example.com"]},
)
print(res.json()["agent_id"])
Svar (201)
{
"success": true,
"agent_id": "ag7HkQ2ZpLxR3mNb",
"substrate_campaign_id": null,
"agent_generation_queued": true
}
agent_generation_queued er true, når platformen er begyndt at skrive instruktionerne fra de sider, du har angivet.
En 400 betyder, at brødteksten ikke var et JSON-objekt, et felt blev afvist, eller Agenten overstiger den konfigurationsstørrelse, din plan tillader. En 403 betyder, at kontoen ikke har tilladelse til at bruge en af de indstillinger, du har sendt — for eksempel et AI-niveau, som kontoudbyderen ikke har givet adgang til.
Hent en Agent
GET /agents/{agentId}
Send fields med en kommasepareret liste for kun at få det tilbage, du har brug for, for eksempel fields=name,active,goal. id er altid inkluderet, og navne, der ikke findes på Agenten, ignoreres i stedet for at blive afvist. Udelad den for at få hele dokumentet.
cURL
curl "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb?apiKey=YOUR_API_KEY&fields=name,active,goal"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb?fields=name,active", {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const { agent } = await res.json();
Python
res = requests.get(
"https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"fields": "name,active"},
)
agent = res.json()["agent"]
En Agent, der ikke findes på din konto, returnerer 404.
Opdater en Agent
PUT /agents/{agentId} — send kun de felter, du ønsker at ændre; alt andet forbliver uberørt.
Indlejrede indstillinger kan adresseres blad for blad med en prikket nøgle, så "availability.monday" kun ændrer mandag og lader resten af ugen være i fred.
Noter
- For at ændre hvilken bookbar begivenhedstype Agenten booker ind i, send
event_id(begivenhedens id, ellernullfor at rydde den). Sendevent_idsmed et array for at linke flere på én gang — den første bliver den primære, og[]fjerner alle links.event_idogevent_idsudelukker hinanden, og selveevent-feltet kan ikke skrives direkte. enable_bookingsskal være en reel boolsk værdi, ogbooking_providerskal være en afdefault,zenchef,formitable.- Ejer- og identitetsfelter ignoreres, ligesom intern kørselsstatus (genererings- og optimeringsfremskridt).
- Routing er ikke indstillet her. Brug
PUT /entry-points/channel-defaultstil at gøre Agenten til svarer for en kanal,POST /agents/{agentId}/entry-pointsfor søgeords- og kommentarregler, ogPATCH /agents/{agentId}/activefor at sætte den på pause eller genoptage den.
cURL
curl -X PUT "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"instructions": "Answer questions about our listings and always offer a viewing.",
"anthropic_model": "standard"
}'
JavaScript
await fetch("https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb", {
method: "PUT",
headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({ "availability.monday": { start_time: "09:00", end_time: "17:00" } }),
});
Python
requests.put(
"https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"goal": "Book a viewing within three messages"},
)
Svar (200)
{ "success": true, "agent_id": "ag7HkQ2ZpLxR3mNb" }
En tom brødtekst returnerer 400 med "No fields to update".
Opdater bot-indstillinger
PUT /agents/{agentId}/bot-config — den snævre måde at ændre kun samtaleindstillingerne på.
En Agent har ikke en separat bot-sektion: dens indstillinger ligger direkte på Agenten, så feltnavnene her er de samme, som du ville sende til PUT /agents/{agentId}. Dette slutpunkt findes som den sikre, fokuserede måde at ændre en håndfuld af dem på. Mindst ét felt er påkrævet.
| Felt | Beskrivelse |
|---|---|
instructions |
Primære instruktioner, der styrer, hvordan Agenten taler med kontakter. |
rules |
Hårde regler, den altid skal følge. |
goal |
Resultatet, den skal arbejde hen imod i hver samtale. |
personality |
Beskrivelse af tonefald og personlighed. |
language |
Sprog, som Agenten svarer på. |
ai_speed |
fast, fast_thinker, balanced eller thorough. |
anthropic_model |
standard, economy, max eller mini. |
max_messages |
Maksimalt antal Agent-beskeder pr. samtale. |
alert_human_when |
Hvornår Agenten skal advare et menneskeligt teammedlem. |
ai_transparency |
Om Agenten oplyser, at den er en AI. |
Feltnavne skal være almindelige navne her — bogstaver, tal, understregninger og bindestreger. Prikkede stier accepteres ikke på dette slutpunkt (i modsætning til
PUT /agents/{agentId}), såbot.goalafvises med en400.
curl -X PUT "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/bot-config?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "goal": "Book a viewing within three messages", "ai_speed": "thorough" }'
Lang tekst tæller mod den konfigurationsstørrelse, din plan tillader, så et meget stort instruktionssæt kan blive afvist med en 400.
Indstil aktive timer
PUT /agents/{agentId}/active-hours — de timer, hvor Agenten svarer automatisk. Uden for disse vinduer forbliver den tavs.
Send et availability-objekt med ugedage som nøgler (monday til sunday). Hver dag tager et enkelt tidsvindue eller en liste over vinduer i 24-timers HH:MM-format. Dage, du udelader, beholder deres nuværende indstillinger, og enhver nøgle, der ikke er en ugedag, afvises — så en slåfejl kan ikke lydløst resultere i ingenting.
curl -X PUT "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/active-hours?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"availability": {
"monday": { "start_time": "09:00", "end_time": "17:00" },
"tuesday": [
{ "start_time": "09:00", "end_time": "12:00" },
{ "start_time": "13:00", "end_time": "17:00" }
]
}
}'
Svar (200)
{ "success": true, "agent_id": "ag7HkQ2ZpLxR3mNb" }
En forkert ugedagsnøgle returnerer 400: "Invalid availability keys: funday. Allowed keys: monday through sunday."
Sæt en Agent på pause eller genoptag den
PATCH /agents/{agentId}/active — tænder eller slukker for agenten. En pauset agent beholder hele sin konfiguration, men stopper øjeblikkeligt med at svare; genoptagelse træder i kraft med det samme.
curl -X PATCH "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/active?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "active": false }'
await fetch("https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/active", {
method: "PATCH",
headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({ active: false }),
});
Svar (200)
{ "success": true, "agent_id": "ag7HkQ2ZpLxR3mNb", "active": false }
active skal være en reel boolsk værdi — alt andet returnerer 400 med "active (boolean) is required".
Dupliker en agent
POST /agents/{agentId}/duplicate — opretter en kopi, hvor konfigurationen bevares. Kopien sender intet, før du peger en kanal eller et indgangspunkt (Entry Point) mod den.
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/duplicate?apiKey=YOUR_API_KEY"
Svar (201)
{ "success": true, "agent_id": "ag9WsX3cRfV6tGyH", "source_agent_id": "ag7HkQ2ZpLxR3mNb" }
En duplikat tæller med i din plans agent-kvote på præcis samme måde som oprettelse fra bunden, så den afvises med 403, når kontoen har nået sin grænse.
Slet en agent
DELETE /agents/{agentId}
Sletningen afvises, så længe agenten stadig er tilknyttet noget, der ville holde op med at fungere uden den — en udsendelse (broadcast), et indgangspunkt eller (på ældre konti) en kampagne. Svaret viser, hvad der holder på den, så du først kan fjerne tilknytningen og prøve igen.
curl -X DELETE "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb?apiKey=YOUR_API_KEY"
Svar (200)
{ "success": true, "agent_id": "ag7HkQ2ZpLxR3mNb" }
Blokeret (409)
{
"success": false,
"error": "Agent is still attached to one or more broadcast(s). Detach it first.",
"blocking_campaign_ids": [],
"blocking_broadcast_ids": ["bc5TgYhUj8IkOlPm"],
"blocking_entry_point_ids": []
}
Kladder: gennemse ændringer, før de går live
Redigeringer foretaget i editoren, og enhver omskrivning produceret med Optimer med AI, gemmes som en upubliceret kladde, indtil du publicerer dem. Den live agent fortsætter med at svare med sin nuværende konfiguration indtil da.
Publicer kladden
POST /agents/{agentId}/publish-draft — flytter kladden over på live-konfigurationen og sletter kladden i samme trin.
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/publish-draft?apiKey=YOUR_API_KEY"
Svar (200)
{ "success": true, "agent_id": "ag7HkQ2ZpLxR3mNb", "published_keys": ["instructions", "goal"] }
published_keys viser de indstillinger, der blev flyttet fra kladden til live-agenten, så du kan se, hvad der er ændret.
Kontroller, at der findes en kladde, før du kalder dette. Publicering af en agent, der ikke har nogen kladde, er ikke et understøttet kald og returneres i øjeblikket som en
500med en generisk besked, ikke en specifik. For at kassere en kladde i stedet, skal du bruge discard nedenfor.
Kassér kladde
POST /agents/{agentId}/discard-draft — smider kladden væk og lader den aktive konfiguration forblive præcis, som den er. Det er sikkert at kalde, når der ikke er nogen kladde; der sker ingenting.
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/discard-draft?apiKey=YOUR_API_KEY"
Optimer en agent med AI
POST /agents/{agentId}/optimize — omskriver agentens konfiguration baseret på din feedback (“den bliver ved med at tilbyde rabatter”, “svarene er for lange”) og gemmer omskrivningen som en kladde i stedet for at gøre den aktiv.
Send enten user_feedback (en simpel instruktion) eller, når du reagerer på et specifikt dårligt svar, thumbs_down_feedback sammen med det problematiske thumbs_down_message. Mindst én af de to skal indeholde tekst.
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/optimize?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "user_feedback": "Keep replies under three sentences." }'
Respons (202)
{ "success": true, "agent_id": "ag7HkQ2ZpLxR3mNb" }
Arbejdet kører i baggrunden, og kaldet returnerer med det samme. Læs agenten med GET /agents/{agentId} og hold øje med optimize_run.status; når den er tilbage til Draft, venter omskrivningen som agentens kladde. Gennemgå den, og udgiv den derefter eller kassér den.
Kun én kørsel ad gangen pr. agent — et andet kald, mens en kørsel er i gang, returnerer 409. Dette bruger AI-kreditter.
Tagging-regler
En tagging-regel er et tag plus en beskrivelse af, hvornår det gælder. Under en samtale læser agenten beskrivelsen og tager kontakten, når det passer, hvilket er sådan, tag-drevne automatiseringer udløses.
Regelobjektet
| Felt | Påkrævet | Beskrivelse |
|---|---|---|
name |
Ja | Tagget der skal anvendes, for eksempel hot-lead. |
description |
Nej | Hvornår agenten skal anvende det, skrevet som en instruktion den følger. |
webhook |
Nej | URL der kaldes, når agenten anvender dette tag. |
ai_can_remove |
Nej | Om agenten også må fjerne tagget igen. Standard er false. |
tag_id |
Nej | Id på et eksisterende tag på din konto, som reglen skal linkes til. Uden dette linkes reglen til tagget med samme navn, og opretter det, hvis det ikke findes — så enhver regel kan adresseres via tag-id efterfølgende. |
Tilføj en tagging-regel
POST /agents/{agentId}/tags
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/tags?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tag": {
"name": "hot-lead",
"description": "Apply when the contact asks about pricing or wants to book a call.",
"ai_can_remove": false
}
}'
Svar (200)
{ "success": true, "agent_id": "ag7HkQ2ZpLxR3mNb", "tag": { "name": "hot-lead", "...": "..." } }
Erstat en tagging-regel
PUT /agents/{agentId}/tags/{tagId} — reglen findes via tag-id’et i stien og erstattes fuldstændigt, ikke flettet, så send hele reglen i stedet for kun den del, du ændrer. Tagget, den peger på, bevares, selv hvis du udelader tag_id, så en redigering kan ikke løsrive reglen fra dens tag.
curl -X PUT "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/tags/tg8YuIoP2aSdF3gH?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "tag": { "name": "hot-lead", "description": "Apply only when the contact asks to book a call." } }'
Fjern en tag-regel
DELETE /agents/{agentId}/tags/{tagId} — Agenten stopper med at anvende det tag. Selve tagget, og alle kontakter der allerede har det, forbliver uberørte.
curl -X DELETE "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/tags/tg8YuIoP2aSdF3gH?apiKey=YOUR_API_KEY"
Begge slutpunkter returnerer 404, når Agenten ikke eksisterer, eller når den ikke har nogen regel for det tag.
Generer et tag-sæt med AI
POST /agents/{agentId}/tags/generate — designer et helt sæt regler (tagnavnene og “anvend når…”-formuleringen bag hver enkelt) ved at læse Agentens egne instruktioner og mål.
| Felt | Beskrivelse |
|---|---|
mode |
merge (standard) beholder de regler, der allerede er på Agenten, og tilføjer til dem. replace designer sættet fra bunden. |
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/tags/generate?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "mode": "merge" }'
Respons (202)
{ "success": true, "agent_id": "ag7HkQ2ZpLxR3mNb", "mode": "merge" }
Arbejdet kører i baggrunden. Læs Agenten og hold øje med tag_generation.status; selve reglerne lander i Agentens tags. Kun én kørsel ad gangen pr. Agent (409 ellers), og det bruger AI-kreditter.
Videnskilder
Videnskilder er de sider og dokumenter, som platformen har læst for dig. Ved at tilknytte en til en Agent kan den svare ud fra det indhold.
Hvor kilde-id’er kommer fra. Tilføj indhold med vidensbase-slutpunkterne — POST /kb-sources/url for en side, POST /kb-sources/file for et dokument, POST /kb-sources/bulk-import for et helt websted. De returnerer et source_id, som du poller med GET /kb-sources/{sourceId}, indtil det er klar. POST /kb-sources/url tager også autoLinkToAgentId, som tilknytter kilden til en Agent, så snart importen er færdig, så du kan springe tilknytningskaldet nedenfor over.
Tilknyt videnskilder
POST /agents/{agentId}/kb-sources — send kb_source_ids med en liste for at tilknytte et helt sæt i ét kald (hvad du ønsker efter crawling af et websted), eller kb_source_id for en enkelt. Send den ene eller den anden. At tilknytte noget, der allerede er tilknyttet, ændrer intet.
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/kb-sources?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "kb_source_ids": ["kb2QwErTyUi9OpAs", "kb6ZxCvBnM4kLjHg"] }'
Svar (200)
{
"success": true,
"agent_id": "ag7HkQ2ZpLxR3mNb",
"kb_source_id": "kb2QwErTyUi9OpAs",
"kb_source_ids": ["kb2QwErTyUi9OpAs", "kb6ZxCvBnM4kLjHg"]
}
Frakobl videnskilder
DELETE /agents/{agentId}/kb-sources/{kbSourceId} for én, eller POST /agents/{agentId}/kb-sources/bulk-remove med kb_source_ids for flere. Massefjernelse er en POST, fordi listen over id’er sendes i brødteksten.
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/kb-sources/bulk-remove?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "kb_source_ids": ["kb2QwErTyUi9OpAs"] }'
Selve kilderne slettes ikke og forbliver tilgængelige for dine andre agenter. At fjerne tilknytningen til noget, der ikke er tilknyttet, ændrer intet.
Ofte stillede spørgsmål (FAQ)
Ofte stillede spørgsmål administreres på deres egne slutpunkter og linkes til en agent derfra: POST /faqs/{faqId}/link med { "agent_id": "ag7HkQ2ZpLxR3mNb" }, og POST /faqs/{faqId}/unlink for at fjerne det igen. Et FAQ-element kan deles af et vilkårligt antal agenter. Se FAQs API.
Et FAQ-element bruges kun af de agenter, det er linket til — at oprette et er ikke nok i sig selv.
Værktøjer
Brugerdefinerede funktioner
POST /agents/{agentId}/custom-functions lader agenten kalde en af dine brugerdefinerede funktioner under samtaler. Kun funktioner, der tilhører den samme konto, kan tilknyttes, og at tilknytte en, der allerede er tilknyttet, ændrer intet.
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/custom-functions?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "custom_function_id": "cf7Hk2ZpLxR3mNbV" }'
DELETE /agents/{agentId}/custom-functions/{customFunctionId} fjerner tilknytningen. Selve funktionen slettes ikke og forbliver tilgængelig for dine andre agenter.
Administrer selve funktionerne på /custom-functions — se Brugerdefinerede funktioner for at læse om, hvad de er.
MCP-servere
En MCP-server er en færdig pakke af værktøjer, som din agent selv kan finde og kalde — se Forbind MCP-servere til din bot. Serverne registreres én gang på kontoen og tilknyttes derefter de agenter, der skal bruge dem.
MCP-servere kræver funktionen brugerdefinerede funktioner i dit abonnement. Uden den returnerer
/mcp-servers-slutpunkterne på kontoniveau403. Tilknytning af en allerede registreret server til en agent er ikke begrænset.
Registrer en server
POST /mcp-servers
| Felt | Påkrævet | Beskrivelse |
|---|---|---|
name |
Ja | En etiket for serveren. |
url |
Ja | Serverens adresse. Skal kunne nås via det offentlige internet. |
auth_type |
Nej | header (standard) for en statisk godkendelsesoverskrift, eller oauth2. |
auth_header_name |
Nej | Overskrift til afsendelse af legitimationsoplysninger. Standard er Authorization. |
auth_header_value |
Nej | Selve legitimationsoplysningerne. Returneres aldrig i noget svar. |
enabled |
Nej | Om serveren er tilgængelig for agenter. Standard er true. |
enabled_tools |
Nej | Tilladelsesliste over værktøjsnavne. null betyder, at alle værktøjer, som serveren tilbyder, er aktiveret. |
tool_policies |
Nej | Grænser pr. værktøj, angivet efter værktøjsnavn — hvor ofte et værktøj må køre, resultatcaching og en skrivebeskyttet tilsidesættelse. Send null for at rydde dem alle. |
curl -X POST "https://api.youraiconnector.com/v1/mcp-servers?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Inventory",
"url": "https://tools.example.com/mcp",
"auth_header_value": "Bearer sk_live_xxx"
}'
Svar (201)
{
"success": true,
"server_id": "ms4TgBnH7yUj2kLp",
"tools": [{ "name": "check_stock", "description": "Look up stock for a SKU." }],
"last_error": null,
"server": { "server_id": "ms4TgBnH7yUj2kLp", "name": "Inventory", "...": "..." }
}
Ved lagring opretter platformen forbindelse til serveren og cacher listen over værktøjer, den tilbyder. En server, der ikke kan nås, gemmes stadig, med årsagen i last_error og en tom værktøjsliste — så du kan registrere først og løse forbindelsesproblemer bagefter.
En auth_type af oauth2 gemmer registreringen med oauth_connected: false og ingen værktøjer: der er endnu intet token. Godkendelse af en OAuth-server kræver et browser-login og gøres fra dashboardet, ikke via API’et.
List, opdater og slet servere
GET /mcp-servers— hver registreret server, nyeste først, underservers.PUT /mcp-servers/{serverId}— send kun det, du vil ændre. Ændring af URL’en eller godkendelsesfelterne tester forbindelsen igen og opdaterer den cachede værktøjsliste.DELETE /mcp-servers/{serverId}— fjerner registreringen og fjerner linket fra enhver agent og kampagne, der havde den aktiveret.
curl "https://api.youraiconnector.com/v1/mcp-servers?apiKey=YOUR_API_KEY"
Hemmeligheder kommer aldrig tilbage. Svar indeholder auth_header_value_set (et true/false flag, der angiver, at en værdi er gemt) i stedet for legitimationsoplysningerne, og OAuth-tokens og klienthemmeligheder forbliver på serversiden. Alt andet returneres: name, url, enabled, auth_type, auth_header_name, tools, enabled_tools, tool_policies, oauth_connected, tools_cached_at, last_connected_at, last_error, created_at, updated_at.
Test en forbindelse
POST /mcp-servers/test-connection — opretter forbindelse til en server og viser dens værktøjer. To måder at kalde den på:
- med
server_id— tester den gemte konfiguration og opdaterer dens cachede værktøjsliste; - med en inline
url(plusauth_header_name/auth_header_value) — en test før lagring, der ikke gemmer noget.
curl -X POST "https://api.youraiconnector.com/v1/mcp-servers/test-connection?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://tools.example.com/mcp", "auth_header_value": "Bearer sk_live_xxx" }'
Svar (200)
{
"success": true,
"server_name": "Inventory tools",
"tools": [{ "name": "check_stock", "description": "Look up stock for a SKU." }]
}
En forbindelsesfejl er ikke en HTTP-fejl — du får en 200 med success: false og en error, der beskriver, hvad der gik galt, så du kan vise det ved siden af det felt, operatøren redigerer.
Tilknyt en server til en agent
Registrering af en server giver ikke nogen agent adgang til den. Tilknyt den:
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/mcp-servers?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "mcp_server_id": "ms4TgBnH7yUj2kLp" }'
Svar (200)
{ "success": true, "agent_id": "ag7HkQ2ZpLxR3mNb", "mcp_server_id": "ms4TgBnH7yUj2kLp" }
DELETE /agents/{agentId}/mcp-servers/{mcpServerId} fjerner tilknytningen igen. Selve serveren slettes ikke og forbliver tilgængelig for dine andre agenter. Tilknytning eller fjernelse af tilknytning for noget, der allerede er i den tilstand, ændrer intet.
Mediebibliotek
Mediebiblioteket indeholder de filer, en agent kan sende under en samtale — en menu, en prisliste, et produktbillede. En agent kan højst have 50 elementer.
List medier
GET /agents/{agentId}/media-library
curl "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/media-library?apiKey=YOUR_API_KEY"
Svar (200)
{
"success": true,
"agent_id": "ag7HkQ2ZpLxR3mNb",
"media_items": [
{
"id": "mi4RtY7uIoP1aSdF",
"item_id": "mi4RtY7uIoP1aSdF",
"media_home": "agent",
"title": "Spring menu",
"description": "Send when someone asks what is on the menu.",
"ai_description": "A one-page menu listing seasonal dishes and prices.",
"type": "document",
"media_content_type": "application/pdf",
"media_url": "https://storage.googleapis.com/...",
"max_sends_per_conversation": 1,
"created_at": 1700000000000
}
]
}
Elementer gemt på agenten kommer først, efterfulgt af ældre elementer, der stadig er gemt på den kampagne, som agenten blev oprettet fra; media_home (agent eller campaign) angiver, hvad der er hvad. Inden for hver gruppe vises det nyeste først.
media_urludløber efter 7 dage. Det er download-linket, der blev oprettet, da filen blev uploadet – betragt et gammelt link som forældet frem for ødelagt, og hent listen igen for at få et nyt link.
Upload medier
POST /agents/{agentId}/media-library – filen uploades inline som base64, op til 10 MB. Kaldet returnerer, når filen er gemt, så forvent lidt længere svartid end ved en normal anmodning. Bemærk, at denne body bruger camelCase-feltnavne.
| Felt | Påkrævet | Beskrivelse |
|---|---|---|
base64Data |
Ja | Filindhold, base64-kodet, uden et data-URL-præfiks. |
mimeType |
Ja | MIME-type for filen. |
fileName |
Ja | Oprindeligt filnavn, der bruges til at navngive den gemte fil. |
title |
Nej | Kort etiket, der vises i biblioteket. |
description |
Nej | Instruktionen “hvornår skal agenten sende dette”. |
sendMessage |
Nej | Foretrukken ordlyd, som agenten bruger, når den sender elementet. Beskæres til 500 tegn. |
maxSendsPerConversation |
Nej | Hvor mange gange det må sendes til den samme kontakt i én samtale. Standard er 1. |
sendAsVoiceNote |
Nej | Kun lyd-uploads – gem filen som en WhatsApp-talebesked. Ignoreres for andre filtyper. |
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/media-library?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"base64Data": "JVBERi0xLjQKJcfs...",
"mimeType": "application/pdf",
"fileName": "spring-menu.pdf",
"title": "Spring menu",
"description": "Send when someone asks what is on the menu.",
"maxSendsPerConversation": 1
}'
To ting sker automatisk: en animeret GIF konverteres til video, så den kan afspilles på alle kanaler, og platformen skriver et kort resumé af, hvad filen faktisk indeholder, så agenten ved, hvornår den passer ind.
En 400 dækker over manglende felter, en ikke-understøttet filtype, en tom eller for stor fil samt overskridelse af grænsen på 50 elementer. En 403 betyder, at mediebiblioteket er deaktiveret for kontoen.
Opdater et medieelement
PATCH /agents/{agentId}/media-library/{itemId} – kun metadata. Selve filen kan ikke erstattes; upload et nyt element og slet det gamle. Denne body bruger snake_case: title, description, send_message, max_sends_per_conversation (et ikke-negativt heltal, eller null for at fjerne grænsen).
curl -X PATCH "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/media-library/mi4RtY7uIoP1aSdF?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "Summer menu", "max_sends_per_conversation": 2 }'
Svar (200)
{
"success": true,
"agent_id": "ag7HkQ2ZpLxR3mNb",
"item_id": "mi4RtY7uIoP1aSdF",
"campaign_id": "",
"media_home": "agent"
}
Slet et medieelement
DELETE /agents/{agentId}/media-library/{itemId} – fjerner elementet og dets gemte fil. Sletning af et element, der allerede er væk, lykkes og rapporterer deleted: false, så kaldet er sikkert at forsøge igen.
curl -X DELETE "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/media-library/mi4RtY7uIoP1aSdF?apiKey=YOUR_API_KEY"
Generer opfølgningsbeskeder
POST /agents/{agentId}/template-generation – skriver agentens opfølgningsbeskeder for dig (de påmindelser, den sender, når en samtale går i stå), baseret på hvad agentens formål er.
| Felt | Beskrivelse |
|---|---|
type |
all (standard) skriver hele sættet. cold_only skriver kun beskederne til kontakter, der aldrig har svaret. |
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/template-generation?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "type": "all" }'
Der er to måder, dette returneres på, og feltet target fortæller dig hvilken:
target: "agent"med en200— beskederne blev skrevet under opkaldet, og resultatet findes idata. Læs dem fra agentensfollow_up_config. Dette er det normale tilfælde.target: "campaign"med en202— arbejdet blev sat i kø til kampagnen navngivet icampaign_id. Hold øje med kampagnenstemplate_generation_status, indtil den er færdig.
cold_only kræver en udgående kampagne og afvises med 409 (reason: "cold_only_requires_campaign") på en agent, der ikke har nogen. En 403 betyder, at automatiske opfølgninger ikke er slået til for kontoen. Dette bruger AI-kreditter, og en 400 med "Insufficient credits." betyder, at kontoen er løbet tør.
Routing af samtaler til en agent
En agent besvarer kun de samtaler, som et indgangspunkt sender til den. Indtil en kanal har et, gemmes den første besked fra en person, du aldrig har talt med, men intet samler den op, og ingen assistent svarer.
| Hvad du vil gøre | Kald |
|---|---|
| Gør en agent til besvarer for en hel kanal | PUT /entry-points/channel-defaults med { "channel": "instagram", "agent_id": "AGENT_ID" } |
| Tilføj en mere specifik regel (nøgleord, kommentarer, nye følgere) | POST /agents/{agentId}/entry-points |
| Se reglerne, der peger på én agent | GET /agents/{agentId}/entry-points |
| Efterlad en kanal uden nogen til at svare | DELETE /entry-points/channel-defaults?channel=instagram |
Vis en agents indgangspunkter
GET /agents/{agentId}/entry-points — de routing-regler, der sender samtaler til denne agent, nyeste først. Både nuværende og pensionerede regler returneres; en pensioneret regel har enabled: false.
curl "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/entry-points?apiKey=YOUR_API_KEY"
For hele kontoens kanalstandarder, inklusive en kanal, der bevidst er sat til ingen, skal du læse GET /entry-points/channel-defaults i stedet.
Opret et indgangspunkt
POST /agents/{agentId}/entry-points — agenten i stien vinder altid, så en regel kan aldrig oprettes for en anden agent end den, der er i URL’en.
type |
Hvad den gør |
|---|---|
channel_default |
Agenten besvarer enhver ny kontakt på de angivne kanaler. Foretræk PUT /entry-points/channel-defaults til dette — den pensionerer den tidligere besvarer for dig, hvilket oprettelse af en anden standard her ikke gør. |
keyword |
Agenten tager over, når den første besked indeholder et af match_config.keywords. Mindst ét nøgleord er påkrævet. |
instagram_comment / facebook_comment |
Agenten svarer på kommentarer til dine opslag. Den matchende kanal skal være angivet i channels. |
instagram_follower |
Agenten hilser på nye følgere. |
channels er påkrævet og angiver, hvilke kanaler reglen dækker — for eksempel whatsapp, whatsapp_web, instagram, messenger, telegram, sms, email, chat_widget eller custom_channel. Nye regler er aktiveret, medmindre du angiver andet.
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/entry-points?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "keyword",
"channels": ["whatsapp", "instagram"],
"match_config": { "keywords": ["pricing", "quote"] }
}'
Svar (201)
{ "success": true, "entry_point_id": "ep3KmQ8vTzXr5nWd" }
Hvilken regel vinder, når flere kan: en igangværende samtale eller en manuel tildeling beholder den agent, den allerede har; ellers slår nøgleordsregler kommentarregler, som slår følgerregler, og en kanalstandard er sidste udvej. Hvorvidt disse regler overhovedet bestemmer noget på en konto, rapporteres af GET /entry-points/routing-status.
Dette er den korte version. Guiden Entry Points API dækker hele stigen, regler for kommentarer og følgere, én agent pr. WhatsApp-nummer samt ændring eller sletning af en regel. Se Entry Points for konceptet og Channels API for at forbinde selve kanalen.
Fejl i AI Agents API
Agent-endepunkter returnerer standardfejl-konvolutten:
{
"success": false,
"error": "Agent not found"
}
| Status | Hvornår det sker på et Agent-endepunkt |
|---|---|
400 |
Et påkrævet felt mangler eller er ugyldigt — en tom opdateringskrop, en værdi uden for en tilladt liste (ai_speed, anthropic_model, booking_provider, mode, type), en nøgle der ikke er en ugedag i availability, et feltnavn med punktum i bot-config, eller et forkert formateret id i stien. |
403 |
Kontoen har ikke tilladelse til at bruge en indstilling, du har sendt, du har nået din plans grænse for agenter, eller en funktion, som dette endepunkt kræver (mediebibliotek, opfølgninger, brugerdefinerede funktioner til MCP-servere), er deaktiveret. En ændring, der overstiger den konfigurationsstørrelse, din plan tillader, afvises med 400. |
404 |
Agenten, tag-reglen, medieelementet eller MCP-serveren blev ikke fundet — enten eksisterer den ikke, eller også tilhører den en anden konto. |
409 |
Noget er allerede i gang eller i vejen: en optimering eller tag-generering kører, agenten er stadig tilknyttet en udsendelse, et indgangspunkt eller en kampagne, eller cold_only blev anmodet om uden en udgående kampagne. |
De delte koder, som ethvert endpoint kan returnere — 401, 403 (din plan inkluderer ikke API-adgang), 429 (rate limit) og 500 — er angivet med vejledning om genforsøg i Errors & Pagination.
En note om udforskeren.
/agents-endepunkterne findes i den publicerede OpenAPI-specifikation, så du kan gennemse deres præcise felter og køre live-anmodninger i API-referencen./mcp-servers-endepunkterne på kontoniveau findes også i specifikationen, så du kan udforske dem der også.
Relateret
- AI-agenter — hvad en agent er, forklaret i almindeligt sprog.
- Indgangspunkter — hvordan samtaler dirigeres til en agent.
- FAQ-API — opbyg og link den viden, din agent svarer ud fra.
- Kanal-API — forbind de kanaler, en agent svarer på.
- Forbind MCP-servere til din bot · Brugerdefinerede funktioner
- API-reference — den fulde interaktive endepunktsudforsker.