Skip to content

Hello, Memory ​

まずは「コーヒーの好み」を一つ覚えさせてみましょう。文章を保存し、必要な場面で取り出す。それが Atom Memory の基本です。

1. インストールする ​

Node.js 22.13 以降を使います。好きなフォルダーでインストールしてください。

sh
npm install atom-memory

この例はローカルで動きます。モデルや API キーの設定は必要ありません。

2. ファイルを用意する ​

同じフォルダーに、次の二つのファイルを保存します。hello.mjs がアプリの処理、memory.mjs が一度だけ行う初期化です。

mjs
import { memory } from './memory.mjs';
(
  await memory.write({
    changes: [
      {
        id: 'atom',
        op: 'create',
        content: {
          text: 'コーヒーはブラックが好き。',
          links: [],
        },
        sources: [],
      },
    ],
  })
).changes.atom;
const recalled = await memory.read({
  context: 'コーヒーの好みに合わせて提案したい。',
});
console.log(recalled.items[0]?.text);
mjs
import { MemoryHost, LocalAuthority } from 'atom-memory';

// Configure the example's local host once; application code imports memory.
const authority = new LocalAuthority();
const auth = authority.issue({
  subject: 'support-app',
  readPolicies: ['notes'],
  writePolicies: ['notes'],
  canIngestSource: true,
});
const host = new MemoryHost({ authority });
export const memory = host.connect({
  auth,
  writePolicy: 'notes',
  actor: { type: 'human' },
});

write で好みを保存し、read に今の文脈を渡しています。保存先や書き手の設定は memory.mjs にまとまっています。設定を変えたくなったら ホストの設定へ進めます。

3. 動かす ​

sh
node hello.mjs

すると、保存した記憶が返ります。

text
コーヒーはブラックが好き。

これで、文脈に合わせて情報を取り出せました。この例では確認のために本文だけを表示しています。モデルへ渡すときは、参照や出典も含んだ recalled.text を参考資料に使います。

もう少し、使ってみよう ​

候補を一覧で見たいときは search。情報が変わったら write の revise changeを使います。どちらも同じ memory を使えます。複数のcreate/revise/retireは一つの write({ changes }) にまとめられます。

この例の記憶はプロセス内に保存されます。終了後も残すなら SQLiteを設定してください。

資料をまとめた後でルールが増える場合は、構成を読み直して説明を更新する例へ進めます。普段の保存・検索の呼び方は共通です。

MIT License · TypeScript / Node.js