プログラミング
Datamimic – コーディングエージェントに独自のテストワールドをinventさせない
Datamimic – don't let your coding agent invent its own test world (github.com)
要約
Datamimicは、規制産業向けのテストデータを生成・匿名化するためのオープンソースのPythonネイティブツールです。CE版はスタンドアロンで利用可能で、決定論的な合成データ生成とPII(個人識別情報)を考慮した匿名化を提供します。エンタープライズプラットフォーム版は、ワークフロー管理、PIIスキャン、監査ログなどの機能を追加し、AIエージェントとの連携もサポートします。
全文翻訳
DATAMIMIC — 規制産業向けの管理されたテストデータ
このリポジトリには、DATAMIMIC Community Edition (CE) が含まれています。MITライセンス、Pythonネイティブ、MCP対応です。CEは、決定論的な合成データ生成とPIIを考慮した匿名化のためにスタンドアロンで完全に利用可能です。エンタープライズプラットフォームは、管理されたワークフロー、PIIスキャン、ロールベースアクセス、監査ログ、スケジューリング、マルチシステム実行、および規制産業が必要とする完全な運用レイヤーを追加します。
👉 エンタープライズプラットフォーム: datamimic.io | 📘 ドキュメント: docs.datamimic.io | 📅 戦略コールを予約: datamimic.io/contact
🤖 AIエージェント? AGENTS.mdから始めて、プロジェクトCLIを使用してください: 新しいインテントをmodel.dm.jsonとして保存し、初期の最善の試みを datamimic scaffold ... --format json 経由で提出し、構造化された問題から修復し、規定された要件ごとに期待値を宣言し、verified=trueで停止します。既存の生のXMLは、lintと制限付きのdry-runを使用します。
DATAMIMICとは?
DATAMIMIC CEは、DATAMIMICエンタープライズプラットフォームの中核となるオープンソースの決定論的データエンジンです。ローカル、CI、またはエージェント駆動のワークフローで、合成データ生成とPIIを考慮した匿名化のためにスタンドアロンで利用可能です。エンタープライズプラットフォームは、規制産業が本番スケールのテストデータ運用に必要とする管理ワークフロー、スキャナー、ダッシュボード、実行レイヤーを追加します。
CE (このリポジトリ) で利用可能:
完全に合成された決定論的なデータセットを生成 — モデル駆動型、ソースデータ不要
ステージング/QAのエクスポートを匿名化 — 決定論的(シードあり)またはプライバシー最大化(シードなし)フィールド変換;PIIフィールドはXMLパイプラインで手動で特定およびモデル化
PostgreSQL · MySQL · Oracle · MS SQL · SQLite · MongoDB · CSV · JSON · XML · XLSX · DbUnit · 固定幅 (.fcw) に対して単一システムパイプラインを実行
モデルの振る舞い — 重み付き状態機械、複合マルチフィールド参照、制御フロー(<while>, <assert>)、ステージング集計のためのスクリプト可能なmemstore
プロビナンスを出力 — 追加専用実行ログと監査再実行のための出力ごとのコンテンツハッシュ
エージェントをガイド — 機械可読の機能、段階的な参照クエリ、および1つの正規CLI scaffoldトランザクション;オプションのMCPアダプターは同じオーサリングサービスを公開します
エンタープライズプラットフォームが追加するもの:
PIIスキャナー — DataWorkbenchを介した設定可能な閾値を持つ確率スコア付きフィールド検出
マルチシステム実行 — Oracle / MongoDB / Kafka を参照整合性を持つ協調ワークフローで実行
業界メッセージテンプレート — EDIFACT / SWIFT MT / HL7 v2.x / HL7 FHIR を決定論的なテスト/トレーニング成果物として生成
ガバナンスレイヤー — ロールベースダッシュボード、監査証跡、承認フロー、再利用可能なエンタープライズテンプレート、スケジューラ
パフォーマンスコア — Rust fastpath、複雑な分布のためのML/自己回帰エンジン、キーセットとマニフェスト構築、最適化された分散実行
オンプレミス / エアギャップデプロイ — podman-compose または Helm、コンサルティング主導のロールアウト付き
規制されたEUの銀行環境で、Oracle、MongoDB、Kafkaパイプライン全体で決定論的なテストデータとして展開されています。NDAの下で参照顧客あり — datamimic.ioのケーススタディも参照してください。
AIエージェント: データモデルをオーサリング、検証、実行する
CLIはベースラインのエージェント契約です。pip install datamimic-ce でCEをインストールします。このチェックアウト内では、.venv/bin/datamimic を使用して、古いグローバルインストールが利用可能なスキーマやコマンドを変更できないようにします。
CLIツールが必要
Contract
ライブの構造的サーフェスであるdatamimicの機能を発見します。
デフォルトでコンパクトな機械可読JSONインデックス。完全なマニフェストの場合は --full、1つのセクションの場合は --section <name>。
インテントモデルを段階的に学習します。
datamimic reference authoring、次に datamimic reference authoring --category <category> --kind <kind>。
クエリカタログから始め、必要な型指定されたフラグメントのみをロードします。
新しいモデルをオーサリングします。
model.dm.json を保存します。datamimic scaffold model.dm.json --format json を実行します。
変更ごとのコンパイル/lint/bounded-run/acceptanceトランザクション。verified=trueで停止します。生成されたXMLは実行時の出力です。
既存の生のXMLで作業します。
datamimic lint model.xml --format json、次に datamimic dry-run model.xml --format json。
診断を修正し、制限付きサンプルをインテントのために検査し、実際の実行が要求された場合にのみ datamimic run model.xml を使用します。
DSLの詳細を見つけます。
datamimic reference overview、次に狭い参照トピック/名前。
要素、ジェネレータ、スコープ、分布、またはルールを推測する代わりに、ライブモデルとルールレジストリをクエリします。
--format json で表示される機能、オーサリング参照プロジェクション、およびコマンドは機械可読JSONを返します。
scaffoldの試行が失敗した場合、構造化された検証問題、型指定された修復、またはルール診断を使用してmodel.dm.jsonを変更してから再試行します。型指定されたmax_countの修復は、制限付きscaffoldパラメータを報告された最小値以上に変更するだけです。同じ失敗した呼び出しを繰り返さないでください。成功したscaffold結果はオーサリングの終端であるため、生成されたXMLを再度lintまたはdry-runしないでください。
Exactソースフラグメントは、--category source --kind memstore のようなクエリを通じて発見可能です。
オプションのMCPアダプター
呼び出し環境が既にDATAMIMIC MCPツールを公開している場合、それらは同じ正規契約と実装にマッピングされます: reference → datamimic_reference, scaffold → datamimic_scaffold, lint → datamimic_check, and dry-run → datamimic_run。
アダプターはpip install "datamimic-ce[mcp]" でインストールします。登録詳細はMCPクイックスタートに記載し、オーサリングワークフローには含めないでください。アダプターは、参照、scaffold、check、およびbounded-runの4つの正規操作のみを意図的に公開します。ドメイン生成は、Python/CLI機能のままであり、並列MCPオーサリングパスではありません。
エージェントに貼り付けるプロンプト
新しいモデルをオーサリングして検証する
私が説明するデータセットをDATAMIMICで作成してください。最初にAGENTS.mdを読んでください。リポジトリのチェックアウト内では.venv/bin/datamimicを使用します。それ以外の場合は、現在のdatamimic CLIを使用します。私のインテントをmodel.dm.jsonとして保存してください。XMLを手書きしないでください。AGENTS.mdの最小有効ドキュメント形状(「新しいモデルのオーサリング」)から始めてください。2つのルールがほとんどのリジェクトを防ぎます:トップレベルはversion, seed, products, expectationsのみを許可します。製品レベルの「kind」(generated/source/time_series)は、フィールドレベルの「kind」(increment, values, weighted, int_range, decimal_range, pattern, constant, script)とは異なる語彙です。範囲フィールドはmin/maxではなく、minimum/maximumを取ります。早期に提出してください:発見コールを最大1回行った後、最善の試みで `datamimic scaffold model.dm.json --format json` を実行します。構造化された問題(path/code/message/allowed_fields)と診断(fix_hint)から修復してください — これらは発見よりもスキーマを速く教えます。変更されていないドキュメントを再送信しないでください。修復がより大きなmax_countを要求する場合、インテントを変更せずに少なくともその値でscaffoldを再試行してください。私が述べるすべての要件に対して期待値を宣言してください(「count」フィールドを持つexact_count、一意性、許可される値、範囲、外部キーとしてカウントされます) — verified=trueは宣言したことのみを証明します。verified=trueで停止してください。生成されたXMLをlintまたはdry-runしないでください。実際の実行を要求された場合、返されたXMLを生成された成果物として保存し、その記述子を実行してください。model.dm.jsonパスと簡潔な検証証拠を返してください。
参照整合性を持つリレーショナル階層(完全サポート — XML不要)
参照整合性を持つリレーショナルデータセットをシードします:4人の顧客、それぞれにちょうど2つの注文があります。顧客にはインクリメントする一意のIDと {north, south, east, west} からの地域が与えられます。各注文は、REAL親顧客IDを外部キーとして持ち、10.0から500.0の間の金額を持ちます。AGENTS.mdの「新しいモデルのオーサリング」とその構造レシピに従ってください:注文は顧客製品の「children」配列内にネストされます。FKフィールドは `{