投稿する

ECサイト自動運営システム

輸入無在庫販売ECの24時間完全無人運営を実現する、HOOTL(Human Out of The Loop)準拠の自律型エージェントシステムです。商品発掘から著作権審査、商品説明文の生成・校閲、価格最適化、出品、顧客対応まで、一連の運営フローを12種の専門エージェントが連鎖的に実行します。 特徴は、AI自身が運営データを分析して自身のパラメータやプロンプトを改善する「自己進化型アーキテクチャ」です。三層構造のスキル定義と自動ロールバック機構を備えた四層の安全防御により、人間が介入することなく、安全かつ継続的な事業成長を自動で追求し続けることが可能です。 主にShopify等を利用したEC運営の完全自動化や、AIエージェントによる自律的なワークフロー構築の高度なリファレンスとして活用できます。
zip未取得

ec-ops — 輸入無在庫販売 EC 自動運営システム

テーマ: HOOTL(Human Out of The Loop) — 人間介在なしで 24h 自動運営

プロジェクト: .AI 自動運転部 水曜日チーム

フェーズ: Phase 1 完了(533テスト PASS / 2026-05-15)

HOOTL: 人間の介在を最小化し、AI が自律的に事業運営・自己改善するシステム。
人間が関与するのは kill switch / KPI 設定 / 閾値変更 / 事後監査 の 4 種のみ。

---

アーキテクチャ(5層構造)

層パス役割
L4improvement/HOOTL 改善層 — 自動マージ・6層検証・段階展開・ロールバック
L3src/db/ + src/common/中央 DB(SQLite + FTS5)・repository・common 基盤
L2agents/{name}/10 LLM エージェント — AgentRunner 経由 claude -p 統一起動
L1src/runner.pyAPScheduler + chain 駆動ワークフロー管理
L0tools/{name}/CLI 7 種 — 外部 API・ショップ操作の最小単位

設計書: ADR-002 / docs/02_アーキテクチャ/

---

業務エージェント(L2: AgentRunner 経由 claude -p)

各エージェントは agents/{name}/agent.md を読み込み、AgentRunner 経由で claude -p --add-dir を起動する。

エージェント役割トリガーイベント
guardrail著作権・商標チェックschedule.compliance_scan / scout.completed / chain_pick.picked
description商品タイトル・説明文生成(日本語)guardrail.completed
description_reviewer説明文品質レビュー(PASS / FAIL)description.completed
site_opsショップサイトへの商品登録・更新・再生成description-reviewer.approved / site-reviewer.failed
site_reviewer掲載後サイトビジュアルレビューsite-ops.listed
vision_qa商品画像 QA(画像品質チェック)site-ops.listed
csGmail 問い合わせ受信→分類→返信ドラフト生成外部 Gmail トリガー
cs_reviewerCS 返信品質レビュー・Halt 判定cs.reply_ready
audit_evaluator改善提案の評価・監査daily.trigger / schedule.discontinued_check
applier改善提案の自動適用(三層構造保護機構込み)audit-evaluator.proposal_ready
audit_evaluator / applier は L4 HOOTL 改善層のエージェント。
scout / chain_pick / inventory_sync は task-820 で LLM-Free ジョブへ移行完了。

---

LLM-Free ジョブ(jobs/{name}/job.py 直接起動)

LLM を使用しない高頻度・決定論的処理は jobs/{name}/job.py として独立させ、

JOB_TRIGGERS 経由で直接 Popen 起動する(AgentRunner を経由しない)。

ジョブ役割トリガーイベント
scoutCJDrop API で商品発掘・スコアリング(決定論的)schedule.daily_scout
chain_pickDB から出品候補を定期選定schedule.chain_pick
inventory_syncCJDrop API から在庫・コストを定期取込schedule.inventory_sync
pricing競合価格調査 → 価格調整(7ルール数式)schedule.daily_pricing / scout.completed
pricing_full週次全件再評価schedule.full_repricing

---

エージェント三層構造(agent.md / .claude/skills/{name}-toolkit/SKILL.md / skill_refs)

LLM 品質を長期維持するため、各エージェントの知識を 3 層に分離する。

