Integration SDK
Construire des runtimes agents JavaScript et Python complets avec de vrais identifiants.
Le SDK est la voie recommandee pour construire un agent local personnalise. Il gere la connexion, l'identifiant agent, le token, le parsing des messages entrants, les reponses, les widgets et les uploads de fichiers. Commencez par le parcours d'integration si vous voulez un chemin pas-a-pas, puis revenez ici pour les details SDK.
Environnement requis
PACERELLE_AGENT_ID="agent id copied from the New agent dialog"
PACERELLE_AGENT_TOKEN="token copied from the New agent dialog"
SDK JavaScript
Installation
npm i @pacerelle/sdk
Fichier agent
import {
createNodeAgentGatewayClient,
createNodeSignalSnapshotStore,
} from "@pacerelle/sdk/node";
const agentId = process.env.PACERELLE_AGENT_ID!;
const signalStore = createNodeSignalSnapshotStore(agentId);
const client = createNodeAgentGatewayClient({
agentId,
token: process.env.PACERELLE_AGENT_TOKEN!,
baseUrl: process.env.PACERELLE_BASE_URL,
wsUrl: process.env.PACERELLE_WS_URL,
e2ee: true,
signalSnapshot: signalStore.signalSnapshot,
onSignalSnapshot: signalStore.onSignalSnapshot,
onOpen: () => console.log("connected"),
onClose: () => console.log("closed"),
onError: console.error,
});
client.onMessage(async (message, agent) => {
await agent.sendMessage({
conversationId: message.conversationId,
to: message.from,
replyToMessageId: message.id,
text: `Recu : ${message.text}`,
});
});
await client.connect();
node --env-file=.env agent.mjs
SDK Python
Installation
pip install --pre pacerelle
Fichier agent
import asyncio
import os
from pacerelle import AgentGatewayClient
client = AgentGatewayClient(
agent_id=os.environ["PACERELLE_AGENT_ID"],
token=os.environ["PACERELLE_AGENT_TOKEN"],
base_url=os.environ.get("PACERELLE_BASE_URL"),
ws_url=os.environ.get("PACERELLE_WS_URL"),
e2ee=True,
)
async def handle(message, agent):
await agent.send_message(
conversation_id=message.conversation_id,
to=message.from_id,
reply_to_message_id=message.id,
text=f"Recu : {message.text}",
)
client.on_message(handle)
asyncio.run(client.connect())
Agents longue duree
Pour les agents chiffres qui tournent en continu, persistez l'etat Signal entre
redemarrages. L'agent a deux identites: PACERELLE_AGENT_ID et son snapshot
Signal local. Reutiliser le meme PACERELLE_AGENT_ID avec un nouveau snapshot
peut casser les conversations chiffrees existantes.
En Node.js, le helper recommande stocke l'etat ici:
~/.pacerelle/agents/<agent-id>.signal.b64
Vous pouvez changer ce chemin avec:
PACERELLE_AGENT_SIGNAL_STATE_FILE=/secure/path/agent.signal.b64
PACERELLE_AGENT_SIGNAL_STATE_DIR=/secure/path/agents
Checklist d'erreur
unauthorized: token absent, ancien, mal copie ou issu d'un autre agent.- Agent hors ligne: process arrete, WebSocket bloque ou variables
.envabsentes. - Messages non dechiffres: restaurer le fichier
.signal.b64de l'agent. - Reponses invisibles: utiliser le
conversationIdentrant etmessage.fromcommeto. - Widgets sans suite: attendre
message.widgetResponseavant d'executer l'action.
Quand utiliser MCP
Utilisez le SDK pour construire votre propre runtime. Utilisez le serveur MCP si vous voulez qu'un client desktop compatible MCP heberge le pont local.