本文へスキップ
メニュー

プロダクト

ソリューション

連携

開発者

言語

プロダクト

あなたの習慣は次のプロジェクトにもついてくる

プロジェクトごとに自分の記憶があるので、エージェントを切り替えても説明し直す必要はありません。プロフィールはもう半分を受け持ちます。普段の作業の仕方をプロジェクトから学び、新しいプロジェクトのセッション開始時に渡します。

2つの方向、1つの記憶

横方向、つまりエージェントからエージェントへは、プロジェクトの記憶が残ります。前方向、つまりプロジェクトから次のプロジェクトへは、プロフィールがついていきます。

図:Claude Code、Codex、OpenCodeが並び、メモリチップを通して1つのプロジェクトを共有します。3つのプロジェクトがチップに入り、チップがプロフィールを持ち、そこから新しいプロジェクトへ矢印が1本伸びます。
プロジェクトのページはそのプロジェクトに残ります。プロフィールに届くのは、複数のプロジェクトで確認された定まった好みだけです。

新しいセッションが最初に聞くこと

セッションは、引き継ぎ(ハンドオフ)とプロジェクトの概要より先に、短いフェンスブロックから始まります。エントリごとに1行で、それぞれ元のページを示し、プロジェクトのスタックで絞り込まれます。セッション間でバイト単位まで同一なので、ハーネスのキャッシュされたプロンプトに収まります。

セッション開始時
> 🧭 ai-memory: your usual choices (cross-project profile)
> Your usual choices from other projects. Use them as defaults when this
> project's rules and the user say nothing; say which default you applied.
- [javascript] Use pnpm, not npm. (profile/tools/pnpm.md)
- Keep integration tests in tests/suite. (profile/testing/layout.md)

ルールが先、記憶はフォールバック

  1. 会話の中のあなたの指示
  2. リポジトリのルールファイル:AGENTS.md、CLAUDE.md、またはハーネス独自のもの
  3. プロジェクトの記憶:ページ、ルール、決定事項
  4. プロフィール:プロジェクトをまたいだ普段の選択

ルールファイルにnpmと書かれていれば、pnpmと書かれたプロフィールは適用されません。何も書かれていなければ、エージェントは聞き直さずにプロフィールを使い、どのデフォルトを適用したかを伝えます。

LLMなしで学ぶ仕組み

サーバーのパスは、セッションが終わるたびと1時間ごとに動きます。読むのは新しい内容だけです。

図:あなた自身の言葉が、2つのプロジェクトで見られたかの確認を通り、証拠付きの1つのエントリになり、すべてのセッション開始時に届きます。1つのプロジェクトでしか見られていない習慣には「まだ」と記されます。
1つのプロジェクトで見られた習慣は、2つ目のプロジェクトで確認されるか、あなたが一般的なルールとして述べるまで、そのプロジェクトの中にとどまります。
  • あなた自身の言葉

    好みと読めるプロンプトが対象です。いつも、決して、XよりY、今後は、デフォルトでといった表現と、そのポルトガル語の言い回しを拾います。質問、コードブロック、ツールが出力した内容は読みません。

  • 整理されたページとスタック

    プロジェクトで精選したルール、決定、注意点、手順も対象となり、使われている言語はスタックのエントリになります。スケジューラが自動承認したページは除外し、人が承認したページは引き続き対象にします。

  • 2つのプロジェクト、または一般的な宣言

    選択がプロフィールに入るのは、少なくとも2つのプロジェクトに現れたとき、またはあなた自身が「すべてのプロジェクトで」のようにプロジェクトを超えて適用範囲を指定したときです。最新の判断が優先され、古いものはページ履歴に残ります。

  • すべてのエントリに証拠

    各エントリには、元になったプロジェクトと日付、あなたの言葉、裏付けるプロジェクトの数、確信度が記録されます。LLMを設定している場合、パスはスキーマ検証付きの呼び出しでエントリを分類して言い直し、エラーが出たら単語リストに戻ります。

新しいプロジェクトは先行して始まる

まだ記憶のないリポジトリには大きめのベースラインが入り、コマンド1つで普段の選択が、全員に見えるルールになります。

ai-memory profile applyは、リポジトリに合うエントリを、ルールファイルの管理ブロックに書き込みます。ブロックは2つのマーカーで挟まれ、その外には触れません。もう一度実行すれば、変わるのはブロックだけです。リポジトリに書き込むのはこのコマンドだけで、実行したときにしか動きません。

新しいリポジトリの中で
# ブロックと書き込み先のファイルを確認する
ai-memory profile apply --dry-run
# 書き込む
ai-memory profile apply
# もう一度取り除く
ai-memory profile apply --remove

管理はあなたの手に

エントリは普通のwikiページです。gitに置かれたmarkdownで、変更のたびにバージョン管理されます。

  • 忘れさせれば、忘れたまま

    ai-memory profile forgetはエントリを削除し、パスは同じ証拠から作り直しません。戻るのは、あなたがもう一度述べたときだけです。

  • あなたの編集が優先

    手で編集したエントリは、その時点からあなたのものです。パスは、自分で書いていないページや、その後に変更されたページを書き換えません。

  • クライアントやNDAの仕事は対象外

    プロジェクトのマーカーでcontribute = falseを設定すると何も学習されなくなり、consume = falseを設定するとダイジェストを受け取らなくなります。

  • 確認と再構築

    profile reviewは、各エントリを証拠付きで、基準にまだ届かない習慣とともに表示します。profile rebuildは、すべてのプロジェクトを最初から読み直します。エントリを削除することはなく、編集や削除をしたものにも触れません。

クライアントのリポジトリの.ai-memory.toml
# このプロジェクトはプロフィールに教えず、受け取らない
[profile]
contribute = false
consume = false

1人に1つのプロフィール。チームは合意のうえで。

シングルオペレーターのサーバーでは、プロフィールはオンで、すべてのワークスペースで共有されます。マルチユーザーのサーバーでは、有効にするまでオフです。

  • オペレーターごとに非公開

    共有サーバーで有効にすると、各自に制限付きのプロフィールができ、読めるのは本人とrootだけです。1人のエージェントが学んだことが、他の人に届くことはありません。

  • チームのプロフィールには2人の声が必要

    share = "global"または"workspace"にすると、全員が受け取るプロフィールになります。習慣が入るのは、少なくとも2人のオペレーターの証拠があるときだけで、ダイジェストの見出しはチームのデフォルトとなり、共有されていることがエージェントに伝わります。

  • 仕事と私用を分ける

    share = "workspace"にすると、ワークスペースごとに1つのプロフィールを持てます。クライアント2社の場合や、仕事と自宅の場合に使います。

サーバー設定
# 共有サーバー:オペレーターごとに非公開のプロフィール1つ
[profile]
enabled = true
share = "auto"
min_projects = 2

プロフィールの完全なガイドを読む

よくある質問

プロフィールはプロジェクトのルールを上書きしますか。

いいえ。優先されるのはあなたの指示、次にリポジトリのルールファイル、その次にプロジェクトの記憶です。プロフィールは最後のフォールバックで、より具体的な指定が何もないときだけ使われ、エージェントはどのデフォルトを適用したかを伝えます。

LLMは必要ですか。

いいえ。収集と収束は、単語リストと最新の宣言で動きます。プロバイダーを設定すると、パスはスキーマ検証付きの呼び出しでエントリを分類して言い直し、エラーが出たらLLMを使わない経路に戻ります。完全にオフラインにしたい場合は、llm = falseを設定します。

クライアントのコードから何かを学ぶことはありますか。

読むのはあなた自身のプロンプトとプロジェクトの整理されたページだけで、ツールの出力は読みません。エージェントが目にしただけの文章が好みになることはありません。マーカーにcontribute = falseがあるプロジェクトは、それ以前に集めた証拠も含めて、完全に対象外になります。

共有サーバーではどうなりますか。

オペレーターが有効にするまで、プロフィールはオフです。有効にすると、各自に本人とrootだけが読める非公開のプロフィールができます。チームのプロフィールは別の選択で、習慣が入るのは2人のオペレーターの証拠があるときだけです。

オフにできますか。

はい。サーバー設定でenabled = falseまたはshare = "off"にすると、完全に無効になります。inject_on_session_start = falseにすると、プロフィールがクエリに答えるままで、ダイジェストだけがセッション開始時から外れます。

今日からエージェントに記憶を。

MITライセンスの無料オープンソースです。アカウントもAPIキーも要りません。