Nur Admins
Agent‑Ausführung benötigt einen Admin‑Kontext für die Zielorganisation. Das Token muss eine Admin‑Rolle für diese Organisation tragen.
Nutze diese Seite, wenn du einen Agent außerhalb der Webapp triggern möchtest – zum Beispiel aus einem Backend‑Service, einem Cronjob oder einer anderen Plattform.
POST /api/agent/runagentName in der API übergeben.Der HTTP‑Endpoint steht über deine nara Webapp zur Verfügung:
POST https://app.nara.de/api/agent/runAuthorization: Bearer <ADMIN_JWT>Content-Type: application/jsonRequest‑Body:
{ "agentName": "support_triage", "args": { "ticketId": "TCK-12345", "priority": "high", "language": "en" }}Bei Erfolg enthält die Antwort das strukturierte Ergebnis des Agents sowie die interne Execution‑Spur:
{ "success": true, "sessionId": "api-...", "agent": "support_triage", "output": { "category": "billing", "nextStep": "escalate_to_human", "summary": "Customer cannot update credit card." }, "messages": [ { "role": "assistant", "parts": [ { "type": "text", "text": "…" } ] } ]}Bei Validierungs‑ oder Berechtigungsfehlern erhältst du einen Error‑Payload mit passendem HTTP‑Status (4xx oder 5xx).
const baseUrl = 'https://app.nara.de'const token = process.env.NARA_ADMIN_TOKEN ?? ''
type SupportTriageResult = { category: string nextStep: string summary: string}
async function runSupportTriage(args: unknown): Promise<SupportTriageResult> { const response = await fetch(`${baseUrl}/api/agent/run`, { method: 'POST', headers: { 'content-type': 'application/json', authorization: `Bearer ${token}`, }, body: JSON.stringify({ agentName: 'support_triage', args, }), })
if (!response.ok) { throw new Error(`Agent call failed with status ${response.status}`) }
const payload = (await response.json()) as { success?: boolean output?: unknown error?: string }
if (!payload.success || !payload.output) { throw new Error(payload.error ?? 'Agent call failed') }
return payload.output as SupportTriageResult}Dieses Muster funktioniert in jedem Node‑Service, der die Webapp‑URL erreichen und ein Admin‑Token mitsenden kann.
Für Dienste, die ohnehin im Umfeld der Webapp laufen, kannst du den typisierten RPC‑Client aus @nara/rpc nutzen, um dieselbe Funktionalität aufzurufen, während die Webapp die Authentifizierung übernimmt:
import { createRpcClient } from '@nara/rpc/client'
const rpc = createRpcClient()
const functionalAgents = await rpc.agent.list({ type: 'FUNCTIONAL' })
// Ausführung erfolgt entweder per HTTP-Endpoint oder über interne Flows.Nutze dies in vertrauenswürdigen internen Services. Für Dritt‑Integrationen und klassische Server‑to‑Server‑Calls ist der HTTPS‑Endpoint aus dem HTTP‑Tab die richtige Wahl.
Nur Admins
Agent‑Ausführung benötigt einen Admin‑Kontext für die Zielorganisation. Das Token muss eine Admin‑Rolle für diese Organisation tragen.
JWT‑Tokens
Tokens werden von der Plattform verifiziert; du kannst entweder aus einer authentifizierten Admin‑Session heraus aufrufen oder ein Admin‑JWT als Bearer‑Token senden.
Organisations‑Scope
Der Agent muss zur gleichen Organisation gehören wie das Token. Cross‑Org‑Ausführung wird abgewiesen.
Du kannst ausführbare funktionale Agents abfragen:
GET https://app.nara.de/api/agent/runAuthorization: Bearer <ADMIN_JWT>Antwort:
{ "agents": [ { "name": "support_triage" }, { "name": "contract_summary" } ]}Nutze diese Namen als agentName, wenn du POST /api/agent/run aufrufst.
Edge Connector für On‑Prem‑Tools entdecken