shareAI-lab/learn-claude-code
Bash is all you need - A nano claude code–like 「agent harness」, built from 0 to 1
Learn Claude Code – LLMエージェントハarnessを構築する実践コース
何であるか – 大規模言語モデル(LLM)であるAnthropicのClaudeが自律的なコーディングアシスタントとして動作できるようにするためのハarness(周辺コード)を書く方法を段階的に教えるチュートリアル。このリポジトリはモデルの訓練は行わない。代わりに、事前に訓練されたLLMにツール、権限、コンテキスト管理、オーケストレーションを提供する方法を学び、実際の開発環境で安全かつ効果的に動作させるための知識を提供する。
なぜ重要か – 現代の「AIエージェント」は、訓練されたモデルと、モデルを世界(ファイルシステム、シェル、ブラウザ、APIなど)に接続するランタイムの組み合わせである。多くの公開プロジェクトはモデルそのものに焦点を当てており、ハarnessは後回しにされがちである。このリポジトリは逆の視点を取り、ハarnessをコアのエンジニアリング課題として扱い、各要素を実際に実装する方法を明確に示す。
仕組み – コアループはシンプルなREPLである:
while True:
response = client.messages.create(model=MODEL, system=SYSTEM,
messages=messages, tools=TOOLS)
messages.append({"role": "assistant", "content": response.content})
tool_calls = [b for b in response.content if b.type == "tool_use"]
if not tool_calls:
break # モデルが終了したと判断
results = []
for call in tool_calls:
out = TOOL_HANDLERS[call.name](**call.input)
results.append({"type": "tool_result",
"tool_use_id": call.id,
"content": out})
messages.append({"role": "user", "content": results})
モデルがツールを呼び出すタイミングを判断し、ハarnessがツールを実行して結果をフィードバックする。このリポジトリはこのループを17段階のプログレッシブなレッスンに拡張し、各レッスンで具体的なハarness機能を追加している:
| レッスン | 追加された機能 | 学べること |
|---|---|---|
| s01 | 基本エージェントループ + Bashツール | 最小限の動作するエージェント |
| s02 | ツール登録とディスパッチ | 任意のツールの追加 |
| s03 | 権限システム | セーフな実行、承認 |
| s04 | フックシステム | 拡張可能なツール前後処理 |
| s05 | Todo-Write(計画) | モデル主導のタスク計画 |
| s06 | サブエージェントの隔離 | サブタスク用の独立したメッセージコンテキスト |
| s07 | スキルロード | 必要時に知識を注入 |
| s08 | コンテキスト圧縮 | トークン窓を制限内に保つ |
| s09 | メモリサブシステム | セッション間で持続する知識 |
| s10 | ディスクバックエンドタスクグラフ | 構造化され、再開可能な作業リスト |
| s11 | バックグラウンドタスク | ブロッキングしない長時間実行コマンド |
| s12 | クロンスケジューラ | 時間ベースの自動化 |
| s13 | エージェントチーム | マルチエージェント協調、タスクの割り当て |
| s14 | MCPプラグイン | 外部機能をツールとしてプラグイン |
| s15 | 統合ハarness | 以前のすべてのメカニズムを1つのループに統合 |
| s16 | ワークフローランタイム | 保存・再開可能なオーケストレーションスクリプト |
| s17 | ゴールループ | エージェントが終了すべきタイミングを独立した評価者が判断 |
各レッスンは小さな実行可能な code.py と、設計、実装、フローの可視化を説明するREADME(英語、中国語、日本語)を提供する。
誰が使うべきか –
- ハarnessエンジニア:すでにLLM APIにアクセスでき、エージェントを構築するためのプロダクションレベルのパターンを求める人。
- 開発者:Claude(または互換性のあるLLM)を、ファイルの読み書き、シェルコマンドの実行、ウェブブラウジング、カスタムAPIの呼び出しを可能にするコーディングアシスタントに変えることに興味がある人。
- 研究者:「モデル+環境」パラダイムのクリーンなリファレンス実装を探している人。
このリポジトリから得られるもの
- 自分のプロジェクトにコピー可能な完全でモジュール化されたコードベース。
- 明確な責任分離:ツール、権限、フック、メモリ、タスクスケジューリング、マルチエージェントプロトコルはすべて独立したモジュール。
- エージェンシーはモデルに由来するという哲学。巧妙なプロンプトチェーンに頼らず、壊れやすい「ルーベ・ゴールドバーグ」的なエージェントハックを回避する。
結論 – Learn Claude Code は新しいLLMではない。Claudeを参照モデルとして用い、あらゆるLLMベースエージェントの乗り物(ハarness)を構築するための実践的カリキュラムである。17レッスンを終えると、完全な自律型コーディングアシスタントを構築できるようになるか、他の分野(データ分析、ウェブ自動化、ロボット工学など)にパターンを適応できるようになる。
クイックスタートチェックリスト
- Anthropic Claude APIキーを取得(またはツール使用をサポートする他のLLMにクライアントを適応)。
git clone https://github.com/shareAI-lab/learn-claude-code.git- 最小限の依存関係をインストール(通常は
anthropicと標準ライブラリのみ)。 python s01_agent_loop/code.pyを実行して、最もシンプルなループを動作させる。s02_…からs17_…のフォルダを順に進み、それぞれで次のメカニズムを追加する。
上記のすべての詳細は、リポジトリのREADMEから直接取得したものであり、追加機能は推測されていない。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch
- Dispatch