Sessions and memory
Ancrage des canaux
L’amarrage de canal est un transfert d’appel pour une session OpenClaw. Il conserve le même contexte de conversation, mais modifie la destination des prochaines réponses de cette session. L’amarrage fonctionne uniquement depuis une discussion directe ; il ne fonctionne pas depuis une discussion de groupe.
Exemple
Alice peut envoyer des messages à OpenClaw sur Telegram et Discord :
{ session: { identityLinks: { alice: ["telegram:123", "discord:456"], }, },}Si Alice envoie ceci depuis une discussion directe Telegram :
/dock_discordOpenClaw conserve le contexte de la session actuelle et modifie l’itinéraire des réponses :
| Avant l’amarrage | Après /dock_discord |
|---|---|
Les réponses vont à Telegram 123 |
Les réponses vont à Discord 456 |
La session n’est pas recréée. L’historique de la transcription reste associé à la même session.
Pourquoi l’utiliser
Utilisez l’amarrage lorsqu’une tâche commence dans une application de discussion, mais que les réponses suivantes doivent arriver ailleurs.
Déroulement courant :
- Démarrez une tâche d’agent depuis Telegram.
- Passez à Discord, où vous coordonnez le travail.
- Envoyez
/dock_discorddepuis la discussion directe Telegram. - Conservez la même session OpenClaw, mais recevez les prochaines réponses dans Discord.
Configuration requise
L’amarrage nécessite session.identityLinks. L’expéditeur source et le pair cible
doivent appartenir au même groupe d’identité :
{ session: { identityLinks: { alice: ["telegram:123", "discord:456", "slack:U123"], }, },}Les valeurs sont des identifiants de pairs préfixés par le canal :
| Valeur | Signification |
|---|---|
telegram:123 |
identifiant d’expéditeur Telegram 123 |
discord:456 |
identifiant de pair direct Discord 456 |
slack:U123 |
identifiant d’utilisateur Slack U123 |
La clé canonique (alice ci-dessus) est uniquement le nom du groupe d’identité partagé. Les commandes
d’amarrage utilisent les valeurs préfixées par le canal pour prouver que l’expéditeur source et le
pair cible sont la même personne.
Commandes
OpenClaw génère une commande /dock-<channel> pour chaque Plugin de canal chargé
qui prend en charge les commandes natives ; la liste s’allonge donc à mesure que des Plugins sont ajoutés. Les
Plugins intégrés qui la prennent actuellement en charge sont les suivants :
| Canal cible | Commande | Alias |
|---|---|---|
| Discord | /dock-discord |
/dock_discord |
| Mattermost | /dock-mattermost |
/dock_mattermost |
| Slack | /dock-slack |
/dock_slack |
| Telegram | /dock-telegram |
/dock_telegram |
La forme avec un trait de soulignement est également le nom de la commande native sur les interfaces comme Telegram qui exposent directement les commandes à barre oblique.
Ce qui change
L’amarrage met à jour les champs de livraison de la session active :
| Champ de session | Exemple après /dock_discord |
|---|---|
lastChannel |
discord |
lastTo |
456 |
lastAccountId |
le compte du canal cible, ou default |
Ces champs sont conservés dans le stockage des sessions et utilisés pour la livraison des réponses ultérieures de cette session.
Ce qui ne change pas
L’amarrage ne permet pas de :
- créer des comptes de canal
- connecter un nouveau bot Discord, Telegram, Slack ou Mattermost
- accorder un accès à un utilisateur
- contourner les listes d’autorisation des canaux ou les politiques de messages directs
- déplacer l’historique de la transcription vers une autre session
- faire partager une session à des utilisateurs sans lien entre eux
Il modifie uniquement l’itinéraire de livraison de la session actuelle.
Dépannage
La commande indique que l’expéditeur n’est pas lié.
Ajoutez l’expéditeur actuel et le pair cible au même groupe
session.identityLinks. Par exemple, si l’expéditeur Telegram 123 doit être amarré
au pair Discord 456, incluez telegram:123 et discord:456.
La commande indique que l’amarrage est uniquement disponible depuis les discussions directes.
Envoyez la commande d’amarrage depuis une discussion directe avec OpenClaw, et non depuis une discussion de groupe.
La commande indique qu’aucune session active n’existe.
Effectuez l’amarrage depuis une session de discussion directe existante. La commande nécessite une entrée de session active afin de pouvoir conserver le nouvel itinéraire.
Les réponses sont toujours envoyées vers l’ancien canal.
Vérifiez que la commande a répondu par un message de réussite et confirmez que l’identifiant du pair cible correspond à celui utilisé par ce canal. L’amarrage modifie uniquement l’itinéraire de la session active ; une autre session peut toujours acheminer ses réponses ailleurs.
Je dois revenir au canal précédent.
Envoyez la commande correspondante pour le canal d’origine, telle que /dock_telegram ou
/dock-telegram, depuis un expéditeur lié.