llm-coding-agent は、作者自身の LLM ライブラリの上に構築された Python 製のコーディングエージェントで、アルファ版 0.1a0 としてリリースされた。述べられている動機は、そのライブラリがエージェントフレームワークに近いものへと進化してきたため、その上に構築したシンプルなコーディングエージェントがどのようなものになるかを確かめる価値があるというものである。発表記事はその成果をもう 1 つの実験と表現し、リリースされたパッケージを、粗削りな形で PyPI に公開したアルファ版と位置づけている。インストールせずに uvx を通じて、uvx --prerelease=allow --with llm-coding-agent llm code という形で起動する。
このプロジェクトは、それが実装する実践そのものの産物でもある。作者の報告によれば、Python ライブラリのテンプレートから出発し、コーディングエージェントに 2 つのプロンプトを与えた。1 つ目は、ファイルの読み取りと編集、コマンドの実行のためのツールを備えた Claude Code 風のコーディングエージェントを記述する spec.md を求めるもので、2 つ目は、その仕様をコミットしたうえで、Red/Green TDD を使い、それぞれテストが通りドキュメントが更新された一連の妥当なコミットとしてそれを構築し、その過程で API キーを使って手動でテストするよう求めるものであった。仕様、生成された README、そして一連のコミットはすべて公開されている。Red/Green TDD と 仕様駆動開発 を参照。
機能
0.1a0 で確認できる範囲では、このエージェントは 6 つのツールを提供する。read_file は行番号付きの行を返し、大きなファイルをページ送りするための offset 引数と limit 引数をとる。write_file はファイルを作成または上書きし、必要に応じて親ディレクトリを作成する。edit_file は正確な文字列を置換するもので、その文字列は空白を含めてファイルの内容と一致し、かつ replace-all フラグが設定されていない限り一意の位置を特定しなければならず、変更を検証できるよう差分を返す。list_files はグロブに一致するファイルを新しい順に返し、隠しディレクトリ、node_modules、__pycache__、そして git リポジトリ内では .gitignore の対象となるものをすべて除外し、最大 200 件のパスを返す。search_files は正規表現でファイルの内容を検索し、上限件数までの一致を返す。execute_command はセッションのルートでシェルコマンドを実行し、結合された出力とそれに続く終了コードを返し、タイムアウト時にはプロセスツリー全体を終了させる。
CLI は --yolo モードと、--allow フラグを繰り返し指定することによるコマンド単位の承認を提供しており、ドキュメントに記載された例は pytest* や git diff* のようなパターンである。CLI とあわせて、モデル、ルートディレクトリ、承認フラグをとる CodingAgent クラスを中心とした Python API があり、その run メソッドは指示を受け取る。作者は、このインターフェースは自分が求めたものではなく、実装されているのを見つけて嬉しく思ったと記している。
採用とエコシステム
発表記事は 1 つの試用例を報告している。--yolo モードでエージェントを実行し、ディレクトリを作成して、時刻を ASCII アートで表示する SwiftUI のコマンドラインアプリケーションを構築するよう求めるプロンプトを与えたものである。作者の記録によれば、モデルは SwiftUI が本当の CLI には適さないと推論したうえで、ASCII アートを出力するアプリケーションを構築した。作者はそのトランスクリプトを公開している。結果に対する作者自身の評価は、最初の試みとしてはかなり良いというものである。
このパッケージの位置づけは明確に暫定的なものである。アルファ版であり、作者自身が実験と表現しており、README 自体もコードを書いたモデルによって生成されている。