# SDK

Usa Beeuni Computer come backend per gli agenti del tuo prodotto.

Canonical page: https://beeuni.ai/docs/it/sdk

Usa `@beeuni/sdk` per gestire progetti, eseguire sessioni degli agenti e collegare i tuoi strumenti.

## Installazione

```bash
npm install @beeuni/sdk
```

## Creare un client

Crea una chiave API in **Account → Tokens**. Conserva le chiavi API del server sul tuo server.

```ts
import { createBeeuni } from '@beeuni/sdk';

const beeuni = createBeeuni({
  backendUrl: 'https://api.beeuni.ai/v1',
  getToken: async () => process.env.BEEUNI_API_KEY ?? null,
});

const projects = await beeuni.projects.list();
```

L'SDK chiama `getToken` per ogni richiesta. La tua applicazione gestisce archiviazione e rinnovo dei token; vedi [Autenticazione](/docs/it/sdk/auth).

## Chiama un Connector

Trova gli strumenti disponibili nel progetto e controlla lo schema di input di uno strumento. Beeuni gestisce le credenziali delle connessioni.

Imposta `BEEUNI_PROJECT_ID` sull'ID di un progetto esistente accessibile alla chiave API.

```ts
const projectId = process.env.BEEUNI_PROJECT_ID!;
const connectors = beeuni.project(projectId).connectors;

console.log(await connectors.catalog());
console.log(await connectors.search('search email'));
```

Sostituisci `toolName` con un nome restituito dalla ricerca e compila `args` secondo lo schema di input. Le chiamate richiedono una connessione autorizzata e il permesso per lo strumento.

```ts
const toolName = 'your_connector.your_action';
console.log(await connectors.describe(toolName));

const args = {};
const result = await connectors.call(toolName, args);
console.log(result);
```

## Avvia la prima sessione

```ts
const created = await beeuni.project(projectId).sessions.create({
  name: 'My first SDK session',
});
const session = beeuni.session(projectId, created.session_id);

await session.ensureReady();
await session.send('Describe your capabilities in one paragraph.');
```

`ensureReady()` avvia o riprende la sessione e attende che sia pronta. Senza parametri di override, `send()` usa il modello e l'agente configurati nel progetto. Le sessioni consumano crediti.

Per eventi e risposte, consulta l'[esempio completo](/docs/it/sdk/example). Per un'interfaccia React usa [React hooks](/docs/it/sdk/react).

## Guide

- [Accedere con Beeuni](/docs/it/sdk/sign-in)
- [Esempio completo](/docs/it/sdk/example)
- [Autenticazione](/docs/it/sdk/auth)
- [Sessioni](/docs/it/sdk/sessions)
- [Apps](/docs/it/sdk/apps)
- [Hook React](/docs/it/sdk/react)
- [Riferimento API](/docs/it/sdk/reference)
