# SDK

Usa Beeuni Computer como backend de agentes para tu producto.

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

Usa `@beeuni/sdk` para gestionar proyectos, ejecutar sesiones de agentes y conectar tus herramientas.

## Instalación

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

## Crear un cliente

Crea una clave de API en **Account → Tokens**. Guarda las claves de API del servidor en tu servidor.

```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();
```

El SDK llama a `getToken` en cada solicitud. Tu aplicación gestiona el almacenamiento y la renovación de tokens; consulta [Autenticación](/docs/es/sdk/auth).

## Llamar a un Connector

Busca las herramientas disponibles en tu proyecto y revisa el esquema de entrada de una herramienta. Beeuni gestiona las credenciales de las conexiones.

Establece `BEEUNI_PROJECT_ID` con el ID de un proyecto existente al que pueda acceder tu clave 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'));
```

Sustituye `toolName` por un nombre devuelto por la búsqueda y rellena `args` según su esquema de entrada. Las llamadas requieren una conexión autorizada y permiso para usar la herramienta.

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

## Iniciar tu primera sesión

```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()` inicia o reanuda la sesión y espera hasta que esté lista. Sin parámetros de sustitución, `send()` usa el modelo y el agente configurados en el proyecto. Las sesiones consumen créditos.

Para recibir eventos y leer la respuesta, consulta el [ejemplo completo](/docs/es/sdk/example). Para una interfaz React, usa [React hooks](/docs/es/sdk/react).

## Guías

- [Iniciar sesión con Beeuni](/docs/es/sdk/sign-in)
- [Ejemplo completo](/docs/es/sdk/example)
- [Autenticación](/docs/es/sdk/auth)
- [Sesiones](/docs/es/sdk/sessions)
- [Apps](/docs/es/sdk/apps)
- [Hooks de React](/docs/es/sdk/react)
- [Referencia de la API](/docs/es/sdk/reference)
