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レッスンを終えると、完全な自律型コーディングアシスタントを構築できるようになるか、他の分野(データ分析、ウェブ自動化、ロボット工学など)にパターンを適応できるようになる。


クイックスタートチェックリスト

  1. Anthropic Claude APIキーを取得(またはツール使用をサポートする他のLLMにクライアントを適応)。
  2. git clone https://github.com/shareAI-lab/learn-claude-code.git
  3. 最小限の依存関係をインストール(通常は anthropic と標準ライブラリのみ)。
  4. python s01_agent_loop/code.py を実行して、最もシンプルなループを動作させる。
  5. s02_… から s17_… のフォルダを順に進み、それぞれで次のメカニズムを追加する。

上記のすべての詳細は、リポジトリのREADMEから直接取得したものであり、追加機能は推測されていない。

関連