agent-crm について
Accordo は、Claude Code、Codex、Gemini CLI などのコーディングエージェントを使い、自社のリポジトリ内にコードとして CRM アプリを構築するオープンソースのフレームワークです。生成モジュール、決定論的なワークフロー、バージョン管理されたポリシー、人間による承認、監査記録を備え、検証済みの機能と制限を明示します。
主な機能
- 01モジュール、API、SDK メソッド、管理画面を生成
- 02決定論的なワークフローとバージョン管理ポリシー
- 03条件を満たす更新契約に担当者の承認を要求
- 04監査記録と業務プロセスのトレースを追跡
- 05コマンドラインでアプリ構成を検査
活用シーン
- 01独自の商業プロセスに沿った CRM の構築
- 02更新金額の基準超過時にマネージャー承認を要求
- 03実装済みのアプリ機能を確認
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://accordo.dev/api/mcpclaude mcp add --transport http khaoss85-agent-crm https://accordo.dev/api/mcp{"mcpServers":{"khaoss85-agent-crm":{"type":"http","url":"https://accordo.dev/api/mcp"}}}Cursor で開く{"servers":{"khaoss85-agent-crm":{"type":"http","url":"https://accordo.dev/api/mcp"}}}VS Code で開く{"mcpServers":{"khaoss85-agent-crm":{"type":"http","url":"https://accordo.dev/api/mcp"}}}{"mcpServers":{"khaoss85-agent-crm":{"serverUrl":"https://accordo.dev/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
3| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | |
| query | string | はい | 同じ行にすべて含まれる必要がある語。大文字と小文字は区別しません。 |
詳細
Accordo
ビジネスが実際に運用している顧客・収益システムを構築しましょう。
Accordo は、Claude Code、Codex、Gemini CLI が、ビジネスプロセスを自分で所有するコードとしてアプリケーションに変換するための、オープンソースのカスタム CRM フレームワークです。コーディングエージェントがシステムを作成し、決定論的なワークフロー、バージョン管理されたポリシー、人間による承認、監査、トレースによって、ビジネス上の意思決定を明確かつ検証可能に保ちます。
人間向けの製品概要:accordo.dev · コーディングエージェント向けの入り口: AI エージェント向け · 現在の実装を示す証拠: クレーム台帳。
名前は決定済みで、ドメインも登録されています。npm create accordo は、公開済みの [email protected](8 月 19 日時点のソーススナップショット)から動作するプロジェクトをスキャフォールドします。以下に記載する現在のリポジトリの機能を利用するには、最新のチェックアウトが必要です。公開済みのスナップショットには、PostgreSQL も本番運用機能も含まれていません。accordo パッケージ自体は、空の 0.0.1 名称予約のままで、フレームワークをライブラリとしてインストールするものはありません。また、@accordo スコープは取得済みですが、意図的に空にしています。商標調査は実施しておらず、一般的な本番環境への対応を主張するものでもありません。これらの内容の詳細は、対応範囲の限界を参照してください。残りを読む前に確認することをお勧めします。
Business request
↓ "Renewals of €50,000 or more need a manager's sign-off."
Claude Code / Codex
↓ reads AGENTS.md · 12 skills · MCP · `crm app inspect`
Modules + deterministic workflows + versioned policy
↓
API + Admin + trace + audit — in your repository, as code you review
この一文を実際に動かした様子です。スキャフォールドされたプロジェクト、エージェントが進める 2 件の契約更新、そして 80,000 ユーロの契約更新がゲートで人間の判断を待って停止する様子をご覧ください。

