he-yufeng/CoreCoder

Minimal AI coding agent (~1,000 lines of Python) inspired by Claude Code. Works with any LLM. Think NanoGPT for coding agents. Formerly NanoCoder.

CoreCoder – 小さく、読みやすいコーディングエージェントエンジン

これは何か – CoreCoderは、コード編集AIエージェントの純Python実装で、わずか2,800行です。“コーディングアシスタント”のアイデアを本質までそぎ落としています。ユーザーのプロンプトをLLMに送り、モデルがいくつかのツール(ファイル読み書き、シェル、grepなど)を呼び出し、ツールの結果を会話にフィードバックし、モデルが最終回答を返すまで繰り返すwhileループです。これらはすべて午後に読める、フォークしやすいように書かれています。

なぜ重要か – ほとんどの商用エージェント(Claude Code、Cursorなど)は、その中核ロジックを数十万行のクローズドなコードの背後に隠しています。CoreCoderは、パイプライン全体(モデルラッパー、コスト追跡、3層コンテキスト圧縮、並列ツール実行、サブエージェント生成、権限プロンプト、REPL)を、単一の、よくコメントされたコードベースで公開しています。これにより、実際のコーディングエージェントがどのように機能するかを理解したい人や、独自のカスタムバージョンを構築したい人にとって、実用的なリファレンスとなります。

主要コンポーネント

  • agent.py – 会話を駆動するメインループ(約240行)。
  • llm.py – ストリーミング対応のOpenAI互換クライアント、再試行ロジック、トークンコスト計算。
  • context.py – 3層コンテキスト削減(機械的カット、モデル要約、アグレッシブな切り詰め)。
  • tools/ – 8つの組み込みツール(bash、read_file、write_file、edit_file、glob、grep、todo_write、agent)に加え、オプションのMCP拡張。
  • cli.py – スラッシュコマンド(/model、/plan、/undo、/tokensなど)を備えた対話型REPL。
  • hooks.py、permissions.py、checkpoints.py – 安全ゲート、同意処理、アンドゥサポート。

試してみる方法

# クローンして編集可能モードでインストール
git clone https://github.com/he-yufeng/CoreCoder
cd CoreCoder
pip install -e .

# または、リリース済みパッケージをインストール
pip install corecoder

# LLM認証情報を設定(OpenAIの例)
export OPENAI_API_KEY=sk-...
# オプション:モデルを選択
export CORECODER_MODEL=gpt-5.5   # デフォルト

# 対話型REPLを実行
corecoder

# ワンショット使用(関数にエラーハンドリングを追加して終了)
corecoder -p "parse_config() にエラーハンドリングを追加"

REPLは、--yesで開始しない限り、変更を加えるツール(write_file、edit_file、bash、サブエージェント)を実行する前に同意を求めます。

拡張 / フォーク

  1. モデルを交換 – CORECODER_MODEL環境変数を変更するか、カスタムのLLMインスタンスを渡すだけです。
  2. ツールを追加 – tools/にtools/base.pyを継承した新しいファイルを作成し、run()を実装して、agent.pyに登録します。
  3. システムプロンプトを編集 – prompt.py(41行)を変更して、エージェントの性格や指示を変えます。
  4. ライブラリとして埋め込む –
    from corecoder import Agent, LLM
    llm = LLM(model="deepseek-chat", api_key="sk-…")
    print(Agent(llm=llm).chat("このリポジトリ内のすべてのTODOコメントを一覧表示"))
    
  5. エッセイを探索 – リポジトリには、各サブシステムを1行ごとに解説した8部構成のバイリンガル「ソースリーディングシリーズ」が含まれています。

誰が見るべきか –

  • コーディングエージェントの構築や研究のための具体的なオープンソースリファレンスを求める研究者やエンジニア。
  • ツールセットのカスタマイズ、RAGの追加、エンジンのIDEライクな製品への統合に興味がある開発者。
  • LLM駆動エージェントを教える教育者。最小限のコードベースは教室でのデモに最適です。

CoreCoderは、完全に機能し、テストでカバーされた(227テスト)Pythonパッケージであり、コーディングアシスタントがエンドツーエンドでどのように機能するかを示しながら、読んだり、変更したり、拡張したりできるほど小さく保たれています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch