入札エージェント
JOJO Autonomous Brain
Human Out of the Loop — 人間が寝ている間も、勝手に動いて、勝手に賢くなる入札情報AIシステム
Project Overview (プロジェクト概要)
JOJO Autonomous Brain は、日本全国の公共工事入札情報を 24時間無人で収集・分析・配信し、障害が起きても自己修復する自律エージェントシステム です。
- 誰のため: 全国でバラバラな入札ポータルを毎日手作業で巡回している建設業者(約47万社規模)
- 何をする: 全国1,741自治体(直接取得1,445)の入札公告を自動収集 → Claude AIで分析 → メール/X/週次レポート/ガイド記事の4チャネルで自動配信
- どう動く: OODAループ(Observe→Analyze→Act)を中核に、7つのCronジョブ + Watchdogが毎日決まった時刻に自動実行。直近8日間、人間の介入ゼロで連続稼働中
- 進化する: 需要ギャップを自分で検出して記事を自動生成、壊れたスクレイパーをClaude AIが自動修復、直せない場合は人間にエスカレーション
- ランタイム: Next.js 15 / Vercel Cron + GitHub Actions(Claude Code 互換のエージェント群)
┌─────────────────── JOJO Autonomous Brain ───────────────────┐
│ │
│ Observer ──→ Analyzer ──→ Actor │
│ ↑ (Claude) │ │
│ └────── Feedback Loop ────┘ │
│ │
├──────────────────────────────────────────────────────────────┤
│ Scrapers (1,741) │ Email Alerts │ SNS Auto-Post │
│ Content Gen │ DIO Watchdog │ Weekly Reports │
│ Self-Healing │ Health Check │ Brain Cycle │
└──────────────────────────────────────────────────────────────┘
3軸評価
1. 稼働性 — 止まらない
| 仕組み | 概要 |
|---|---|
| Vercel Cron | 7つのCronジョブが毎日決まった時刻に自動実行 |
| DIO Watchdog | GitHub Actions障害の自動検知・リトライ・エスカレーション |
| Health Check | DB/LP/品質スコアの死活監視 + メール通知 |
| Brain Cycle | 全サブシステムのメトリクス自動収集 |
設計: 365日無人で回り続ける構成。実績: 直近8日間、人間の介入ゼロで連続稼働中。
Cronスケジュール (JST):
02:00 JST sync-bids KKJ API + 県スクレイパー同期
03:00 JST brain-cycle 全サブシステム観測 → Claude分析 → 自律対応
04:00 JST heal-scrapers 壊れたスクレイパーの自動診断・修復
05:00 JST content-evolve 需要ギャップ分析 → 記事自動生成 (月/木)
08:00 JST weekly-report 週次マーケットレポート自動生成 (日曜)
09:30 JST send-alerts メールアラート配信 (平日)
10:00 JST health-check 死活監視 + 異常時メール通知
+ DIO Watchdog (GitHub Actions障害監視, 別ランタイム)
2. 進化性 — 勝手に賢くなる
進化ループ 1: コンテンツ自動最適化
入札データ (44,903件/今年度) → 業種別需要分析 (8業種) → ガイド記事カバレッジ分析
→ ギャップスコア算出 → 高需要・低カバレッジの記事を Brain が自己決定して生成
→ BrainDecision に判断理由を記録
実データ例 (業種別需要ギャップ):
- その他: 6,578件 / 建築: 4,708件 / コンサル: 1,938件 / 役務: 1,366件 / 設備: 1,037件
- 既存170本を土台に、Brainが不足領域を検出して 9本を追加生成(本数ではなく「何を書くか自分で決めた」点が進化性)
進化ループ 2: スクレイパー自己修復
スクレイパー障害検知 → 対象サイトHTML取得 → Claude DOM分析
→ 新CSSセレクタ提案 → cheerioでテスト → 修復結果を記録
実績: 成功1件 + エスカレーション1件
- 北海道庁:
table.bid-list(旧) →article h2 a(新) を自動提案 → 5件抽出成功 - 兵庫県: 構造変更を診断したが「複雑すぎて自動修復不可」と判断 → 人間にエスカレーション
- 本質は成功率ではなく、「直す / 止めず人へ渡す」の判断ループまで自動化したこと
全判断のログ
すべての自律判断は BrainDecision テーブルに記録(人間が個別指示せず Brain がログから検出):
- subsystem: どのサブシステムが判断したか
- phase: observe / analyze / act
- reasoning: なぜその判断をしたか
- confidence: 確信度 (0.0-1.0)
- outcome: 結果
累計実績: 自律判断 143件(OODA: 観測75 / 分析23 / 実行45)/ インサイト検出 57件 / 観測メトリクス 295点
3. 事業性 — 刺さる課題を解く
| 指標 | 数値 |
|---|---|
| スクレイパー対象 | 全国1,741自治体 / 直接取得 1,445 (83.0%) |
| 入札データ蓄積 | 44,903件 (今年度) |
| ガイド記事 | 既存 170本 + Brain自己決定生成 9本 |
| メールアラート | 平日毎朝自動配信 |
| SNS投稿 | X(Twitter)に自動投稿 (平日9時/金曜17時/日曜8時) |
解いている課題:
日本の建設業者(約47万社規模)は、発注機関ごとにバラバラな入札情報を毎日手動で巡回しています。1社が週2時間巡回するなら年約100時間、複数自治体を追う社は数百時間規模。本システムは全国の入札情報を一元収集・AI分析し、メール/SNSで自動配信することでこの情報収集コストを削減します。
基本機能は無料提供。高度な分析機能を備えた有料プランも提供予定です。
Tech Stack
- Framework: Next.js 15 (App Router) + React 19 + TypeScript
- Database: PostgreSQL (Neon) + Prisma ORM
- AI: Anthropic Claude Haiku (入札分析・記事生成・スクレイパー修復)
- Hosting: Vercel (Cron Jobs)
- Scraping: Cheerio (Group A) + Playwright (Group B)
- Email: Resend (Magic Link認証 + アラート配信)
- SNS: X API v2 (OAuth 1.0a)
- CI/CD: GitHub Actions (スクレイパー実行 + DIO Watchdog)
Architecture
jojo-agents/
├── lib/brain/ # Autonomous Brain Core (OODAループ中核)
│ ├── types.ts # 型定義
│ ├── logger.ts # 判断・メトリクス・インサイトのDB記録
│ ├── observer.ts # 5サブシステムのメトリクス自動収集
│ ├── analyzer.ts # Claude分析 (パターン検出・異常検知)
│ ├── actor.ts # インサイトへの自動対応
│ ├── content-evolution.ts # 需要分析→記事自動生成
│ ├── scraper-healer.ts # スクレイパー自己修復エンジン
│ └── index.ts # Brain Cycle統合
├── lib/pref/scrapers/ # 1,741自治体スクレイパー
├── lib/alerts/ # メールアラートシステム
├── lib/social/ # SNS自動投稿
├── lib/enrich/ # AI入札エンリッチメント
├── lib/tonio/ # DIO Watchdog (障害監視)
├── lib/guide/ # ガイド記事生成
├── app/api/cron/ # Cronエンドポイント群
│ ├── brain-cycle/ # Brain Cycle (毎日)
│ ├── brain-content-evolve/ # コンテンツ進化 (月/木)
│ ├── brain-heal-scrapers/ # スクレイパー修復 (毎日)
│ └── ...
├── app/api/brain/ # ダッシュボードAPI (stats / timeline)
├── app/admin/brain/ # 進化ダッシュボード
└── prisma/schema.prisma # DB Schema (BrainDecision/Metric/Insight含む)
DB Models (Brain)
model BrainDecision {
subsystem String // scraper | content | alert | social | watchdog | brain
phase String // observe | analyze | act
reasoning String // 判断理由
action String // 実行アクション
outcome String? // 結果
confidence Float // 確信度
}
model BrainMetric {
subsystem String // サブシステム名
metric String // メトリクス名
value Float // 数値
unit String? // count | percent | ms | yen
}
model BrainInsight {
type String // pattern | anomaly | opportunity | healing
title String
description String
evidence String // JSON
actionTaken String?
status String // discovered | acted | measured | archived
}
Setup
npm install
cp .env.example .env.local # 環境変数を設定 (DB / Anthropic / Resend / Auth など)
npx prisma db push # DBスキーマ反映
npm run dev # http://localhost:3100
主要な環境変数は .env.example を参照(DATABASE_URL / ANTHROPIC_API_KEY / RESEND_API_KEY / AUTH_SECRET / CRON_SECRET など。値は各自で取得)。
Cost
運用原価 約 ¥4,880/月(Vercel + Neon + Claude API + Resend / GitHub Actions)。追加人件費ゼロ。販売価格は別途(Pro想定 ¥9,800〜)。
License
© JOJO's Company. 本リポジトリはコンテスト提出・コミュニティ共有を目的に公開しています。
閲覧・学習・検証は自由です。商用利用・再配布はポータル利用規約に従ってください。