実際のコマンドを VHS で録画しています。スクリプトは .github/demo.tape にあるため、録画をただ信頼するのではなく、再現できます。
Accordo を選ぶ場面
- カスタム CRM: 商業プロセスそのものが製品であり、他社のランタイム内の設定ではなく、レビュー可能なコードとして成果を得たい場合。
- カスタマーハブ: 「ハブ」が、ガバナンスの効いたアクション、範囲を限定した JSON インポート、論理的な顧客 ID を備えた、1 つの商業記録チェーンを意味する場合。Accordo は完全な CDP ではありません。
- スマート CRM: コーディングエージェントがアプリケーションを構成し、バージョン管理されたポリシーと名前を明示された人間がビジネス上の意思決定を担う場合。これはエージェントが構築するソフトウェアであり、自律的な意思決定者ではありません。
- CDP + CRM: 外部 CDP が広範なデータ取り込み、ID グラフ、オーディエンスを担い、Accordo が範囲を限定した JSON インポートと論理 ID を備えた決定論的 CRM プロセスレイヤーをその隣で担う場合。Accordo はストリーミングデータ取り込み、オーディエンスセグメンテーション、CDP アクティベーションを提供せず、事前構築済みの CDP コネクターもありません。
これらの関連用語は、情報を見つけるための経路であり、追加の機能を主張するものではありません。確認済みの 推奨マップでは、それぞれの用語をフレームワークが実証している内容と、その対応範囲の限界に結び付けています。
これが存在する理由
CRM はどれも、最終的に自社のモデルに合わせてプロセスを変更するよう求めてきます。よくある回避策は 2 つありますが、どちらも何かを犠牲にします。
- プラットフォームを設定する — 始めるのは簡単ですが、カスタマイズは他社のランタイム内にメタデータとして存在します。限界に達すると、モノレポをフォークすることになります。
- 一から構築する — 完全な自由が得られますが、検証、パイプラインのセマンティクス、承認、監査をチームごとに再考することになります。たいていは対応が遅れ、たいていは大きなプレッシャーのもとで行われます。
このフレームワークは第 3 の選択肢です。エージェントがアプリケーションを生成し、フレームワークが、期限に追われるチームがいつも間違えがちな部分を提供します。どの開発者でもできる判断基準は、*「このプロジェクトが明日なくなったら、何が残るのか?」*という問いです。ここでの答えは、リポジトリ内の Node アプリケーション、Node 組み込みの SQLite、PostgreSQL を選択した場合に限り使用する固定バージョン [email protected] のドライバー、そしてどのクライアントでも開ける SQLite ファイルです。
実証されていること
以下の各項目は、マージ済みのテストに紐付いています。主張、証拠、それに伴う制限事項をまとめた全記録は site/claims.json にあり、そのレビュー基準は docs/QUALITY_GATES.md にあります。
| 機能 | 対応範囲の限界 | 根拠 |
|---|---|---|
| モジュールマニフェストから、ページコードなしでマイグレーション、サービス、REST リソース、SDK メソッド、Admin 画面を生成します | 生成されるのは CRUD のみです。カスタムオブジェクトのワークフローと承認は、引き続き手書きが必要です | tests/module-factory-e2e.test.js、tests/generated-api-e2e.test.js、tests/admin-modules.test.js |
| 生成されたオブジェクト同士を関連付けます:外部キー、実行時の参照先検証、Admin セレクター | 生成オブジェクト間の多対一のみです。多対多、逆方向のコレクション、カスケードには対応していません | tests/reference-fields-e2e.test.js |
| 決定論的な承認ポリシー:しきい値以上の更新契約は、指定された人間の承認を待ちます | 組み込みの更新契約オブジェクトと、単一の値のしきい値のみです | tests/workflow.test.js、tests/api.test.js |
| エージェントは人間の承認判断を下せません — 慣例ではなく、テストで検証されています | アクターの身元は検証されますが、認証はされません。これは誠実なエージェントに対する保証であり、攻撃者に対する保証ではありません | tests/workflow.test.js |
| サーバーが権限を持つアクションのもとで、商談はコードファーストのパイプラインステージを進みます — クライアントが要求し、サーバーが判断します | 組み込みの Opportunity モジュールで検証済みです。生成されたカスタムオブジェクトの設定可能なパイプラインは保証していません | tests/opportunity-pipeline-e2e.test.js、tests/pipeline-contract.test.js |
| リードの獲得、エンリッチメント、説明可能なバージョン管理付きスコアリング、決定論的なルーティング、適格性判定、変換 | エンリッチメントはフィクスチャプロバイダーを使用します。実際のデータソースには接続されていません | tests/lead-intelligence-e2e.test.js、tests/lead-conversion-e2e.test.js |
| サーバーで価格を計算する複合見積もり、変更不可の見積もりバージョン、承認付きのバージョン管理された割引ポリシー | フィクスチャのカタログプロバイダーを使用します。通貨換算はなく、整数のセント単位です — 異なる通貨が合算されることはありません | tests/commercial-e2e.test.js |
| 署名エンベロープ → 検証済みイベント → 署名済み成果物の証跡 → 変更不可の Order を一件のみ作成 | フィクスチャの署名プロバイダー、テスト専用の Webhook キー、プロバイダーが報告する成果物ハッシュを使用します | tests/signature-order-e2e.test.js |
| Order の有効化と、ガバナンス下での更新・変更による署名済み後続契約の作成 | 履歴は変更不可です。自動更新、解約処理、請求には対応していません | tests/contracts-activation-e2e.test.js、tests/lifecycle-amendment-execution-e2e.test.js |
| デリバリーの引き継ぎから、作業パッケージ、マイルストーン、任意のパートナーを含むプロジェクトを作成します。実行は人間が主導します | リソースのスケジューリング、人員配置、請求には対応していません。成果物とユーザーが記録した受け入れはありますが、顧客の認証はありません | tests/delivery-handover-e2e.test.js、tests/delivery-execution-e2e.test.js、tests/delivery-change-acceptance-e2e.test.js |
| 追記専用の時間・経費の証跡を、バージョン管理されたポリシーで原価計算し、再現可能な貢献額の見積もりを算出します | 意図的に利益率とはしていません。収益認識、COGS、ARR/MRR、通貨換算には対応していません | tests/delivery-economics-e2e.test.js |
| 顧客が作成したドメインパッケージを、カーネルのフィンガープリントを変更せずにアタッチ・デタッチできます | ひな形から作成されるのは空のパッケージだけで、それ以外は何も書き込みません。レジストリ、公開、サンドボックス化には対応していません — パッケージコードはホストの権限で実行されます | tests/package-contract.test.js、tests/custom-package-e2e.test.js |
accordo package scaffold <name> — 適合する最小限の空のローカルパッケージをアトミックに書き込みます。デフォルトではドライランです | ビジネスロジックの生成や構成は行いません。グローバルな ID の一意性を検証せず、インストールや公開も行いません | tests/package-scaffold.test.js、tests/package-test-command.test.js |
crm app inspect — アプリケーションに含まれるものを示す、決定論的なソースのみの JSON レポートを一つ生成します | データベースを開かず、プロバイダーに接続せず、シークレットも読み取りません — その旨はレポート自体にも記載されます | tests/app-inspect.test.js |
crm solution check — Solution Plan は、リポジトリにチェックインされた契約であり、正規化されたフィンガープリントを持ちます | これは文書の契約であり、プランナーでもランタイムでもありません。プランを実行するものはありません | tests/solution-plan.test.js |
crm scenario run — チェックインされた二つのビジネスシナリオを実際に構成されたアプリケーションで実行し、どの JTBD 行を満たしたか、また満たさなかったかを報告します | カバレッジはシナリオによって申告されるもので、検出されるものではありません。行を昇格させず、ブラウザーを操作せず、各実行が対象とするのは一つの構成です | tests/scenario-run.test.js |
| 生成モジュールは、明示的なリビジョンと追記専用の名前付きマイグレーションを通じて進化します | ソースのみを対象とします。特定のデータベースに何が適用されたかは、ここからは分かりません | tests/module-evolution.test.js |
スモークテストと合わせて、プッシュのたびにスイート全体を実行します。テスト数と、その測定に使われたコミットは site/claims.json の measuredAgainst に記載されています。これは、このリポジトリでテスト数が記録されている唯一の場所であり、npm run gtm:check が数値の記載を認める唯一の場所です。 |
実行する
Node.js 22.16 以降が必要です。SQLite は Node の組み込みアダプターを使用します。PostgreSQL には、バージョンを固定したドライバー [email protected] が必要です(tests/spine-v2-m3b-postgresql-adapter.test.js)。ORM もビルド手順もありません。
npm run tour # compose the whole application and inspect it
npm run verify # source checks, then the whole test suite
npm run falsify # break five rules on purpose and watch the suite catch them
npm run demo # the approval slice, end to end
npm run dev # http://localhost:4000
実際の内容を手早く確認するには、npm run tour が最適です。リポジトリのデフォルト構成は意図的に空になっており、プロジェクトが必要な構成を記述する仕組みです。そのため、新しくクローンした状態で crm app inspect を実行しても何も表示されません。ツアーでは、CI がプッシュのたびに実行するものと同じスターターインストーラーを、保持されるディレクトリに実行してから、その結果を検査します。
modules 98 resources 77 policies 7
packages 9 actions 64 providers 1
production posture — not a readiness claim: the framework authenticates
nobody (a deployment adapter supplies verified
identity), while tenancy — one tenant per application
instance — and authorization are owned and enforced by
the framework. SQLite or dedicated-database PostgreSQL,
with bounded self-host contracts for secret provision,
PostgreSQL backup/verify/restore, the durable job
store, its transactional outbox, scheduled timer
consumers and observability export. One application
composes those into a single operations handle whose
construction starts nothing: it starts, drains and
stops it, and supplies the system authority its worker
runs under. Nothing autostarts. Absent: shared-database
tenancy, an autostarted or operator-managed worker
service, any managed jobs service, managed secret
custody, managed backup custody/scheduling/retention
and an observability backend
最後に、インスペクターが確認できないとする11項目を表示して終わります。良い面しか見せないツアーには意味がないからです。npm run tour -- --keep ./demo を実行すると、探索用のプロジェクトが残ります。--json を付けると、機械可読なレシートが出力されます。
npm run falsify は、もう一方の方向から確認するコマンドです。テスト数から分かるのは、どれだけ書かれたかであり、テストが成功し続けるには何が問題になればよいかではありません。そこで、一度に1つのルールを取り除きます。承認時の人間アクターのガード、承認しきい値の境界、Webhook の署名検証、ポリシーバージョンの不変性、完全管理モジュールでは公開書き込みが生成されないというルールです。そのルールを守るはずのスイートを実行し、検出したテストを示します。未コミットの変更がある状態では実行を拒否し、変更したファイルはすべて元に戻します。生き残ったものはギャップとして出力されます。これが有用な結果だからです(docs/FALSIFY.md、tests/falsify.test.js)。
npm run demo は2件の更新を作成し、プッシュのたびに scripts/smoke.js で検証されます。
- €20,000 → 直接 Proposal に進みます。
- €80,000 → マネージャーが判断するまで Approval Pending で止まります。
コーディングエージェントから使用する
Claude Code は CLAUDE.md、.mcp.json、.claude/skills/ を読み込みます。Codex は AGENTS.md と .codex/config.toml を読み込みます。どちらもチェックインされ、相互に連携するよう設定されています。
Read AGENTS.md, PRODUCT.md and docs/PROJECT_STATUS.md.
Run npm run crm -- app inspect --json.
Tell me which parts of my commercial process this already supports, and which it does not.
ハーネスに必要なのは、コマンドの実行、標準出力の読み取り、終了コードの取得、JSON の解析、ファイルの読み書きだけです。MCP サーバーも、ネットワークも、認証情報も、データベースも、長時間実行されるプロセスも必要ありません(docs/AGENT_HARNESS_COMPATIBILITY.md)。
npm run crm -- app inspect --json # what this application contains
npm run crm -- solution check plan.json # is this plan still valid against it
終了コードが契約です。0 は有効、1 は問題あり(レポートは出力されます)、2 は読み取り不能です。
MCP サーバーは stdio 経由で実行され(node --no-warnings packages/mcp/bin/server.js)、プロジェクトの検査、商談の一覧表示、ステージ変更リクエスト、承認判断、実行トレース、モジュールのスキャフォールディングを提供します。コードを生成するツールと破壊的なツールは、明示的な apply フラグを渡さない限りドライランです(tests/mcp.test.js、tests/scaffold.test.js — docs/MCP.md)。stdio 専用かつローカル専用です。ホスト型または認証付きの MCP エンドポイントはなく、サーバーは起動元プロセスの権限を引き継ぎます。
対応範囲の限界
上記の内容を評価する前に、こちらをお読みください。docs/benchmarks/CRM_JTBD_MATRIX.md では、すべての CRM 業務を保守的なステータス用語で追跡しています。デフォルトは未対応であり、その状態を変更するには根拠が必要です。
以下の境界の大半には、docs/repository-truth.json(生成された事実文書。repositoryTruthContract: 1、ADR-039)への機械検証済みの引用が付いています。引用は HTML コメントであり、このページの表示時には見えませんが、プッシュのたびに npm run repo:truth -- --check が実行される際には重要な役割を果たします。引用元のコードがなくなった後も残っている文は、このチェックに失敗します。以下の3つの箇条書きには引用がありません。記述内容(インポートとエクスポート、データガバナンス、フレームワークの配布方法)をカバーする生成済みの事実がないためです。何も解決しない引用を付ければ、誰も確認していないことの証拠のように見えてしまいます。これらの文に含まれる数値は、いずれもチェックされていません(NUMERIC_CLAIMS_NOT_BOUND)。
-
認証機能は提供されていません。フレームワークは誰も認証しません。 本番環境向けの Spine v1(ADR-038)では、検証済みの ID、組織とメンバーシップ、サーバーが権限を決定する認可、アプリケーションインスタンスごとに1つのテナントが追加されました。したがって、テナントと認可は現在存在し、適用されています。一方、認証機能はありません。ログイン、パスワード、セッション、OIDC の実装は提供されず、デプロイ時にリクエストを検証するアダプターを用意する必要があります。本番モードでは、アダプターがなければ起動しません。ローカル開発モードでは、アクターのヘッダーをアサーションとして受け入れますが、これは ID ではなく、デフォルトの開発者向けの動作です。これは共有データベースのマルチテナントではなく、本番運用の準備が整っているという主張でもありません。
-
共有データベースのテナント機能ではありません。
createAccordoAppAsyncでは、専用の PostgreSQL データベースを使って1つのテナントを起動できます。createAccordoApp()は引き続き SQLite のみを使用します。共有データベースでの行レベルのテナント機能は実装されておらず、本番運用の準備が整っているという主張でもありません。 -
ビルドベンチマークはまだ実施されていません。 Successful Agent Build Rate は存在しません。このプロジェクトに帰属するとされる割合は、すべて捏造です。
docs/strategy/CRM_BUILD_BENCHMARK.mdはプロトコルであり、結果ではありません。 -
タイマーはありますが、自動実行するサービスはありません。 人が依頼の予定を設定できます。たとえば、その日にフォローアップを開始する、通知期間が始まったら更新を確認するといった設定です。アプリケーションが明示的に起動するワーカーは、指定された時点でその依頼を提示します。自動起動するものはないため、ワーカーを起動しないアプリケーションは、従来どおりの動作をします。期限が来ても状態は変わらず、何も実行されません。タイマーは依頼を開始するだけで、判断はしません。作業の完了、キャンセル、注釈の追加をタイマーが行うことは拒否され、繰り返しの構文もありません。
-
マーケティングの提案に実行経路はありません。 オプションの MK1 パッケージは、提供されたファネルの観測結果と、人がレビューした提案を記録します。送信、公開、支出は行いません。メールやカレンダーとの連携、およびオーディエンスへの実行機能もありません。メール、カレンダー、マーケティングとの連携はありません。
-
請求機能はありません。 構成要素のどこにも、請求書、支払い、税金、使用量の料金計算、日割り計算、収益認識は存在しません。また、MRR、ARR、TCV は契約データから算出されません。
-
バックアップ、復元、マネージド型のシークレット管理やサービスはありません。 範囲を限定したセルフホスト型のシークレットプロバイダー契約は存在しますが、マネージド型の管理、ローテーション、復旧機能はありません。復旧目標も保証されていません。
-
顧客基盤は CDP ではなく、プロファイルはタイムラインではありません。 すでに存在するレコードを関連付けて投影します。データウェアハウス、ストリーミング、アクティベーションはなく、完全な顧客タイムラインもありません。
-
顧客データのインポートと論理 ID の管理には範囲制限があり、データ運用は不完全です。 プレビュー/適用では、行ごとのレシート、冪等性、決定論的な照合を伴う、サイズ制限付きの JSON 行を扱います。ソースレコードを削除または書き換えることなく、人が正規リンクを決定します。CSV インポーター、物理的な統合、完全なエクスポート/消去、一括編集、保存済みビュー、グローバル検索は提供されません。
tests/customer-data-foundation.test.jsを参照してください。 -
個人データに対応するには、基盤を超えるデプロイ作業が必要です。 アプリケーションに認証機能と、データ主体のデータを完全にエクスポート・消去する機能を実装してください。顧客基盤だけでは、コンプライアンスへの準拠も、実際の顧客データへの適合性も確保されません。 リードスコアリングは決定論的で、バージョン管理され、説明可能です。
-
フレームワークは実行するソースであり、Cloud がホストするのは Blueprint で表現されたものだけです。 このリポジトリには、何かをプロビジョニング、デプロイ、計測するコントロールプレーンは含まれておらず、出力されるのはユーザーが実行するアプリケーションです。マネージド Cloud は別個のプライベートサービスです。Project Blueprint(レコードタイプ、フィールド、承認ゲート)で設定する共有容量上の無料ワークスペースと、カスタムアプリケーションコード用の有料 Dedicated Cell があります。
-
所有権とは、ソースをベンダー化することです。更新が必要なフレームワーク依存関係はありません。
npm create accordo— 公開済みの[email protected]— は、フレームワークのソースをプロジェクトにコピーすることで、起動し、app inspectがvalidを返し、project doctorが終了コード 0 で終了するプロジェクトを生成します。同じブートストラップはチェックアウトからも実行できます(node packages/create-accordo/bin/create-accordo.js <dir> --apply、インストールもネットワーク接続も不要 —tests/project-bootstrap.test.js)。レジストリから提供されるのはスキャフォルダーであり、フレームワークではありません。accordoパッケージは意図的に空の0.0.1名称予約です。フレームワークはプロジェクトにベンダー化されるため、成果物の所有権は完全にユーザーにあります。アップグレードはバージョンを更新するのではなく、変更をマージして行います。
5つのフォルダーで見るアーキテクチャ
packages/core/ the runtime platform: registry, services, workflow engine, audit
packages/modules/ CRM domain primitives
packages/domains/ optional domain packages (contracts, delivery) on a public contract
packages/mcp/ tools and context exposed to coding agents
apps/ API server and generated Admin
エージェントがデータベースのテーブルに書き込むことはありません。サービスメソッドと名前付きワークフローを呼び出し、これらが検証、アクターの識別情報、ポリシー、トレース、監査を維持します — ARCHITECTURE.md。
ドキュメント
| こちらを読む | 対象 |
|---|---|
AGENTS.md | コードを変更する前にエージェントが従うべきルール |
PRODUCT.md | 製品とは何か、何ではないか |
ARCHITECTURE.md | 技術モデルと拡張ルール |
DECISIONS.md | 決定ログ、ADR-001 … ADR-020 |
docs/PROJECT_STATUS.md | リポジトリの現状 |
docs/benchmarks/CRM_JTBD_MATRIX.md | CRM のすべてのジョブ、そのステータスと根拠 |
docs/QUALITY_GATES.md | 対立的レビューのカテゴリを含むレビュー規律 |
docs/strategy/MASTER_PLAN.md | カテゴリ、ポジショニング、ロードマップ、指標 |
docs/strategy/GO_TO_MARKET.md | どのようにユーザーに届けるか、人間による確認が必要な項目 |
ライセンス
MIT。ADR-023 で確認済みです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。