2026年5月 · 読了時間 11 分 · Fran Olivares、OlivaresAI 創業者
プロジェクト管理はほとんどメモリー作業です。このストリームを誰が所有していますか?マイグレーションウィンドウについて何を合意しましたか?なぜレートリミッターをスコープアウトしましたか?法的レビューはリリースをいつブロックしますか?毎朝これらの質問を再度尋ねなければならないエージェントはエージェントではなく — 少し速いインターンです。それを変える方法は、ターン間で読み書きでき、会話から自動的に埋められる永続メモリーレイヤーをモデルに与えることです。本ガイドでは、LLM として Anthropic Claude API、メモリーレイヤーとして Alma の REST API を使用した、リファレンスアーキテクチャと統合コードを解説します。
3 つの構造的な理由があります。第一に、PM が追跡するエンティティ(人、意思決定、成果物、SLA、リスク)自体が長寿命です — 定義上、単一の会話より長生きします。第二に、会話スタイルが高頻度低労力です: 短いスタンドアップメッセージ、素早い明確化、「X について何と言いましたか?」の質問。安価に適切なコンテキストのスライスをロードすることが重要です。第三に、忘却のコストが高いです: 見逃された意思決定はリリース漏れになり、忘れられた依存関係はブロッカーになります。
ステートレスな Claude 会話は単一の計画セッションをうまく処理します。ユーザーが継続性を望むようになるとすぐに(「昨日合意した…」、「今週 auth チームをブロックしているのは何?」)、会話は完全な履歴をコンテキストウィンドウに再生するか(高価、最終的に不可能)、モデル外のメモリーレイヤーに依存する必要があります。
4 つの可動部品:
messages.create ストリーム。ツール利用が有効化されているので、モデルは必要に応じて名前でメモリーレイヤーにエンティティを尋ねられます。stakeholder、decision、sla、risk)と重要度スコアを持つメモリーレコードです。Episodes は圧縮された日次スタンドアップを捕捉し、procedures は繰り返しワークフロー(「ホットフィックスの扱い方」)を捕捉します。5 つのカテゴリーがほとんどのチームをカバーします: stakeholder(役割 + 責任を持つ人)、decision(何が、いつ、誰によって、どんな理由で合意されたか)、sla(他のチームまたは顧客へのコミットメント)、risk(所有者 + 緩和策を持つオープンな問題)、milestone(目標日 + スコープ + ステータス)。各メモリーは重要度スコアを持ち、アセンブラは検索で重大なアイテムを優先できます。
カテゴリーは単なる整理用ではなく — 検索シグナルの一部です。ユーザーが「何を決めましたか?」と尋ねると、アセンブラは decision カテゴリーのメモリーを高く重み付けします。「誰がブロックされていますか?」と尋ねると、risk カテゴリーのメモリーが上位に来ます。Alma の コンテキスト構築 はまさにこのユースケースのためにカテゴリーごとのブースト重みを公開しています。
ユーザーメッセージごとに 3 つのフェーズ。以下の擬似コードは Alma SDK と Anthropic SDK を使った Node.js を使用していますが、同じ形は Python やその他のスタックで動作します:
const { systemPrompt } = await alma.context.assemble({ query: userMessage, environmentId: projectId });const stream = anthropic.messages.stream({ model: 'claude-opus-4-7', system: systemPrompt, messages: [{ role: 'user', content: userMessage }] });await alma.memories.extract({ text: lastTurn, environmentId: projectId });フェーズ 3 はバックグラウンドで実行されます — ユーザーはストリーミングされた応答をすぐに見、抽出はブロックせずに次の約 1 秒で行われます。新しいメモリーは重複排除され、矛盾は既存のエントリーに対して検出され、ストアは自動的にクリーンに保たれます。完全な SDK リファレンス: @olivaresai/alma-sdk; HTTP の同等物は REST API ドキュメント にあります。
Alma environments を使用します: プロジェクトごとに 1 つの environment。各 environment は独自のメモリー、エピソード、手順、Soul ブロックを持ち、他のものとは完全に分離されています。エージェントはすべてのメモリー呼び出しで environmentId を渡し、API が境界を強制します。明示的な environment 切り替えなしのクロスプロジェクトクエリは単純に不可能です — これはプロジェクト A の意思決定がプロジェクト B に漏れることが実際の問題である PM ツールの正しいデフォルトです。
チーム全体の PM エージェント(複数の人間が同じエージェントとインタラクションする)には、Alma の teams リソースを使用します: 各チームはすべてのメンバーに見える共有メモリーと、個人の好みのためのユーザーごとのメモリーを持ちます。ロールベースのアクセスが、誰が何を書けるかを制御します。
ユーザーメッセージ: 「standup: backend チーム、Maria は今日マイグレーションを解除中、José はレートリミッターを担当。法務がまだ DPA をレビュー中なので、GA リリースを金曜日に押し戻すことに決定」。エージェントのフロー:
意思決定の考古学。 「なぜレートリミッターをスコープアウトしましたか?」 — エージェントは意思決定メモリー、周囲のエピソード、参照したリスクメモリーを取得します。レコードへの引用と共に回答を返すので、ユーザーは必要に応じて会話を掘り下げられます。
ステークホルダー検索。 「マイグレーションを誰が所有していますか?」 — stakeholder カテゴリーへの直接のメモリークエリ、レコードを返します。回答が古い場合(役割が先週変わった)、矛盾検出が新しい所有者に言及する次の会話でそれを捉えます。
繰り返しのレポート生成。 「今週の auth ストリームのステータスレポートを生成して」 — エージェントはそのストリームにタグ付けされたエピソード、意思決定、リスクのコンテキストウィンドウを構築し、そのキュレーションされたスライスからレポートを起草します。これは Claude に生のチャット履歴を要約するよう求めるよりも大幅に安く正確です。
アセンブラのデフォルトトークン予算: memories 約 2 K トークン、episodes 約 1 K、procedures 約 500、Soul ブロック約 500。合計約 4 K — どんなモデルのコンテキスト予算より十分に少なく、キャッシュヒットは会話全体で償却されます。プロジェクトが小さい場合(アクティブメモリー < 100)、予算をさらに下げられます。大きい場合(メモリー 10 K 以上)、ストアが大きくても検索が含まれるレコード数を制限するため、アセンブラは約 4 K に留まります。
運用上重要な 2 つ: Soul ブロック(エージェントのアイデンティティ)は安定したシステムプロンプトの接頭辞としてキャッシュされるべきで、繰り返しの呼び出しが入力トークンを再支払いしないようにします。動的コンテキスト(memories + episodes)はキャッシュブレークポイントの後に位置するべきで、各呼び出しが変更された部分のみを再アップロードします。Anthropic のプロンプトキャッシングドキュメントはブレークポイント配置をカバーしています。
典型的な PM チームフロー(ユーザーあたり 1 日約 20 メッセージ、主にスタンドアップ + 明確化)では、限界コストは LLM 呼び出し自体に支配されます。メモリーレイヤーは次を追加します: 1 つの assemble 呼び出し(数 KB の読み取り + 検索、約 30 ms)、1 つの extract 呼び出し(Haiku、ターンあたり約 $0.001)。アクティブユーザーあたり 1 日のメモリー総オーバーヘッド: 1 セント未満。PM チームが意思決定を失わない価値と比較すれば — 計算は明らかです。
Alma の Starter プラン($14/mo)はエントリーティアで、永続メモリーレイヤーを含みます。alma.olivares.ai でサインアップし、Settings で API キーを生成し、developers ページ から SDK スターターをクローンしてください。エージェントコードに 3 フェーズループを配線し、単一のテストプロジェクトに向け、1 週間実行してください。ストアは会話から自然に埋められます。手動データ入力なしで意思決定、ステークホルダー、リスクが蓄積するのを見るでしょう。そこから、カテゴリーを上げてアセンブラを調整するだけです。
関連する読み物: AI のための永続メモリー: 2026 年完全ガイド · AI に永続メモリーを追加する方法 · 3 層メモリーアーキテクチャ · コンテキスト構築ドキュメント · Environments。