リレーションシップメモリ
リレーションシップメモリは、knowledge ツールのオプトイン型グラフ機能です。エージェントが、クエリに一致するテキストスニペットだけでなく、物事がどのように関連しているかを記憶する必要がある場合に使用します。
これは通常の長期メモリとは別物です。knowledge ツールは zeroclaw-memory ナレッジグラフを基盤としていますが、通常のメモリは引き続き memory_* ツールを通じて公開される Memory バックエンドです。
通常の長期記憶は、「このトピックについて何を知っているか?」のような質問に答えます。構造化された関係メモリは、「どのノードがこれに接続されているか?」、「誰がこのクライアントを管理しているか?」、または「どのスキルワークフローがこの機能を使用しているか?」のような質問に答えます。
ナレッジグラフを有効にする
graph ツールはデフォルトで無効になっています。エージェントが knowledge を呼び出すことを期待する前に、config で有効にしてください:
[knowledge]
enabled = true
リレーションシップのキャプチャは、現在は明示的に行われます。エージェントは capture や relate などの knowledge アクションを通じてグラフエントリを保存します。ツールを有効にしても、自動取り込みが有効になるわけではありません。リレーションシップメモリには、機密性の高い運用上またはビジネス上のコンテキストが含まれる可能性があるため、何を保存するかはオペレーターが選択する必要があります。
コンセプト
グラフはノードと有向エッジを格納します。
ノードの種類:
pattern: 再利用可能なワークフロー、プラクティス、またはスキル型の手順decision: 設計上の選択、方針の決定、または承認された方向性lesson: インシデント、レビュー、または実行から学んだ事柄expert: 所有者、スチュワード、メンテナー、またはエージェントの役割technology: プロバイダー、ツール、プロトコル、または機能サーフェスclient: 追跡対象のアカウント、プロジェクト、ワークスペース、または外部グループcontact: クライアントまたはプロジェクトの連絡先interaction: 会議、リクエスト、レビュー、インシデント、その他の日付付き接点
リレーション:
usesreplacesextendsauthored_byapplies_tomanages_clientcontact_ofinteracted_with
方向が重要です。たとえば、コンタクトは contact_of でクライアントを指し、クライアントは interacted_with でインタラクションを指します。
ツールアクション
knowledge ツールは、capture、search、relate、suggest、expert_find、lessons_extract、graph_stats などの一般的なメモリ操作をサポートしています。
リレーションシップ指向のアクションは次のとおりです。
| 対応 | 必須フィールド | 使用 |
|---|---|---|
graph_neighbors | node_id | 任意のノードのインバウンドおよびアウトバウンドのグラフエッジを返します。 |
client_network | client_id | client ノードの連絡先、管理者、および最近のやり取りを返します。 |
interaction_log | client_id | client ノードに接続された最近のインタラクションノードを返します。 |
これらはモデル向けのツールアクションであり、CLIサブコマンドではありません。以下のJSON例は、スキルや指示がグラフの関係性をキャプチャまたは検査するよう求めた際に、エージェントが渡せる引数を示しています。
クライアント関係の例
クライアントノードを作成します。capture は node_id を返します。その値を以下の <client-node-id> として使用してください:
{
"action": キャプチャ,
node_type: client,
title: サンプルワークスペース,
"内容": 関係メモリをデモするために使用される中立的なプレースホルダーワークスペース。,
タグ: [example, ワークスペース]
}
コンタクトノードを作成し、それをクライアントに関連付けます:
{
"action": キャプチャ,
node_type: 連絡先,
title: プロジェクトの連絡先,
"内容": サンプルワークスペースのプライマリ連絡先ロール。ポリシーで許可されていない限り、個人の連絡先情報を保存しないでください。,
タグ: [example, 連絡先]
}
{
"action": 関連付ける,
from_id: <contact-node-id>,
to_id: <client-node-id>,
関係: contact_of
}
インタラクションを作成し、クライアントにアタッチする:
{
"action": キャプチャ,
node_type: インタラクション,
title: スコープレビュー,
"内容": 次の実装スライスをレビューし、UIヘルパーをスコープ外とすることに合意した。,
タグ: [example, レビュー]
}
{
"action": 関連付ける,
from_id: <client-node-id>,
to_id: <interaction-node-id>,
関係: interacted_with
}
現在のネットワークを尋ねる:
{
"action": client_network,
client_id: <client-node-id>
}
最近のインタラクションを尋ねる:
{
"action": interaction_log,
client_id: <client-node-id>,
limit: 10
}
スキル機能の例
リレーションシップメモリはクライアント形式のトラッキングだけのものではありません。スキルによって、エージェントがインストール済みのスキルワークフローからケイパビリティグラフを構築するようガイドできます。セットアップと検証手順を含む完全なコピー可能版については、スキルからのリレーションシップメモリの利用を参照してください。
例 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.
エージェントは、次のようなスキルワークフローをキャプチャして関連付けることができます。
{
"action": キャプチャ,
node_type: パターン,
title: リリースチェックスキル,
"内容": リリースのサインオフ前に、変更履歴、バージョンタグ、検証エビデンス、およびロールバックノートをレビューします。,
タグ: [スキル, release]
}
{
"action": キャプチャ,
node_type: 技術,
title: ドキュメント翻訳ワークフロー,
"内容": ソースドキュメントと翻訳キャッシュの検証に mdBook 翻訳パイプラインを使用します。,
タグ: [機能, docs]
}
{
"action": 関連付ける,
from_id: <release-check-skill-node-id>,
to_id: <docs-translation-capability-node-id>,
関係: uses
}
その後、オペレーターは「リリースチェックスキルは何に依存していますか?」と尋ねることができ、エージェントは次を呼び出すことができます:
{
"action": graph_neighbors,
node_id: <release-check-skill-node-id>,
limit: 10
}
プライバシールール
関係性メモリは永続的です。他の公開または共有ナレッジストアと同様に扱ってください:
- 例やテストでは中立的なプレースホルダーを使用してください。
- シークレット、トークン、個人のメールアドレス、プライベートなURL、アカウントID、またはセッションIDを保存しないでください。
- オペレーターのデプロイメントポリシーが明示的に許可していない限り、個人の連絡先情報を保存しないでください。
- 実名よりも
ZeroClawMaintainer、release-steward、project-contactなどの役割ラベルを優先してください。 - データソース、保持ポリシー、レビューパスが明確でない限り、自律的な取り込みをオフのままにしてください。