Communitygithub.com

agentuity/sdk

Utilisez pour intégrer le code Agentuity à une application framework et choisir où placer les routes, pages, fonctions serveur, configuration ou clients de service. Couvre Next.js, Nuxt, SvelteKit, Astro, Hono, React Router, Vite avec React et TanStack Start.

Qu'est-ce que sdk ?

Ce skill fournit des directives précises pour intégrer le SDK Agentuity dans des applications construites avec des frameworks web modernes (Next.js, Nuxt, SvelteKit, Astro, Hono, React Router, Vite + React, TanStack Start). Il explique comment placer correctement les routes API, les pages, les fonctions serveur et la configuration selon la structure de chaque framework. L'objectif principal est d'éviter les erreurs courantes, comme exposer les clés SDK dans le bundle navigateur ou dupliquer la logique métier dans chaque route. Le skill insiste sur une architecture « thin route, shared function » : les routes se contentent de valider la requête et d'appeler une fonction partagée qui contient la logique réelle, facilitant ainsi la portabilité entre frameworks, tests, files d'attente et scripts. Il couvre également l'import de projets existants via la CLI et l'utilisation optionnelle d'un middleware Hono pour un accès plus lisible aux services. En résumé, il s'agit d'un guide de bonnes pratiques pour les développeurs qui ajoutent des capacités Agentuity (memoire persistante, files d'attente, agents) à leur application framework sans en perturber l'architecture.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Placement dans le Framework Agentuity

Agentuity fonctionne avec la structure de fichiers normale de votre framework. Placez les routes, pages, fonctions serveur et configuration là où le framework les attend. Ajoutez les clients Agentuity uniquement dans le code côté serveur.

Frameworks Supportés par create

agentuity create peut générer ces frameworks :

FrameworkEmplacement de la route APIEmplacement UI de l'applicationPropriétaire du script de développement
Next.jssrc/app/api/<name>/route.tssrc/app/page.tsxNext.js
Nuxtserver/api/<name>.get.ts ou .post.tsapp/app.vueNuxt
SvelteKitsrc/routes/<path>/+server.tssrc/routes/+page.svelteVite/SvelteKit
Astrosrc/pages/api/<name>.tssrc/pages/index.astroAstro
HonoGestionnaires de route dans src/index.tssrc/landing.tsx (lors de la génération)Script serveur Hono

Utilisez le gestionnaire de route du framework pour valider la requête, puis appelez une fonction partagée pour le travail réel.

Adoption d'une Application Existante

Pour les applications que vous possédez déjà, installez la CLI et importez le projet sans modifier la structure de l'application :

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

Emplacements de routes utiles :

FrameworkForme de la route serveur
React Routerapp/routes/api.agentuity.ts, enregistrée dans app/routes.ts
TanStack Startsrc/routes/api.agentuity.tsx avec gestionnaires serveur
Vite + ReactUne limite serveur telle que server.ts ; le code navigateur appelle ce serveur
Express ou autres routeursModule de route existant ; importez les clients Agentuity côté serveur

Règle Serveur Uniquement

N'exposez pas les clés du SDK Agentuity dans les bundles navigateur. Les clients de service appartiennent aux routes, actions serveur, workers, scripts ou autres modules exclusivement serveur.

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 });
}

Les composants navigateur doivent appeler votre route serveur :

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

Route Fine, Fonction Partagée

Privilégiez cette séparation pour les fonctionnalités IA, les tâches d'arrière-plan et les appels de service :

// lib/triage.ts
export async function triageMessage(message: string): Promise<{ priority: string }> {
  return { priority: message.includes('urgent') ? 'high' : 'normal' };
}
// fichier de route du framework
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);
}

Cela permet de garder le code spécifique à la route petit et de déplacer la fonction principale entre les frameworks, tests, files d'attente, planifications et scripts.

Option Middleware Hono

Dans les applications Hono, utilisez les clients directs par défaut lorsque la portabilité est importante. Utilisez @agentuity/hono lorsque l'accès aux clients via le contexte Hono améliore la lisibilité :

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 });
});

La passerelle IA, la base de données, le stockage d'objets, les webhooks et Coder utilisent des clients directs.

Erreurs Courantes

ErreurMeilleure approche
Placer les clients de service dans les composants navigateurAppeler une route serveur qui possède le client
Ajouter de nouveaux dossiers qui contournent les conventions du frameworkUtiliser les emplacements de route/page du framework
Dupliquer la logique IA ou de service dans chaque routePlacer le travail partagé dans une fonction simple et l'importer
Supposer que tous les frameworks utilisent le même chemin de route APIVérifier le tableau des routes avant de modifier
Placer les clés SDK dans des préfixes d'environnement publicsGarder AGENTUITY_SDK_KEY côté serveur

Documentation Utile

Skills associés