Communitygithub.com

Agentuity Framework Placement

Verwenden Sie dies, wenn Sie Agentuity-Code zu einer Framework-App hinzufügen und entscheiden, wohin Routen, Seiten, Serverfunktionen, Konfiguration oder Service-Clients gehören. Deckt Next.js, Nuxt, SvelteKit, Astro, Hono, React Router, Vite mit React und TanStack Start Dateiablage ab.

Was ist Agentuity Framework Placement?

Dieses Skill hilft Entwicklern, Agentuity-Code korrekt in verschiedenen Web-Frameworks zu platzieren, indem es eine klare Anleitung für die Dateistruktur und Routenplatzierung gibt. Es unterstützt gängige Frameworks wie Next.js, Nuxt, SvelteKit, Astro, Hono, React Router, Vite mit React und TanStack Start. Das Skill betont die wichtige Regel, dass SDK-Schlüssel und Service-Clients nur serverseitig verwendet werden dürfen, um Sicherheitsrisiken zu vermeiden. Es bietet eine praktische Aufteilung in dünne Routen und gemeinsam genutzte Funktionen, was die Portabilität zwischen Frameworks, Tests und anderen Umgebungen erleichtert. Zusätzlich werden häufige Fehler und deren bessere Alternativen sowie nützliche Dokumentationslinks bereitgestellt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/agentuity/sdk/tree/HEAD/skills/agentuity-frameworks

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Agentuity Framework Placement?

Agentuity arbeitet mit der normalen Dateistruktur Ihres Frameworks. Platzieren Sie Routen, Seiten, Serverfunktionen und Konfiguration dort, wo das Framework sie erwartet. Fügen Sie Agentuity-Clients nur im serverseitigen Code hinzu.

Erstellen-unterstützte Frameworks

Mit agentuity create können diese Frameworks gerüstet werden:

FrameworkAPI-RoutenortApp-UI-OrtEntwicklungs-Script-Eigentümer
Next.jssrc/app/api/<name>/route.tssrc/app/page.tsxNext.js
Nuxtserver/api/<name>.get.ts oder .post.tsapp/app.vueNuxt
SvelteKitsrc/routes/<path>/+server.tssrc/routes/+page.svelteVite/SvelteKit
Astrosrc/pages/api/<name>.tssrc/pages/index.astroAstro
Honosrc/index.ts Routen-Handlersrc/landing.tsx wenn gerüstetHono Server-Script

Verwenden Sie den Routen-Handler des Frameworks, um die Anfrage zu validieren, und rufen Sie dann eine gemeinsam genutzte Funktion für die eigentliche Arbeit auf.

Integration in bestehende Apps

Für Apps, die Sie bereits haben, installieren Sie die CLI und importieren Sie das Projekt, ohne die App-Form zu ändern:

npm install -D @agentuity/cli
agentuity project import --name existing-app --confirm

Nützliche Routenorte:

FrameworkServer-Routenform
React Routerapp/routes/api.agentuity.ts, registriert in app/routes.ts
TanStack Startsrc/routes/api.agentuity.tsx mit Server-Handlern
Vite + ReactEine Server-Grenze wie server.ts; Browser-Code ruft diesen Server auf
Express oder andere RouterVorhandenes Routenmodul; importieren Sie Agentuity-Clients serverseitig

Nur-Server-Regel

Setzen Sie Agentuity SDK-Schlüssel keinen Browser-Bundles aus. Service-Clients gehören in Routen, Server-Aktionen, Worker, Scripts oder andere nur-Server-Module.

import { KeyValueClient } from '@agentuity/keyvalue';

const kv = new KeyValueClient();

export async function GET(): Promise<Response> {
  const result = await kv.get<{ checkedAt: string }>('health', 'latest');
  return Response.json({ ok: true, exists: result.exists });
}

Browser-Komponenten sollten Ihre Server-Route aufrufen:

const response = await fetch('/api/agentuity-health');
const status = await response.json();

Dünne Route, gemeinsam genutzte Funktion

Bevorzugen Sie diese Aufteilung für KI-Funktionen, Hintergrundarbeit und Service-Aufrufe:

// lib/triage.ts
export async function triageMessage(message: string): Promise<{ priority: string }> {
  return { priority: message.includes('urgent') ? 'high' : 'normal' };
}
// Framework-Routendatei
import { triageMessage } from '@/lib/triage';

export async function POST(request: Request): Promise<Response> {
  const body = (await request.json()) as { message?: string };
  if (!body.message) {
    return Response.json({ error: 'message is required' }, { status: 400 });
  }

  const result = await triageMessage(body.message);
  return Response.json(result);
}

Dies hält routenspezifischen Code klein und ermöglicht es der Kernfunktion, zwischen Frameworks, Tests, Warteschlangen, Zeitplänen und Scripts zu wechseln.

Hono Middleware-Option

Verwenden Sie in Hono-Apps standardmäßig direkte Clients, wenn Portabilität wichtig ist. Verwenden Sie @agentuity/hono, wenn der Zugriff auf Clients über den Hono-Kontext die Lesbarkeit verbessert:

import { Hono } from 'hono';
import { agentuity } from '@agentuity/hono';
import type { Services } from '@agentuity/hono';

const app = new Hono<{ Variables: Pick<Services, 'kv'> }>();

app.use('*', agentuity());

app.get('/api/preferences/:userId', async (c) => {
  const result = await c.var.kv.get('preferences', c.req.param('userId'));
  return c.json({ exists: result.exists });
});

AI-Gateway, Datenbank, Objektspeicher, Webhooks und Coder sind direkte Clients.

Häufige Fehler

FehlerBessere Vorgehensweise
Service-Clients in Browser-Komponenten platzierenRufen Sie eine Server-Route auf, die den Client besitzt
Neue Ordner hinzufügen, die Framework-Konventionen umgehenVerwenden Sie die Routen-/Seitenorte des Frameworks
KI- oder Service-Logik in jeder Route duplizierenTeilen Sie die Arbeit in eine einfache Funktion und importieren Sie sie
Annahme, dass jedes Framework denselben API-Routenpfad verwendetÜberprüfen Sie die Routentabelle vor dem Bearbeiten
SDK-Schlüssel in öffentlichen Umgebungsvariablen-Präfixen platzierenHalten Sie AGENTUITY_SDK_KEY serverseitig

Nützliche Dokumentationen

Verwandte Skills