0人会社 Day1|AIで「2層構造」を設計した初日の記録
---
「AIエージェントに会社を運営させる」と決めた日から、最初にぶつかった問題は「どんな構造にするか」だった。
4月3日。その日は設計だけで終わった。コードはほぼ書かなかった。でも、この日の設計判断がその後の全部を決めた。
---
TL;DR
- PenguLabは「OS(Paperclip)+ カンパニー群」の2層構造で設計した
- 各カンパニーは独立した組織として憲法(CONSTITUTION.md)を持つ
- 1日目は実装ゼロ、設計100%。それが正解だったと今は思う
---
「全部入り」にしたら破綻した
最初のアイデアは単純だった。ひとつの大きなリポジトリに、全部のエージェントを突っ込む。ディレクトリで分けて、設定で管理して——。
30分で諦めた。
エージェントが増えるにつれ、「どのエージェントが何のプロジェクトに属しているか」がすぐわからなくなる。設定が混在する。Issueの管理がカオスになる。何より、「誰が何を決める権限を持っているか」が曖昧になる。
人間の会社でも同じ問題が起きる。組織が大きくなると「権限の境界」が必要になる。AIエージェントを使った組織でも、同じことが言えるはずだ。
---
2層構造という答え
行き着いた設計は、こうだ。
PenguLab(全社)
├── Paperclip(エージェントOS・ポート3100)← 第1層
└── companies/
├── pengu-press/
├── pengu-motion-studio/
├── web-conversion-reset/
└── revenue-ops/
第1層(Paperclip)は、全エージェントのOSだ。heartbeat監視、Issue管理、wakeupコマンドの実行——これらを一元管理する。
第2層(各カンパニー)は、独立した組織として動く。それぞれが独自の憲法(CONSTITUTION.md)を持ち、独自のエージェントチームを持ち、独自のディレクティブで動く。
この分離が重要だった。「全社ルール」と「会社ごとのルール」を混在させないこと。
---
CONSTITUTION.md をなぜ作ったか
pengu-pressを設立したとき、最初に書いたのはコードではなくCONSTITUTION.mdだった。
CONSTITUTION.mdの構成:
- Article I: Mission - AIが自律的にコンテンツを生産・配信するメディア組織を構築する
- Article II: Values - Transparency / Speed / Autonomy
- Article III: Decision Framework - Founder承認 / Lead判断 / 各エージェント自律
なぜこれが必要か。エージェントに「良い仕事をしろ」と言っても動かない。エージェントには「この組織は何のためにあるか」「誰が何を決めていいか」「速度と品質のどちらを優先するか」——これらが明示的に書かれている必要がある。
人間の会社でも、暗黙の文化ではなく明文化されたルールがある組織の方が強い。同じことをAI組織でやった。
---
エージェント構成の設計
pengu-pressのチーム:
- Hermes: CTO(全社横断・意思決定)
- Trend Researcher: トレンド調査
- Senior Writer: 記事執筆
- PengPeng: Distribution(X/Note投稿)
最初は「とりあえず汎用エージェントを1体」と考えていたが、やめた。役割が明確でないエージェントは、何をすべきかわからず止まる。または、やらなくていいことをやり始める。
---
web-conversion-resetの設計
pengu-pressがメディア会社なら、web-conversion-resetはサービス会社だ。クライアントのウェブサイトを作って、コンバージョンを改善する。
5人体制: Rex(リード獲得)/ Qui-Gon(仕様)/ Sabine(実装)/ Plo(QA)/ Jocasta(ナレッジ)
リード獲得→仕様→実装→QA→学習のパイプラインを、そのままエージェントに割り当てた。
---
1日目に実装しなかった理由
設計が間違っていると、後で全部やり直しになる。特に「権限の境界」は早めに決めないと危険だ。
1日目は「どう動くか」ではなく「どう設計するか」に全部使った。
---
まとめ
- AIエージェント組織も、人間の組織設計と同じ問題に直面する
- 「全部入り」ではなくOS層と事業会社層に分離する
- 各組織はCONSTITUTION.mdで「ルール」を明文化する
- 役割が明確なエージェントだけが自律的に動ける
次回は、エージェントを初起動した2日目の話。最初にぶつかったのはAPIの429エラーだった。
---
*PenguLab Building in Public シリーズ — Day 1*
