コンテンツにスキップ

AutonoMath architecture — Pre-computed Reasoning Layer

公開日: 2026-05-06 / 運営: Bookyou株式会社 (T8010001213708)

AutonoMath は「LLM に投げる前に答えが構造化されている」ことを最優先にした設計です。 ここでは内部の 4-Layer architecture と、5 つの moat (堀) を共有します。


なぜ Pre-computed Reasoning Layer なのか

LLM が日本制度に弱い根本原因は 3 つ:

  1. データが散らかっている — 47 都道府県 + 各省庁 + 公庫 + 国税庁、ぜんぶ別ポータル + PDF
  2. ライセンスが曖昧 — 「再配布可?」を一次資料まで遡らないと判定できない
  3. 構造化されていない — 要綱の脚注に書いてある「併用したら失格」を機械可読にする工程がない

LLM プロンプトでこれを毎回解くのは無駄。事前に構造化して SQLite に焼く のが AutonoMath です。


4-Layer Architecture (L0-L4)

L0: Primary Sources (各省庁 / 都道府県 / 公庫 / 国税庁)

  • 一次資料 URL + 取得時刻つき (99%+ 行をカバー)
  • アグリゲータ (noukaweb / hojyokin-portal / biz.stayway) は 禁止 — 過去に詐欺リスクを生んだ
  • 出典が「いつ最後に取れたか」を source_fetched_at で正直に保持 (「最終更新」と詐称しない)

L1: Ingest + Canonicalization

scripts/ingest/ 配下:

  • prefecture_walker (47 都道府県を 7-rung walk)
  • 国税庁適格事業者 (PDL v1.0、API 再配布可)
  • e-Gov 法令 API (CC-BY、9,484 rows)
  • MAFF / METI / 公庫の各種 batch DL

各 row に unified_id (ハッシュ + 正規化) を付与し、下流の cross-dataset glue を可能に。

L2: SQLite + FTS5 + sqlite-vec

  • data/jpintel.db (188 MB) — programs / case_studies / loan_programs / enforcement / laws / tax_rulesets / invoice_registrants
  • autonomath.db (7.36 GB, read-only) — entity-fact EAV (424,054 entities + 5.26M facts + 23,805 relations + 335k aliases)
  • FTS5 trigram tokenizer で日本語形態素境界をスキップ (税額控除税|額|控|除 の trigram で hit)
  • sqlite-vec で意味的類似 (5 段階 tier vec index)
  • ATTACH しない: 2 DB を分離保持し JOIN は app 側で
  • レプリカ: snapshot を Fly volumes + S3 で 7 日 + 30 日保持

L3: Reasoning Glue (181 排他ルール + cross-dataset)

  • 35 hand-seeded ルール (農業 22 + 非農業 13) + 146 auto-extracted (要綱 PDF から)
  • 3-axis loan risk: 担保 / 個人保証人 / 第三者保証人 を独立 enum に分解 (free-text 単一化禁止)
  • cross-dataset glue tools: trace_program_to_law / find_cases_by_law / combined_compliance_check

L4: API + MCP Surface

  • FastAPI (REST) — /v1/* Stripe metered billing 連携
  • FastMCP (stdio) — 55 tools (38 core + 17 autonomath, protocol 2025-06-18)
  • 静的サイト — Cloudflare Pages、site/programs/ 以下に SEO-page を 13,578 件生成
  • llms-full.txt — LLM crawler 用 canonical document (~ 2.2 MiB、月次再生成)

5 つの moat (堀)

Moat 1: Time depth (時間深度)

  • am_amendment_snapshot (14,596 rows) で 過去のある日に何が active だったか を再構成可
  • VC / 監査の use case (「契約締結日に有効だった措置法は何か」)

Moat 2: Curation (キュレーション)

  • 181 排他ルールは要綱読解の人手作業の結晶
  • tier='X' (quarantine) と excluded=1 (hard delete) の二段制で詐欺ソースを物理排除

Moat 3: Customer (顧客面)

  • 5 audience 設計 (税理士 / 行政書士 / SMB / VC / Dev) — DPA も seat fee もなし、self-serve
  • ¥3/req 完全従量 + 匿名 50/月 free → 個人事業主から AI agent dev まで同じ価格モデルで取り込める

Moat 4: Regulatory (規制対応)

  • インボイス + 電帳法 ruleset 35 rows + 国税庁適格事業者 13,801 rows (PDL v1.0、API 再配布可)
  • 法令出典 (e-Gov CC-BY) を保持 → 二次再配布が法的に clean
  • DM / cold outreach 一切なし → 景表法 / 特商法 / 個情法に sales-team を介在させない

Moat 5: Breadth (幅)

  • 補助金・融資・税制・認定・採択・処分・法令・判例・入札・適格請求書・税制ruleset の 11 軸 を 1 query で横断
  • 1 軸特化型 SaaS と比べて、1 client から取れる use case の本数が違う

tech stack 一覧

Layer 技術
Ingest Python 3.11 / Playwright / httpx / SQLite
Storage SQLite + FTS5 (trigram) + sqlite-vec
API FastAPI / Pydantic / Stripe
MCP FastMCP (stdio, protocol 2025-06-18)
Hosting Fly.io Tokyo (api.autonomath.ai) + Cloudflare Pages (autonomath.ai)
Docs MkDocs Material
Billing Stripe Metered (¥3/req tax-excl) + 匿名 IP-based rate limit (JST 月初リセット)

なぜ SQLite を選んだか

  • single-file replication — Fly volumes / S3 / Cloudflare R2 で 1 file コピー 1 行
  • read-heavy + small writes — 月次 ingest + 24h 配信、用途と一致
  • FTS5 trigram + sqlite-vec が最初から bundled、別 search engine 不要
  • ¥0 fixed cost — Postgres / OpenSearch を立てれば月 ¥3 万、SQLite なら 0 円
  • 100% organic acquisition + solo + zero-touch には fixed cost ゼロが必須条件

なぜ自前 LLM 推論を呼ばないか

これは AutonoMath の 負けない設計 の核心です。

  • 顧客側で推論する (Claude / Cursor / ChatGPT)
  • AutonoMath は構造化データだけ返す — Anthropic API も OpenAI API も呼ばない
  • 我々が ¥0.5/req で API call すれば、¥3/req の単価では即赤字
  • 構造化済みデータを返せば、顧客は ¥3 + 顧客自身の LLM 課金 で完結

次のステップ

質問・要望は [email protected] または GitHub issues へ。


© 2026 Bookyou株式会社 (T8010001213708) · [email protected] · AutonoMath