LLMエージェントを操り、シバき、最終的には仕事を丸ごと任せられるシステムを作るための学習・実験リポジトリです。
最終目標は、AIを単なるコーディング支援として使うのではなく、
AIを用いたITシステム開発、とくに Agent Systems / Agent Infrastructure / Context Engineering の領域で、システム全体を設計・制御できるようになること
です。
将来的には、
世の中・業務のドメイン知識
↓
要求
↓
要件
↓
システム設計
↓
タスク分解
↓
┌──────┼──────┐
↓ ↓ ↓
Agent Agent Agent
└──────┼──────┘
↓
評価
↓
実装
↓
運用・観測
↓
改善
という一連の工程を、複数のAgentを組み合わせたAgentic Systemとして実現することを目指します。
人間がすべてのコードを書くのではなく、
- 何を作るのか
- どこで責務を分けるのか
- 各AgentへどのContextを渡すのか
- Agent間でどの情報を受け渡すのか
- 状態をどこへ保存するのか
- 出力をどう評価するのか
- 失敗した場合にどこまで戻すのか
を設計することに重点を置きます。
コーディングそのものは、ITシステムを実現するための手段の一つです。
LLMによってコード生成のコストが下がるなら、人間が見るべき対象は個々のコードだけではなく、より上位のシステム全体へ移っていくと考えています。
コードを書く
↓
コンポーネントを作る
↓
コンポーネントを接続する
↓
システム全体を設計する
↓
Agentを含むシステムを設計する
このリポジトリでは、特に以下の問題を扱います。
巨大な問題を、どこで分割するべきか。
各Agentにすべての情報を渡すのではなく、そのAgentの責務に必要なContextだけを渡す方法を考えます。
Agent間で何を受け渡すべきか。
会話履歴を丸ごと共有するのではなく、
requirements.json
architecture.json
tasks.json
progress.json
evaluation.json
のような構造化されたArtifactによる情報伝達を試します。
AgentのContext Windowを超える長時間の仕事を、どのように継続させるかを考えます。
Agent Session A
↓
Artifact
↓
Agent Session B
↓
Artifact
↓
Agent Session C
という形で、記憶ではなく外部状態によって仕事を引き継げる構造を目指します。
Agentが「できました」と言ったことを信用するのではなく、
Unit Test
Integration Test
E2E Test
Lint
Type Check
Security Check
Requirement Evaluation
などによって、可能な限り機械的に評価します。
このリポジトリでは、Anthropicの分類を基準として考えます。
処理経路を人間が事前に決めます。
Input
↓
Step A
↓
Step B
↓
Step C
LLMは各処理を担当しても、制御フローそのものはプログラム側が持ちます。
目的を与えられたLLM自身が、
- 次に何をするか
- どのToolを使うか
- 追加調査が必要か
- サブタスクへ分解するか
- 再試行するか
を動的に判断します。
Goal
↓
LLM
├─ Tool A
├─ Tool B
├─ Tool C
└─ Think / Retry / Delegate
大雑把には、
Workflow = 制御フローを人間が持つ
Agent = 制御フローをLLMが持つ
と捉えます。
実際のAgentic Systemでは、この2つを組み合わせます。
まずは以下の基本構造を理解します。
前の処理結果を次の処理へ渡すパイプラインです。
A → B → C
後続処理が前段の結果を必要とする場合に利用します。
入力を分類して、適切な処理へ振り分けます。
┌→ A
Input ─┼→ B
└→ C
独立した処理を並列実行します。
┌→ A ─┐
Input ─┼→ B ─┼→ Aggregate
└→ C ─┘
事前に分割方法が分かっている、比較的定型的な処理に向いています。
Orchestratorが入力を見て、必要な仕事を動的に分解します。
Orchestrator
┌─────┼─────┐
↓ ↓ ↓
Worker Worker Worker
└─────┼─────┘
↓
Synthesis
複雑で、事前に必要なサブタスクを予測できない問題を扱います。
成果物を評価し、不十分なら改善します。
Generator
↓
Evaluator
↓
PASS ─→ Done
│
FAIL
↓
Optimizer
↓
Generator
成果物の品質を継続的に改善するために利用します。
最初のテーマは、
Agentとは実装上どのようなシステムなのか
を理解することです。
以下を自分の言葉で説明し、実装できる状態を目標とします。
LLM
├─ Instructions
├─ Context
├─ Tools
├─ State / Memory
└─ Agent Loop
最初はAgent Frameworkによって内部処理を隠さず、LLM APIを直接呼び出して小さなWorkflowを作ります。
User
↓
Planner
↓
Structured Output
↓
Worker
↓
Result
↓
Evaluator
↓
PASS / RETRY
重要なのは、
どのAgentに
どのContextを渡し
何を出力させ
どう次へ渡すか
を理解することです。
最初の大きな成果物として、
「AIに全部任せてWebアプリを作ってみた」
というPoCを作り、10〜20分程度で読める技術記事として公開します。
人間が決めるのはWebアプリのテーマです。
その後、
Human
「こんなシステムが欲しい」
↓
Requirement Agent
↓
requirements
↓
Architecture Agent
↓
architecture
↓
Planner
↓
task DAG
↓
Orchestrator
┌──────┼──────┐
↓ ↓ ↓
Front Back Infra
Agent Agent Agent
└──────┼──────┘
↓
Evaluator
↓
App
までをAI側に実行させます。
特に検証したいのは、
要求から実装までの工程を、Contextを分割した複数AgentとArtifactによる情報伝達だけで成立させられるか
です。
可能であれば、
Single Agent
vs
Multi-Agent + Structured Artifacts
も比較します。
評価対象として、
- 要件達成率
- テスト成功率
- 要件漏れ
- 人間介入回数
- Token使用量
- APIコスト
- 実行時間
- 再試行回数
などを記録します。
PoC以降は、以下へ進みます。
Agent Fundamentals
↓
Context Engineering
↓
Long-running Agents
↓
Evals
↓
Multi-Agent Orchestration
↓
Agent Runtime / Harness
↓
Distributed Systems
↓
MCP / A2A
↓
Agent Infrastructure
特に、
- Context Engineering
- Artifact設計
- Agent Orchestration
- Evals
- Long-running Agents
- State Management
- Observability
- Retry / Idempotency
- Sandboxing
- MCP
- A2A
- Agent Infrastructure
を重点的に扱います。
Agentを人格として捉えません。
Input
↓
Context Assembly
↓
LLM
↓
Tool Execution
↓
State Update
↓
Evaluation
↓
Next Action
というソフトウェアコンポーネントとして扱います。
「AIに何を言えば賢く動くか」だけではなく、
AIを含むシステムを、どう設計すれば観測可能・制御可能・検証可能になるか
を考えます。
また、複雑なAgentを作ること自体を目的にしません。
Workflowで十分ならWorkflowを使います。
Single Agentで十分ならMulti-Agent化しません。
Agent化によって、
- Contextを適切に分離できる
- 並列化できる
- 責務を分離できる
- 長時間処理を継続できる
- 評価可能性が上がる
などの明確な利点がある場合にのみ、構造を複雑化します。
最初に以下を読みます。
-
Building effective agents
-
Effective context engineering for AI agents
-
Effective harnesses for long-running agents
-
Demystifying evals for AI agents
-
How we built our multi-agent research system
-
Harness engineering
-
METR Task-Completion Time Horizons
-
Model Context Protocol
-
Agent2Agent Protocol
-
Stanford CS336: Language Modeling from Scratch
最終的には、
世界・業務
↓
要求・要件
↓
Agentic System
↓
設計
↓
実装
↓
評価
↓
運用
↓
観測
↓
改善
というループを設計し、
「コードを書く人」ではなく、「AIが仕事を遂行できるITシステムそのものを設計できる人」
になることを目指します。