Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Memoria de relaciones

La memoria de relaciones es la parte opcional de grafos de la herramienta knowledge. Úsala cuando un agente necesite recordar cómo se conectan las cosas, no solo qué fragmento de texto coincide con una consulta.

Esto es independiente de la memoria a largo plazo ordinaria. La herramienta knowledge está respaldada por el grafo de conocimiento zeroclaw-memory, mientras que la memoria ordinaria sigue siendo el backend Memory expuesto a través de las herramientas memory_*.

La memoria ordinaria a largo plazo responde preguntas como “¿qué sabemos sobre este tema?”. La memoria estructurada de relaciones responde preguntas como “¿qué nodos están conectados a esto?”, “¿quién gestiona a este cliente?” o “¿qué flujos de trabajo de habilidades usan esta capacidad?”

Habilitar el grafo de conocimiento

La herramienta de grafo está deshabilitada de forma predeterminada. Habilítala en la configuración antes de esperar que un agente llame a knowledge:

[knowledge]
enabled = true

La captura de relaciones es explícita hoy. Los agentes almacenan entradas del grafo mediante acciones de knowledge como capture y relate; habilitar la herramienta no activa la ingesta automática. La memoria de relaciones puede contener contexto operativo o empresarial sensible, así que los operadores deben elegir qué se almacena.

Conceptos

El grafo almacena nodos y aristas dirigidas.

Tipos de nodo:

  • pattern: flujo de trabajo reutilizable, práctica o procedimiento con forma de habilidad
  • decision: elección de diseño, decisión de política o dirección aceptada
  • lesson: algo aprendido de un incidente, revisión o ejecución
  • expert: un rol de propietario, administrador, mantenedor o agente
  • technology: proveedor, herramienta, protocolo o superficie de capacidades
  • client: cuenta, proyecto, workspace o grupo externo que se está rastreando
  • contact: punto de contacto para un cliente o proyecto
  • interaction: reunión, solicitud, revisión, incidente u otro punto de contacto con fecha

Relaciones:

  • uses
  • replaces
  • extends
  • authored_by
  • applies_to
  • manages_client
  • contact_of
  • interacted_with

La dirección importa. Por ejemplo, un contacto apunta al cliente con contact_of, y un cliente apunta a una interacción con interacted_with.

Acciones de la herramienta

La herramienta knowledge admite acciones generales de memoria como capture, search, relate, suggest, expert_find, lessons_extract y graph_stats.

Las acciones orientadas a las relaciones son:

AcciónCampo obligatorioUsar
graph_neighborsnode_idDevuelve las aristas entrantes y salientes del grafo para cualquier nodo.
client_networkclient_idDevuelve contactos, gestores e interacciones recientes para un nodo client.
interaction_logclient_idDevuelve los nodos de interacción recientes conectados a un nodo client.

Estas son acciones de herramienta orientadas al modelo, no subcomandos de CLI. Los ejemplos de JSON a continuación muestran los argumentos que un agente puede pasar cuando una habilidad o instrucción le pide capturar o inspeccionar relaciones de grafo.

Ejemplo de relación con el cliente

Cree el nodo cliente. capture devuelve node_id; use ese valor como <client-node-id> a continuación:

{
  acción: capture,
  "node_type": cliente,
  title: "Espacio de trabajo de ejemplo",
  "contenido": "Un espacio de trabajo neutral de marcador de posición utilizado para demostrar la memoria de relaciones.",
  "tags": ["example", workspace]
}

Crea un nodo de contacto y luego relaciónalo con el cliente:

{
  acción: capture,
  "node_type": "contact",
  title: "Contacto del proyecto",
  "contenido": "Rol de contacto principal para el espacio de trabajo de ejemplo. No almacene datos de contacto personales a menos que la política lo permita.",
  "tags": ["example", "contact"]
}
{
  acción: relate,
  "from_id": "<contact-node-id>",
  "to_id": "<client-node-id>",
  "relation": "contact_of"
}

Crea una interacción y adjúntala al cliente:

{
  acción: capture,
  "node_type": interacción,
  title: Revisión del alcance,
  "contenido": "Revisamos el siguiente segmento de implementación y acordamos dejar las utilidades de la interfaz fuera del alcance.",
  "tags": ["example", "review"]
}
{
  acción: relate,
  "from_id": "<client-node-id>",
  "to_id": "<interaction-node-id>",
  "relation": "interacted_with"
}

Solicita la red actual:

{
  acción: client_network,
  "client_id": "<client-node-id>"
}

Pide interacciones recientes:

{
  acción: "interaction_log",
  "client_id": "<client-node-id>",
  limit: 10
}

Ejemplo de capacidad de habilidad

La memoria de relaciones no es solo para el seguimiento de estilo cliente. Una habilidad puede guiar al agente para construir un grafo de capacidades a partir de los flujos de trabajo de habilidades instaladas. Para una versión completa y copiable con pasos de configuración y validación, consulta using relationship memory from skills.

Ejemplo 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.

El agente podría capturar y relacionar un flujo de trabajo de habilidad como este:

{
  acción: capture,
  "node_type": "pattern",
  title: "habilidad de verificación de lanzamiento",
  "contenido": Revisa el registro de cambios, las etiquetas de versión, las evidencias de validación y las notas de reversión antes de aprobar el lanzamiento.,
  "tags": [skill, "release"]
}
{
  acción: capture,
  "node_type": tecnología,
  title: "Flujo de trabajo de traducción de la documentación",
  "contenido": "Usa la canalización de traducción de mdBook para la validación de los documentos de origen y de la caché de traducción.",
  "tags": [capacidad, docs]
}
{
  acción: relate,
  "from_id": "<release-check-skill-node-id>",
  "to_id": "<docs-translation-capability-node-id>",
  "relation": uses
}

Entonces el operador puede preguntar “what does the release check skill depend on?” y el agente puede llamar:

{
  acción: graph_neighbors,
  "node_id": "<release-check-skill-node-id>",
  limit: 10
}

Reglas de privacidad

La memoria de la relación es persistente. Trátala como cualquier otro almacén de conocimiento público o compartido:

  • Use marcadores de posición neutros en ejemplos y pruebas.
  • No almacenes secretos, tokens, direcciones de correo electrónico personales, URLs privadas, IDs de cuenta o IDs de sesión.
  • Evita almacenar datos de contacto personales a menos que la política de despliegue del operador lo अनुमति explícitamente.
  • Prefiere etiquetas de rol como ZeroClawMaintainer, release-steward o project-contact en lugar de nombres reales.
  • Mantén la ingesta autónoma desactivada a menos que la fuente de datos, la política de retención y la ruta de revisión estén claras.

Ver también