Mémoire des relations
La mémoire de relations est le côté graphe opt-in de l’outil knowledge. Utilisez-la lorsqu’un agent a besoin de se souvenir de la façon dont les choses sont connectées, et non seulement de quel extrait de texte correspond à une requête.
Ceci est distinct de la mémoire à long terme ordinaire. L’outil knowledge s’appuie sur le graphe de connaissances zeroclaw-memory, tandis que la mémoire ordinaire reste le backend Memory exposé via les outils memory_*.
La mémoire à long terme ordinaire répond aux questions comme « que savons-nous sur ce sujet ? ». La mémoire de relations structurée répond aux questions comme « quels nœuds sont connectés à cette chose ? », « qui gère ce client ? » ou « quels workflows de compétences utilisent cette capacité ? ».
Activer le graphe de connaissances
L’outil graph est désactivé par défaut. Activez-le dans la configuration avant de s’attendre à ce qu’un agent appelle knowledge :
[knowledge]
enabled = true
La capture de relations est explicite aujourd’hui. Les agents stockent les entrées de graphe via des actions knowledge telles que capture et relate ; l’activation de l’outil n’active pas l’ingestion automatique. La mémoire de relations peut contenir un contexte opérationnel ou métier sensible, les opérateurs doivent donc choisir ce qui est stocké.
Concepts
Le graphe stocke des nœuds et des arêtes dirigées.
Types de nœuds :
pattern: workflow réutilisable, pratique ou procédure en forme de compétencedecision: choix de conception, décision de politique ou direction acceptéelesson: quelque chose appris d’un incident, d’une revue ou d’une exécutionexpert: un rôle de propriétaire, d’intendant, de mainteneur ou d’agenttechnology: fournisseur, outil, protocole ou surface de capacitésclient: compte, projet, espace de travail ou groupe externe suivicontact: point de contact pour un client ou un projetinteraction: réunion, demande, revue, incident ou autre point de contact daté
Relations :
- uses
replacesextendsauthored_byapplies_tomanages_clientcontact_ofinteracted_with
La direction compte. Par exemple, un contact pointe vers le client via contact_of, et un client pointe vers une interaction via interacted_with.
Actions d’outil
L’outil knowledge prend en charge des actions de mémoire générales telles que capture, search, relate, suggest, expert_find, lessons_extract et graph_stats.
Les actions orientées vers les relations sont :
| Action | Champ obligatoire | Utiliser |
|---|---|---|
graph_neighbors | node_id | Retourne les arêtes de graphe entrantes et sortantes pour n’importe quel nœud. |
client_network | client_id | Retourne les contacts, les managers et les interactions récentes pour un nœud client. |
interaction_log | client_id | Retourne les nœuds d’interaction récents connectés à un nœud client. |
Ce sont des actions d’outil destinées au modèle, et non des sous-commandes CLI. Les exemples JSON ci-dessous montrent les arguments qu’un agent peut passer lorsqu’une skill ou une instruction lui demande de capturer ou d’inspecter des relations de graphe.
Exemple de relation client
Créez le nœud client. capture renvoie node_id ; utilisez cette valeur comme <client-node-id> ci-dessous :
{
action: capture,
"node_type": client,
"title": Exemple d'espace de travail,
"contenu": Un espace de travail neutre et provisoire utilisé pour démontrer la mémoire relationnelle.,
étiquettes: [exemple, espace de travail]
}
Créez un nœud contact, puis reliez-le au client :
{
action: capture,
"node_type": contact,
"title": Contact du projet,
"contenu": Rôle de contact principal pour l'espace de travail exemple. Ne stockez pas les coordonnées personnelles, sauf si la politique le permet.,
étiquettes: [exemple, contact]
}
{
action: relate,
from_id: "<contact-node-id>",
to_id: "<client-node-id>",
relation: "contact_of"
}
Créez une interaction et attachez-la au client :
{
action: capture,
"node_type": interaction,
"title": Revue du périmètre,
"contenu": Examiné la prochaine tranche d'implémentation et convenu de maintenir les helpers UI hors périmètre.,
étiquettes: [exemple, examen]
}
{
action: relate,
from_id: "<client-node-id>",
to_id: "<interaction-node-id>",
relation: interacted_with
}
Demander le réseau actuel :
{
action: client_network,
client_id: "<client-node-id>"
}
Demander les interactions récentes :
{
action: `"interaction_log"`,
client_id: "<client-node-id>",
limite: 10
}
Exemple de capacité de Skill
La mémoire de relations ne sert pas uniquement au suivi de type client. Une skill peut guider l’agent pour construire un graphe de capacités à partir des workflows de skills installés. Pour une version complète et copiable avec les étapes de configuration et de validation, voir utiliser la mémoire de relations à partir des skills.
Exemple SKILL.md:
---
name: capability-map
description: Capture and query the relationship between local skills, capabilities, and steward roles
version: 0.1.0
author: zeroclaw_operator
tags: [knowledge, skills, capability-map]
---
# Capability map
Use the `knowledge` tool when the operator asks which skill, capability, or steward role is connected to a workflow.
Capture each reusable skill workflow as a `pattern` node. Capture reusable tool or platform surfaces as `technology` nodes. Capture maintainer or agent stewardship roles as `expert` nodes, using role names rather than personal details.
Use `uses` from a skill workflow to a capability it relies on. Use `authored_by` from a skill workflow to the role that maintains it. Use `graph_neighbors` when the operator asks what a skill depends on or what depends on a capability.
Do not store secrets, personal contact details, private URLs, or account identifiers. Summarize sensitive context outside the graph or ask before storing it.
L’agent pourrait capturer et relier un workflow de compétence comme ceci :
{
action: capture,
"node_type": motif,
"title": Compétence de vérification de version,
"contenu": Examine le changelog, les tags de version, les preuves de validation et les notes de rollback avant la validation de la version.,
étiquettes: [compétence, version]
}
{
action: capture,
"node_type": technologie,
"title": Flux de travail de traduction de la documentation,
"contenu": Utilise le pipeline de traduction mdBook pour les documents source et la validation du cache de traduction.,
étiquettes: [capacité, docs]
}
{
action: relate,
from_id: "<release-check-skill-node-id>",
to_id: <docs-translation-capability-node-id>,
relation: utilise
}
Ensuite, l’opérateur peut demander « de quoi dépend le skill release check ? » et l’agent peut appeler :
{
action: graph_neighbors,
node_id: "<release-check-skill-node-id>",
limite: 10
}
Règles de confidentialité
La mémoire de relation est durable. Traitez-la comme n’importe quel autre magasin de connaissances public ou partagé :
- Utilisez des espaces réservés neutres dans les exemples et les tests.
- Ne stockez pas les secrets, les jetons, les adresses e-mail personnelles, les URLs privées, les identifiants de compte ou les identifiants de session.
- Évitez de stocker des coordonnées personnelles sauf si la politique de déploiement de l’opérateur l’autorise explicitement.
- Préférez les libellés de rôle tels que
ZeroClawMaintainer,release-stewardouproject-contactaux noms réels. - Maintenez l’ingestion autonome désactivée sauf si la source de données, la politique de rétention et le chemin de revue sont clairs.