設計思想
このページは www.d6e.ai の設計思想ドキュメント を移植したものです。対象読者は「システムのどこまでを d6e に依存させ、どこからは依存させないか」を判断する開発者・アーキテクトです。ここに書かれている内容はすべて実装済みの事実であり、将来の構想ではありません。
なぜ疎結合であるべきか
Section titled “なぜ疎結合であるべきか”ファットなフレームワークは、最初は速く、後で高くつきます。機能がフレームワークと密結合していると、フレームワークの差し替えはその上に築いたすべてに対する破壊的変更になります。
AI 支援開発はこのトレードオフを変えました。速く作るためにファットなフレームワークに頼る必要はもうなく、疎結合なプラットフォームと標準的な部品の組み合わせでも十分に速く、しかも選択肢を残せます。d6e は既存システムと疎結合であり続けるように設計されています。業務をホストしても、システムは飲み込みません。
原則 1: データと AI は自社環境に
Section titled “原則 1: データと AI は自社環境に”インスタンス(API、データベース、ファイルストレージ、エージェント実行環境)はあなたが管理するインフラ上で動きます。ワークスペースのデータが d6e 運営側のサーバーに送られることはありません。中央サイトはワークスペースの中身に一切触れず、認証の仲介だけを行います。
原則 2: すべてが公開 API
Section titled “原則 2: すべてが公開 API”API の面はただ一つです。d6e コンソールは、API キーで呼び出せるものと同じ公開 REST API(/api/v1/*)のクライアントとして動いています。インスタンスの MCP サーバーは、組み込みチャットエージェントが使うものと同じツール群 — 約 96 個の d6e_* ツール — を公開しています。
実務上の帰結:
- コンソールでできることは、スクリプト・バックエンド・カスタムフロントエンドからもすべてできます
- 手元の AI コーディングエージェントをインスタンスの MCP に接続すれば、ホストされたエージェントとツール単位で同等の環境で開発できます。専用 SDK の学習は不要です
- カスタムフロントエンドは普通の Web アプリです。標準 OAuth2 で認証し、インスタンス API を呼びます
原則 3: 資産は可搬に、結合は疎に
Section titled “原則 3: 資産は可搬に、結合は疎に”| 資産 | 形式 | 可搬性 |
|---|---|---|
| JS STF | 素の JavaScript($input を読み、JSON 化可能な値を return) |
純粋関数。d6e SDK も import も不要 |
| Docker STF | 任意のコンテナイメージ(stdin に JSON、stdout に {"output": ...}) |
Docker が動く場所ならどこでも動く |
| Effect | 宣言的な HTTP 呼び出し | 任意の HTTP クライアントで数分で書き直せる |
| プロンプト | Markdown | コピー&ペーストで移動可能 |
| ワークスペース DB | 素の PostgreSQL(user_data) |
標準 SQL でダンプ・リストア可能 |
| ファイル | パス付きの通常ファイル | いつでもダウンロード・同期で持ち出せる |
| カスタムフロントエンド | 独立 Web アプリ | 最初から d6e の外にある |
| Plugin | template.yaml + 上記ファイル一式 |
人間可読な宣言 |
d6e 自身が提供するのは糊です: 認証、メンバーシップ、認証情報の保管、ポリシー適用、監査ログ、スケジューリング、オーケストレーション。移行する日が来ても書き直すのは糊であって、ロジック・データ・プロンプトはそのまま持ち出せます。
原則 4: 段階的に採用できる
Section titled “原則 4: 段階的に採用できる”- コンソールのみ — インスタンスをデプロイし、チャットで働き始める
- 指示を固める — 繰り返す手順をプロンプト → STF・ワークフローへ
- Plugin としてパッケージ化 —
template.yamlで他ワークスペースへ配布 - カスタムフロントエンド — 専用 UI が必要な業務に普通の Web アプリを作る
どのステップも任意です。どこで止めても、動くシステムが手元に残ります。詳細は 開発パスの選び方 を参照してください。
原則 5: ガバナンスは境界で
Section titled “原則 5: ガバナンスは境界で”すべての利用者が同じ API を通るため、統制は一箇所で効きます。
- テーブルポリシー(デフォルト拒否) — 許可ポリシーに一致しない限り拒否。コンソール・エージェント・MCP・API キー呼び出しに等しく適用
- 監査ログ — ワークスペース操作を記録
- 使用状況分析 — トークン消費をモデル別・ユーザー別に追跡
- 認証情報の暗号化保管 — SaaS 認証情報と STF シークレットはサーバー側で暗号化。シークレットは書き込み専用で、実行時に注入される
依存の境界線
Section titled “依存の境界線”d6e に置くもの: AI が操作する状態と、AI が使う認証情報(テーブル、ファイル、SaaS 接続、そのそばで再現性を持って動く STF・ワークフロー)。
d6e の外に残すもの: すでに所有しているものすべて(フロントエンド、バックエンド、外部 DB)。ワークスペースの SQL 面はインスタンス自身の user_data に限定されています。外部システムへは Docker STF または Effect で明示的に接続します。
AI エージェント向け raw Markdown
Section titled “AI エージェント向け raw Markdown”https://www.d6e.ai/docs/design-philosophy.ja.mdhttps://www.d6e.ai/docs/design-philosophy.md