agents/{name}/
├── agent.md                        # 実行プロンプト定義(AgentRunner が読み込む)
├── manifest.yaml                   # エージェント設定(必須ファイル・保護セクション定義)
├── .claude/
│   └── skills/
│       └── {name}-toolkit/
│           └── SKILL.md            # スキル定義(LOCKED/EDITABLE セクション、Claude Code auto-discover)
├── skill_refs/                     # 参照スキル群(criteria / checklist / persona 等、.claude/ 外)
│   ├── criteria.md
│   ├── checklist.md
│   └── ...
└── scripts/                        # fetch_*.py / save_result.py(DB アクセス層)
層対象更新権限更新頻度
SKILL.md LOCKED セクション役割定義・禁止事項・基本動作人間のみ四半期レビュー
SKILL.md EDITABLE セクション評価基準・チェック項目L4 AUTO月次(上限 4 回)
skill_refs/参照ガイドライン・ペルソナL4 AUTO月次(上限 2 回)

SKILL.md の LOCKED / EDITABLE マーカー: <!-- LOCKED: section=xxx --> / <!-- /LOCKED -->

詳細: 三層構造アーキテクチャ設計書

---

四層防御(自動変更の安全保護)

L4 HOOTL 改善層がエージェントを自動改変する際の安全機構。

層チェック内容タイミング
第1層LOCKED セクション改変検出pre-commit / applier 実行時
第2層EDITABLE セクション長変化(上限 %)applier 実行時
第3層manifest.yaml 整合性(required_files / references)applier 実行時
第4層delta_max 超過(improvement.yaml) + git pre-push 再検証pre-commit / pre-push

git hook インストール:

bash scripts/install-hooks.sh

---

CLI 7 種(L0: tools)

CLI担当領域
cjcliCJDrop API(商品検索・在庫・注文連携)
shopcliショップサイト操作(商品ページ作成・更新)
ecopscliEC 全体オペレーション制御(ルーティング・kill switch)
guardcliガードレール操作(著作権・商標チェック実行)
eventcliworkflow_events 送受信(chain trigger 管理)
reportcliレポート生成・出力
pricecli競合価格取得(Yahoo!ショッピング API 経由)

各 CLI は独立した pyproject.toml を持ち、tools/{name}/ で管理。

---

フォルダ構成

ec-ops/
├── agents/                    # L2: 10 LLM エージェント
│   └── {name}/
│       ├── agent.md           # 実行プロンプト(AgentRunner が読み込む)
│       ├── manifest.yaml      # エージェント設定
│       ├── .claude/
│       │   └── skills/
│       │       └── {name}-toolkit/
│       │           └── SKILL.md   # スキル定義(Claude Code auto-discover)
│       ├── skill_refs/        # 参照スキル群(.claude/ 外)
│       └── scripts/           # fetch_*.py / save_result.py
│
├── jobs/                      # LLM-free ジョブ(5 種)
│   └── {name}/
│       └── job.py
│
├── src/                       # L1: ワークフロー管理
│   ├── runner.py              # APScheduler + エントリポイント
│   ├── chain_runner.py        # AGENT_TRIGGERS / JOB_TRIGGERS レジストリ
│   └── db/                   # DB スキーマ・repository
│
├── lib/                       # 共通ライブラリ
│   └── agent_framework.py     # AgentRunner / ClaudeRunner / ChainEmitter
│
├── improvement/               # L4: HOOTL 改善層
│   ├── engine.py              # ImprovementEngine
│   └── ...
│
├── tools/                     # L0: CLI 7 種
│   └── {name}/
│       ├── pyproject.toml
│       └── {name}/            # CLI 実装
│
├── docs/                      # 設計ドキュメント
│   ├── 02_アーキテクチャ/
│   ├── 03_設計/
│   ├── 06_意思決定/           # ADR(ADR-002 等)
│   └── architecture/          # 三層構造・runner-framework 設計書
│
├── migrations/                # DB マイグレーション
├── tests/                     # 統合テスト
├── config/                    # システム設定(system.yaml 等)
├── secrets/                   # 認証情報(git 管理外)
├── docker-compose.yml         # runner + urium-server 2コンテナ構成
└── pyproject.toml             # プロジェクト設定・依存関係

---

セットアップ

開発環境(ローカル)

# 依存関係インストール(uv 推奨)
uv sync

# または pip
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

# git hook インストール(四層防御有効化)
bash scripts/install-hooks.sh

本番環境(Docker Compose)

# 認証情報の配置
mkdir -p ~/.ec-ops
cp path/to/shopify-token.json ~/.ec-ops/
cp path/to/cj-token.json ~/.ec-ops/

# Claude Code subscription 認証(ホストで事前に claude login 済みであること)
# ~/.claude と ~/.claude.json がコンテナにマウントされる

# 環境変数設定
cp .env.example .env
# .env の EC_OPS_DB_PATH / URIUM_* 等を環境に合わせて編集

# 起動(urium-server + runner の 2 コンテナ)
docker-compose up -d

# ログ確認
docker-compose logs -f runner

テスト実行

# 全テスト
uv run pytest

# 特定エージェント
uv run pytest agents/description/tests/ -v

---

開発手順

通常の feature 開発

# 1. feature ブランチ作成(起点は dev)
git checkout dev && git pull
git checkout -b feature/my-work

# 2. 実装 → テスト → ruff / mypy 確認
uv run pytest
uv run ruff check . && uv run mypy .

# 3. コミット(四層防御 hook が自動チェック)
git add ... && git commit -m "feat: ..."

# 4. dev にマージ(PR レビュー後)

エージェントへの変更

変更対象権限手順
agent.md人間のみfeature ブランチ → PR
SKILL.md LOCKED セクション人間のみdev 直接コミット
SKILL.md EDITABLE セクションL4 AUTO / 人間四層防御通過後に適用
skill_refs/*.mdL4 AUTO / 人間manifest バリデーション通過後
scripts/*.py人間のみfeature ブランチ → PR

ワークフローチェーン

[scheduler cron]
  ├→ schedule.daily_scout     → scout (job) → scout.completed
  │                                             ├→ guardrail → guardrail.completed
  │                                             └→ pricing (job)
  ├→ schedule.chain_pick      → chain_pick (job) → chain_pick.picked
  │                                                   └→ guardrail → guardrail.completed
  ├→ schedule.inventory_sync  → inventory_sync (job)
  ├→ schedule.daily_pricing   → pricing (job)
  └→ daily.trigger            → audit_evaluator → audit-evaluator.proposal_ready
                                                     └→ applier

[guardrail.completed]
  └→ description → description.completed
       └→ description_reviewer
            ├─ approved → site_ops → site-ops.listed
            │                          ├→ site_reviewer
            │                          └→ vision_qa
            └─ failed  → (drop)

[site-reviewer.failed]
  └→ site_ops (再生成モード) → site-ops.regenerating → description

kill switch

# 全エージェント停止(緊急時)
ecopscli kill-switch enable

# 再開
ecopscli kill-switch disable

---

既知の課題・制限事項

現時点で認識している制限事項と対応方針を記録する。

課題詳細対応方針
CJ-Shopify 商品紐づけCJ Dropshipping API では Shopify 商品 ID を直接取得できないため、出品後に別途マッチング処理が必要DB に shopify_product_id を保存する処理を site_ops に追加済み(verify_connection)。完全自動化は次フェーズ課題
ジャンル選定gothic-plus-size ニッチジャンルは CJ 側の供給が少なく候補数が限られる折衷案として幅広めのキーワードスコアリングで運用中。ジャンル拡張は post-hackathon 検討
Anthropic 課金体系変更(2026-06-15)Claude API の課金変更が予定されており、現行の subscription 依存の自動運営に影響の可能性Claude Code CLI (OpenCode) への移行で対応見込み。移行手順は別途策定
shopcli の dev 環境未インストールshopify Python パッケージが WSL 開発環境にインストールされていないため、shopcli 関連テスト 5 件が失敗Docker 環境では正常動作確認済み。dev 環境の依存解消は post-hackathon 対応

---

参照ドキュメント

ドキュメント内容
ADR-002再構築アーキテクチャ確定(単一根拠 ADR)
三層構造設計書SKILL.md / skill_refs / config の三層詳細
Runner フレームワーク設計書AgentRunner / ChainRunner の設計
ワークフロー概要chain 駆動・イベントスキーマ
DB スキーマSQLite テーブル定義

---

ブランチ運用

ブランチ用途
dev開発ブランチ(default)
mainハッカソン提出版(dev から作成、v1.0.0-hackathon-submission タグ付き)