解決する問題
コーディングエージェントはプランを書くのが得意です。苦手なのは、そのプランをぶらさずに保っておくことです。機能を頼めばもっともらしいタスクリストが出てきますが、三つメッセージを送るころには半分が忘れられ、次の実行ではアーキテクチャがいつの間にか作り直されています。プランはどこにも置かれていなかったのです。会話の中にあっただけで、その会話は先へ進んでしまいました。
あなたとエージェントの両方から見える場所にプランを置けば、そうはならなくなります。
使い方の流れ
エージェントがプランを書く
書き方は自由です。文章でも、タスクリストでも、設計メモでも構いません。ここはすでにうまくいっている部分です。
一度の呼び出しで図になる
エージェントは構造を送り、サーバーがすべてのノードを配置します。エージェントが宣言するのは何が何に依存するかだけで、座標は決して指定しません。位置を求められたモデルは、誰も読みたくない図を描くからです。
動かしたいものは自分で動かす
ドラッグしたノードは固定され、それ以降は自動レイアウトの対象外になります。それ以外のものは、その周りに配置し直されます。
ファイルは手元に持ち帰れる
包含関係はディレクトリに、依存の順序はファイル名の番号になります。フォルダをソースコードの隣にコミットしておけば、エージェントは毎回それを読みます。
エージェントから見えるもの
URL とキーの先に、ツールが 21 個あります。インストールするものも、サーバーに合わせて更新し続けるものもありません。一度の呼び出しでプランを開き、そこに描くものはすべて、バッチでアトミックに適用されるただ一つの入り口を通ります。だから 40 個のノードが一つずつ這い出てくるのではなく、キャンバスに一度に現れます。
ノードは見ればそれとわかる識別子で指定するので、再試行しても二度目は何も変わりません。
ツールリファレンスcreate_plan({ title: "Billing rework" })
apply_ops({
planId: "…",
ops: [
{ op: "upsert_node",
node: { slug: "pricing-rules", title: "Pricing rules" } },
{ op: "upsert_node",
node: { slug: "render-pdf", title: "Render PDF" } },
{ op: "upsert_edge",
edge: { from: "pricing-rules", to: "render-pdf" } }
]
})出力されるもの
グラフをフロントマターに収めたプレーンな Markdown の zip と、レイアウトをそのまま保って Obsidian で開ける .canvas ファイルです。形式のどこをとっても、読むのにこのサービスは必要ありません。また、同じプランは常にバイト単位で同一の内容にエクスポートされます。
plan-export.zip ├── README.md ├── 01-foundation/ │ ├── 01-ledger-schema.md │ └── 02-pricing-rules.md ├── 02-invoicing/ │ └── 01-render-pdf.md ├── plan.canvas └── plan.json
現在の状況
プレアルファ版です。これははっきり書いておきます。プランの作成、図の描画、リアルタイムの共同編集、エージェント向けのインターフェース、共有、エクスポート、そしてワークスペースとアカウントの管理は、すべて動作します。メールは一切送信されないため、招待は自分で相手に渡すリンクです。ソーシャルログインは実装されていません。プランはエクスポートしておいてください。エクスポートはそのためにあります。