AIによるソフトウェア開発の人気が高まるにつれ、AIコーディングアシスタントが人間の開発者と同じように、プロジェクトのコーディング仕様、好み、特定のプロセス、さらには要件の詳細までを記憶し、適用できるようにするにはどうすればよいか、という重要な課題が浮上してきた。現在、一般的なAI統合開発環境(IDE)は次のようなものだ。 Cursor
完璧なメモリーソリューションはまだ提供されていない。
オープンソースの時間マッピングフレームワークを使った最近の研究 Graphiti
のみならず MCP
(モデル・コンテキスト・プロトコル) サーバーは Cursor IDE
永続メモリ機能を追加する試みは、このペインポイントに対処する新たな可能性を開く。この統合によって Cursor
内部に搭載されたAIアシスタントは、情報を効率的に保存、管理、呼び出すことができ、より複雑な開発タスクを処理することが期待できる。
なぜ永続的な思い出が重要なのか?
セッションをまたいで記憶する機能がないため、AIプログラミング・アシスタントは、インタラクションや新しい開発セッションごとにコンテキスト情報を再取得する必要がある。これは効率を低下させるだけでなく、複雑なプロジェクトや長期的なタスクを処理する能力を制限する。パーシステント・メモリは、AIに以下を可能にする:
- 一貫性の維持プロジェクト・サイクルを通じて、同じコーディング標準と開発者の好みが守られるようにする。
- コンテキスト長期的なプロジェクト要件と進化する技術仕様の理解を深める。
- 複雑なタスクを処理する過去の交流やプロジェクトの知識に基づいて、より複雑な複数ステップの開発タスクを実行する。
AIプログラミング・アシスタントに信頼できるメモリを与えることは、単純なコード補完ツールから真にインテリジェントな開発パートナーへと進化するための重要なステップである。
MCPとグラフィティを解明する
MCP
モデル・コンテキスト・プロトコル)は、AIアプリケーションを容易にするために設計されたプロトコルである(MCP
クライアント)と外部リソース(MCP
(サーバー)AIモデル間の構造化された相互作用のためのオープンスタンダード。AIモデルが外部のデータやツールにアクセスすることを可能にし、静的な学習データの制限を打破する。この統合ではGraphiti
を演じる。 MCP
サーバーと Cursor IDE
合意不履行 MCP
クライアント
Graphiti
は、特に動的な環境で動作するAI知能のための、時間考慮知識グラフの構築とクエリのためのフレームワークである。静的あるいは一括更新されたベクトルデータベースに大きく依存する従来の検索支援型生成(RAG)アプローチとは異なり、本フレームワークは、時間認識された知識グラフの構築と問い合わせを可能にする。Graphiti
ユーザーとのインタラクション、構造化・非構造化企業データ、外部情報を一貫性のあるクエリ可能なグラフに継続的に統合します。このフレームワークは、グラフ全体を完全に再計算することなく、データのインクリメンタルな更新、効率的な検索、正確な履歴状態のクエリをサポートするため、インタラクティブでコンテキストを意識したAIアプリケーションの開発に最適です。
Graphiti
チームは実験的な MCP
サーバーのフレームワーク機能をAIインテリジェンス(例えば、以下のような)にツールとして公開する。 Cursor
エージェント)が直接呼び出される。そのため Cursor
開発コミュニティでの人気やチーム自身の経験も考慮した上で、このチームを選んだ。 Cursor
実証する MCP
統合は当然の選択だ。
カーソルに合わせてグラフィティをカスタマイズする
Graphiti
1つの特徴は、カスタム・エンティティ定義によって、リッチでドメイン固有のデータ構造を使用できるようにすることで、一般的なグラフ・ノードを具体的なモデルに置き換えることができる。例えば Cursor IDE
統合シナリオは Requirement
(需要)事業体:
from pydantic import BaseModel, Field
class Requirement(BaseModel):
"""需求代表了产品或服务必须满足的特定需要、特性或功能。
始终确保在需求和其所属项目之间创建一条边,并在边上明确指出该需求是一个 requirement。
识别和提取需求的说明:
1. 寻找明确的需求或必要性陈述(“我们需要X”,“X是必需的”,“X必须有Y”)。
2. 识别描述系统应做什么的功能规范。
3. 注意非功能性需求,如性能、安全或可用性。
4. 提取必须遵守的约束或限制。
5. 关注清晰、具体、可衡量的需求,而不是模糊的愿望。
6. 如果提到优先级或重要性(“关键”、“高优先级”等),则捕获它们。
7. 包括需求之间的明确依赖关系。
8. 保留原始意图和范围。
9. 根据领域或功能进行适当分类。
"""
project_name: str = Field(
...,
description='需求所属项目的名称。',
)
description: str = Field(
...,
description='需求的描述。仅使用上下文中提到的信息来编写此描述。',
)
この構造化されたアプローチによって Cursor
プロジェクトの要件を正確に Graphiti
をナレッジグラフに登録し、必要なときに取り出す。
統合の実施ステップ
そうしれいかん Graphiti
な MCP
サーバーは Cursor IDE
メモリー機能を提供する:
- コンフィグウィル
Cursor IDE
に接続するように設定されている。Graphiti MCP
サーバーベースMCP
クライアントと直接対話チャネルを確立する。詳細な設定はGraphiti MCP
ReadMe文書。 - カスタム・エンティティ定義で
Graphiti
プロジェクトの仕様、コーディング標準などを表すカスタム・エンティティを定義する。Requirement
(需要)、Preference
(優先)、Procedure
(プロセス)など。 - リアルタイムのデータ更新指示
Cursor
アシスタントはGraphiti
ナレッジグラフのエンティティの追加と更新。例えば、開発者が UI フレームワークの環境設定をChakra UI
に変更する。ShadCN
変更が加えられると、この変更は直ちにアトラスに反映され、変更時刻を記録する時系列メタデータが添付される。 - 事前の検索指示
Cursor
手術前に助手が問い合わせるGraphiti
保存された嗜好、ニーズ、プロセスを検索する。この情報は、セッションをまたいで、さらにはプロジェクトをまたいで、永続的に保持することができる。
このプロジェクトでは、以下のようなデモビデオを提供している。 Cursor
エージェントはどのように Graphiti MCP
サーバーを使用して、プロジェクトの要件や開発者の好みを管理し、呼び出すことができます。
想定される影響と次のステップ
本作 Cursor
とともに Graphiti MCP
これは、AIコーディング・アシスタントに永続的で構造化された記憶を与える効果的な方法を示している。一方 Graphiti
な MCP
このサーバーはまだ実験段階だが、AI支援開発ツールの将来的な方向性を予感させる。AIは現在の指示を理解するだけでなく、蓄積された知識とコンテキストに基づいて、より賢く、よりパーソナライズされた支援を提供する。これにより、開発効率が大幅に向上し、より長期的で複雑なソフトウェアエンジニアリング作業にAIが参加できるようになると期待されている。
右 Graphiti
フレームワーク MCP
統合に興味のある開発者は、以下のリソースをさらに調べることができる:
Graphiti
GitHubリポジトリhttps://github.com/getzep/graphitiMCP
サーバー・ドキュメントhttps://github.com/getzep/graphiti/blob/main/mcp_server/README.mdZep
関連研究論文 (arXiv): ゼップエージェント記憶のための時間的知識グラフ・アーキテクチャ