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、サブエージェント)を実行する前に同意を求めます。
拡張 / フォーク
- モデルを交換 –
CORECODER_MODEL環境変数を変更するか、カスタムのLLMインスタンスを渡すだけです。 - ツールを追加 –
tools/にtools/base.pyを継承した新しいファイルを作成し、run()を実装して、agent.pyに登録します。 - システムプロンプトを編集 –
prompt.py(41行)を変更して、エージェントの性格や指示を変えます。 - ライブラリとして埋め込む –
from corecoder import Agent, LLM llm = LLM(model="deepseek-chat", api_key="sk-…") print(Agent(llm=llm).chat("このリポジトリ内のすべてのTODOコメントを一覧表示")) - エッセイを探索 – リポジトリには、各サブシステムを1行ごとに解説した8部構成のバイリンガル「ソースリーディングシリーズ」が含まれています。
誰が見るべきか –
- コーディングエージェントの構築や研究のための具体的なオープンソースリファレンスを求める研究者やエンジニア。
- ツールセットのカスタマイズ、RAGの追加、エンジンのIDEライクな製品への統合に興味がある開発者。
- LLM駆動エージェントを教える教育者。最小限のコードベースは教室でのデモに最適です。
CoreCoderは、完全に機能し、テストでカバーされた(227テスト)Pythonパッケージであり、コーディングアシスタントがエンドツーエンドでどのように機能するかを示しながら、読んだり、変更したり、拡張したりできるほど小さく保たれています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch