モデル / データセット
memodb-io/Acontext avatar
memodb-io/Acontext

Acontext を採用すべきか: エージェントの記憶を Markdown スキルファイルとして扱う設計

Agent Skills as a Memory Layer

スター 3,693フォーク 336JavaScriptApache-2.0

ひと目でわかる

これは何?
Acontext はエージェント実行から得た学習を Markdown のスキルファイルとして保存し、埋め込み検索ではなくツール呼び出しで取り出すメモリ層です。ファイルとして読める点は利点ですが、記憶の質はスキーマ設計と蒸留の精度に依存します。
誰に向いている?
Acontext が向くのは、エージェントの記憶を後から人間が読んで直せる形で残したいチームです。特に、複数のフレームワークや LLM を併用していて記憶を特定のベンダーに預けたくない場合、Markdown ファイルと ZIP エクスポートという形式は実利があります。
商用利用できる?
できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 63 日前です。
何の言語で書かれている?
主に JavaScript です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

Acontext が埋めようとしている穴は「読めない記憶」

エージェントに記憶を持たせる仕組みは増えましたが、README はその現状を「hard to understand, hard to debug, and hard for users to inspect or correct」と表現しています。ベクトル化された記憶は、検索はできても中身を人間が読んで直すのが難しく、誤った学習が混入したときに取り除く手段が乏しくなります。Acontext の主張は単純です。エージェントが必要とする知識をスキルファイルとして表現できるなら、記憶も同じ形式で表現できるはずだ、というものです。対象読者は、エージェントを運用していて「前回の失敗を繰り返す」「うまくいった手順が次回に活きない」という問題を抱え、かつ記憶の中身を検査可能にしたい開発者です。学習の蓄積そのものよりも、蓄積された内容を人間が読めることに価値を置く立場向けの道具だと言えます。

記憶の書き込み経路: セッションからスキルファイルまでの5段階

README のフロー図は、記憶の生成を5つの段階で示しています。入力はセッションメッセージで、会話に加えてツール呼び出しや成果物も任意で含められます。タスクはメッセージ列から自動抽出されるか、明示的な結果報告から推定されます。次にタスクが完了または失敗としてマークされると、それが学習のトリガーになります。ここが設計上の要点で、学習は常時行われるのではなく、何らかの結果が出た時点で発火します。続く蒸留の段階で、LLM が会話と実行トレースから「何が機能し、何が失敗し、ユーザーが何を好むか」を推論します。その後 Skill Agent が、既存スキルに書くか新規スキルを作るかを判断し、あなたが定義した SKILL.md のスキーマに従って書き込みます。抽出、振り分け、書き込みという判断をシステム側が担い、構造の定義だけを人間が持つという分担です。

読み出しは検索ではなくツール呼び出し

Recall 側のフローは対照的です。エージェントに get_skill と get_skill_file というツールを与えると、エージェント自身が必要なスキルを判断して呼び出し、その内容がコンテキストに現れます。README はこれを progressive disclosure, agent in the loop と呼び、意味検索による top-k 取得を明示的に否定しています。この選択には帰結があります。取得の精度はエージェントの推論能力とツール呼び出しの判断に依存し、埋め込みインデックスの再構築や移行が不要になる代わりに、エージェントが適切なタイミングでツールを呼ばなければ記憶は使われません。list_skills と get_skill のどちらをどの場面で使うかの設計は利用者側の仕事です。検索品質をチューニングする余地がほとんどない点は、利点であると同時に、制御したい人にとっては物足りない点でもあります。

SKILL.md がスキーマであり、記憶の構造は自分で決める

Acontext は記憶のファイルレイアウトを規定しません。README は「Attach more skills to define the schema, naming, and file layout of the memory」と述べ、例として連絡先ごとに1ファイル、プロジェクトごとに1ファイルという構成を挙げています。つまり追加のスキルをアップロードすることで、記憶のスキーマそのものを定義するという考え方です。ここは自由度が高い反面、設計責任が利用者に移る場所でもあります。どんな粒度でファイルを切るか、どのフィールドを必須にするかを決めないまま運用すると、蒸留は走るが再利用しにくいファイルが増えていきます。ダウンロードしたスキルであれ自作であれ、Acontext がそれを追跡して時間とともに変化させられるという説明は、スキーマが安定していることを前提にしています。

導入手順: クラウドとセルフホストで経路が分かれる

クラウドを使う場合、acontext.io でクレジットを取得し、オンボーディングで sk-ac で始まる API Key を入手します。SDK は Python と TypeScript が用意されており、Python 側は pip install acontext で入り、AcontextClient に api_key を渡して初期化します。セルフホストは別経路です。まず curl -fsSL https://install.acontext.io | sh で acontext-cli を取得します。Docker と OpenAI API Key が必要で、空のディレクトリで acontext server up を実行すると、.env と config.yaml が作成または再利用され、db フォルダにデータが永続化されます。既定の LLM は gpt-4.1 で、ツール呼び出しに対応している必要があると README は明記しています。起動後のエンドポイントは API が http://localhost:8029/api/v1、ダッシュボードが http://localhost:3000/ です。Claude Code や OpenClaw への導入は、https://acontext.io/SKILL.md を読ませて指示に従う形式が案内されています。

向かない場面: 蒸留の失敗と検索用途の取り違え

最も現実的な失敗モードは、蒸留の誤りです。記憶の書き込みは LLM の推論に依存するため、会話から誤った一般化を引き出せば、それがスキルファイルとして残り、以後の実行で参照されます。ファイルであることは救いで、grep で見つけて手で直せますが、誤りを検出する仕組みが README には示されていません。もう一つの誤用は、これを大規模ナレッジベースの意味検索エンジンとして期待することです。設計上 top-k 検索を行わないため、大量の文書から関連断片を拾う用途には向きません。また、タスクの完了または失敗が学習のトリガーである以上、結果が明示されない長時間の対話や、成功・失敗を定義しにくい探索的な作業では、学習が発火しにくくなります。Apache-2.0 で公開されているため自前での改変は可能ですが、蒸留の品質を上げる作業は利用者側の負担になります。

代替となる考え方: 埋め込み検索型メモリとの違い

対極にあるのは、会話や文書をチャンクに分割してベクトル化し、類似度で上位を取得するタイプのメモリです。こちらは取得の再現性が高く、大量の蓄積に対する検索性能を調整できますが、保存されている内容を人間が読み解くには元テキストへの参照が必要で、誤った記憶の除去も単位が曖昧になりがちです。Acontext はこのトレードオフを逆方向に振り切っており、検索の巧さを捨てて可読性と可搬性を取っています。同じファイルベースの記憶でも、単に Markdown を手で書いてプロンプトに貼る運用との差は、書き込み側の自動化にあります。蒸留とスキーマに基づく振り分けをシステムが担う点が、手書き運用との実質的な違いです。どちらが優れているかではなく、記憶の更新頻度と、誤りを誰がどう直すかの想定で選ぶべき領域です。

保守とライセンスの見取り図

リポジトリは Apache-2.0 で、アーカイブはされておらず、直近のリリースは ui/v0.1.14、sdk-ts/v0.1.21、package-claude-code/v0.1.3 といずれも 2026年4月8日付です。UI、TypeScript SDK、Claude Code 向けパッケージがそれぞれ独立したバージョン系列を持つ構成で、追従する際はどのコンポーネントの更新かを区別する必要があります。セルフホストの場合、acontext server up が生成する .env と config.yaml が設定の中心で、db フォルダがデータの実体です。アップグレード時の移行手順やスキーマ変更の互換性については、提供された資料からは確認できません。ライセンスは Apache-2.0 ですが、クラウド版の利用条件やクレジットの扱いは別途確認が必要で、ここで法的な判断を示すことはできません。

編集部の結論

Acontext が向くのは、エージェントの記憶を後から人間が読んで直せる形で残したいチームです。特に、複数のフレームワークや LLM を併用していて記憶を特定のベンダーに預けたくない場合、Markdown ファイルと ZIP エクスポートという形式は実利があります。逆に、大規模なナレッジベースからの意味検索を主目的にする場合や、蒸留パイプラインの出力品質を自前で評価する体制がない場合は、この設計は噛み合いません。導入前に確認すべきは、自分のユースケースで SKILL.md に書くべきスキーマが決まっているか、そしてセルフホスト時に acontext server up が生成する config.yaml と .env でどの LLM を蒸留に使う設定になっているかの2点です。スキーマが曖昧なまま始めると、蒸留結果は読めるが再利用できないファイルの山になります。

公式情報源

  1. License: Apache-2.0
  2. memodb-io/Acontext on GitHub
  3. Project website
  4. README
  5. Releases
コミュニティノート

コミュニティノート