Skip to main content
Glama

NCE — Neuro-Cognitive Engine

AIエージェント向けのマルチテナントメモリおよび推論基盤であり、その上に構築された一連のビジネスエンジンを備えています。

ビジネスを運営するエージェントは物事を記憶する必要があり、そのメモリは正しくなければなりません。つまり、適切なテナントにスコープされ、出典に帰属でき、静かに破損することが不可能である必要があります。NCEはそれを提供するレイヤーであり、さらにそれを利用する垂直エンジン(procurement、sales、project、economy、inventoryなど)も提供します。

Postgres、MongoDB、Redis、MinIO上にPythonで構築されています。MCP(JSON-RPC 2.0)およびREST経由で公開されています。


実際に存在するもの

Python in nce/

103,762行

テストファイル数

391

登録済みMCPツール

115

データベースマイグレーション

48

mainブランチにコードがある垂直エンジン

11

ドキュメントページ

114 — こちらで読む

アーキテクチャ決定記録

8

プルリクエストあたりのCIジョブ数

5

数値はツリーからカウントされたものであり、推定ではありません。ツール数はテスト(tests/test_tool_registry.py)によってアサートされているため、ビルドに失敗することなく現実から乖離することはありません。


Related MCP server: Memclaw

注目すべき部分

テナント分離はデータベースによって強制され、慣習によるものではありません。 すべてのテナントスコープのテーブルは、namespace_idに対するポリシーを持つENABLE + FORCE ROW LEVEL SECURITYを保持します。アプリケーションコードはさらに明示的にフィルタリングします。なぜなら、スーパーユーザー接続はFORCE RLSをバイパスし、これを忘れたテストは何も証明しないからです。tests/test_rls_catalog.pyは、テナントテーブルが登録されずに追加された場合、ビルドを失敗させます。

書き込み権限はデフォルトで拒否されます。 エンジンは互いのデータを書き込みません。nce/config_data/node-ownership.jsonは(node_type, transition) → owning engineをマッピングし、assert_ownerは書き込みサイトで登録されていないものを拒否します。所有権はノードごとだけでなく、トランジションごとに設定できます。発注書ラインのORDEREDステータスはProcurementに属し、DELIVEREDはWarehouseに、INSTALLEDはField Techに属し、同じガードがこれらすべてを表現します。

監査ログはデータベースレベルで追加専用です。 event_logはWORMトリガーを持ちます。UPDATEとDELETEは単に回避されるのではなく、取り消されています。

自律性は制限されています。 ワールド書き込みツールはデフォルトで人間確認のみに設定され、冪等性キーを持ち、監査ログに記録されます。値と数量の上限、許可リスト、およびキルスイッチがそれらの前に配置されています。アクションの再生は2回目の書き込みではなく、ノーオペレーションになります。

金額とコストは外部に出ることはありません。 許可リストベースのフィールドプロジェクター(project(node, surface))は、外部サーフェスに到達するものを制御します。マージンとコストはどの許可リストにも含まれません。

生成されたテキストはグラウンディングされます。 散文は、グラフ内の既存の事実から組み立てられ、各主張はそれが由来するノードにリンクされ、自由に生成して後からチェックするのではありません。

データは2つのシステムから同時に取得できます。 名前空間ごとのリゾルバーが、特定の関数がDynamics 365から読み取るか、NCEから読み取るか、またはその両方から読み取るかを決定し、両者が一致しない場合に発散を記録します。これにより、移行をコミットする前に測定することができます。


垂直エンジン

11のエンジンがmainにコードを持っています。それぞれが独自のテーブル、独自のノードタイプ、および他のエンジンとの文書化された境界を持っています。

procurement · product · agreements · vendors · sales · system_design · project · economy · inventory · dynamics365 · diagnostics

エンジンスイートは17が計画されています。段階的に構築されており、完成していません。以下のステータスを参照してください。


構築方法

エンジンスイートは一度に手作業で書かれているわけではありません。229の小さなユニット(各ユニットが1つの関心事、それぞれ独自のブランチとコミット)のシーケンスとして構築されており、各ユニットは受け入れられる前に独立した敵対的レビューを通過します。

レビューはコードを書いたものとは異なるモデルインスタンスによって行われ、それを壊そうと試み、不確かな場合は拒否をデフォルトとするよう具体的に指示されています。これが繰り返し重要であることが証明されています:

  • 在庫移動の変更が、権威トランザクション内で書かれたグラフプロジェクションとともに出荷されました。同じ2つの場所間の双方向トラフィックで、100%の試行でデッドロックが発生しました。リントは通過し、型は通過し、テストスイートはグリーンでした。レビューで発見され、修正は行の書き込みとプロジェクションの両方を正規のキーで順序付けることでした。

  • イベントバスの変更により、ハンドラーが例外を発生させる代わりにログに記録して返したため、イベントが正常に公開されたとマークされつつ、静かにドロップされることになりました。レビューは何かが出荷される前に2回拒否しました。

  • 10進数の精度ルールをアサートするテストは、ルールが適用されているかどうかに関係なく同一にパスすることが判明しました。なぜなら、その唯一のフィクスチャが両方のパスで同じように丸められたからです。

繰り返し学んだ教訓は、グリーンのテストスイートは見かけほど意味がないということです。失敗する特性は、通常、ドキュメント文字列が最も自信を持って主張し、実際にテストが識別しないものです。


実行方法

cp .env.example .env          # fill in the values
make local-up                 # Postgres, MongoDB, Redis, MinIO via docker compose
make lint typecheck           # ruff + mypy
pytest -m "not integration"   # unit tests, no database required
pytest -m integration         # requires the stack above

統合テストは、データベースに到達できない場合、失敗するのではなくスキップします。テストがスキップされた状態でグリーンの終了コードは、合格した実行を示しません — カウントを確認してください。


ドキュメント

完全なドキュメントは**sindrehaugen.github.io/neuro-cognitive-engine**で公開されています — アーキテクチャ、8つのアーキテクチャ決定記録、エンジンごとの管理者およびユーザーガイド、共有コアリファレンス、MCPツールクックブックです。

以下から始めることをお勧めします:


レイアウト

nce/                    engine core: memory, graph, RLS, autonomy, signing, replay
nce/vertical_modules/   the business engines
nce/migrations/         idempotent SQL, re-applied on boot under an advisory lock
tests/                  391 files; integration tests marked and CI-wired
docs/                   source for the published documentation
go/                     launcher and hardware detection
trimcp-infra/           Terraform for AWS and GCP
deploy/                 compose stacks and container images

ステータス

活発に開発中です。17のエンジンのうち11がmainにコードを持っています。12番目は進行中です。コア基盤(テナント分離、所有権、自律性ガバナンス、監査ログ、署名、再生)は完成しており、その上のエンジンで使用されています。

このリポジトリはアーキテクチャとエンジニアリングアプローチを示すために公開されています。パッケージ化された製品ではなく、サポートの義務はありません。


ライセンス

プロプライエタリ。全著作権所有。レビュー用に公開されています。再利用のライセンスはありません。


Sindre Løvlie Haugen · github.com/sindrehaugen

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with operational customer context, including typed revenue objects, persistent state, scoped tools, and human-in-the-loop handoffs through MCP, REST, and CLI.
    15 npm
    13
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Governed shared memory platform for AI agents and agent fleets. Provides persistent memory, cross-agent knowledge sharing, permissions, audit trails, and multi-tenant isolation through a Model Context Protocol (MCP) server.
    4 npm
    549
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP-native agentic platform orchestrating planner/executor/critic agents over hybrid RAG with three-tier memory, budget enforcement, safety guardrails, and full observability. It exposes all capabilities as MCP tools, enabling natural-language control of document ingestion, retrieval-augmented generation, and multi-step AI workflows.
    MIT