OSS Agents JP
オープンソース AI エージェント 日本語ガイド
← 一覧へ
smol developer
OTHER

smol developer

smol developer

「あなた専用のジュニアエンジニア」をコンセプトにしたミニマル実装。スクラッチからプロジェクト雛形を生成する初期世代の代表 OSS。

#code-gen#minimal
EDITOR'S TAKE

編集部メモ

スクラッチからの自動コード生成、プロンプト駆動の agent 開発

smol developer は 2023 年公開の初期世代 AI agent フレームワークです。プロダクト仕様書やプロンプトからスクラッチでコードベースを自動生成し、開発者は人間のループを通じてプロンプトを改善していくアプローチを示しました。単一の scaffold tool ではなく、自分のアプリに agent を組み込める library としても使用でき、prompt 駆動開発のパイオニア的存在です。ただし最終更新が 2024 年 4 月でやや古く、現在は Claude Code や Cline といった後発・より高機能なツールが市場を占めています。初期世代の思想を学ぶ、あるいは非常にシンプルな実装が必要な場合に向きます。

USE CASES

こんな場面で使う

  • Web アプリケーションの初期版を自動生成し、人間がプロンプト改善を通じて反復開発する
  • 既存アプリケーション内に code generation 機能を library として統合し、ユーザー向けに提供する
  • Prompt engineering の実践を通じて、AI との協働開発フローを学ぶ
DIFFERENTIATOR

類似ツールとの違い

smol developer は「library として組み込める」点で early starters と差別化されていました。create-react-app のような rigid な template ではなく、prompt で柔軟に scaffolding を調整できます。ただし 2024 年以降、Claude Code や Cline など、より高度な agent tools が登場しており、相対的な優位性は低下しています。
CAVEAT

注意点・向かない用途

⚠️ 最終更新が 2024 年 4 月でやや古く、保守・バグ対応に不安があります。OpenAI API 依存で外部コストが発生し、生成コードの品質も初期世代の実装レベルです。複雑なアプリ開発には向きません。
BEST FOR

向いている読者

AI agent 開発に興味ある開発者プロンプト駆動開発のパイオニア作を学びたい人シンプルな code generation 機能が必要なスタートアップ

— OSS Agents JP 編集部による独自評価(smol developer に関する観察)

REPO STATS

リポジトリ統計

⭐ Stars
-
🍴 Forks
-
⚠️ Open Issues
-
🌿 Language
-
📄 License
-
🕒 最終更新
-
📅 公開日
-
🌿 Branch
-
REFERENCE

公式ドキュメント(README)

本ハブの独自評価は上記「編集部メモ」が一次情報です。以下は GitHub README の参考転載(折りたたみ)。

📖 GitHub README の日本語訳を読む(AI 自動翻訳 / 参考情報)

— AI による自動翻訳 (2026.05.07 更新)。正確な情報は GitHub の原文 をご確認ください。

🐣 smol developer

e2b に agent をデプロイするボタン Morph Morph

人間中心的で一貫した全体プログラム合成。あなた自身のパーソナルジュニア開発者です。

ものを構築するものを構築しましょう! あらゆる状況で、すべての開発者のための smol dev

これは「ジュニア開発者」エージェント(別名 smol dev)であり、以下のいずれかを行います:

  1. 製品仕様を与えると、あなた用に完全なコードベースをスキャフォールドします
  2. あなた自身のアプリ内に smol developer を持つための基本的なビルディングブロックを提供します。

create-react-appcreate-nextjs-app のような特定の、硬い、ワンショットスターターを作成・保守する代わりに、これは基本的には create-anything-app です。あなたが smol dev と緊密なループで scaffolding プロンプトを開発します。

成功した最初の v0 リリースの後、smol developer はさらに小さく書き直され、ライブラリからインポート可能になりました!

基本的な使い方

Git リポジトリモードで

# install
git clone https://github.com/smol-ai/developer.git
cd developer
poetry install # install dependencies. pip install poetry if you need

# run
python main.py "a HTML/JS/CSS Tic Tac Toe Game" # defaults to gpt-4-0613
# python main.py "a HTML/JS/CSS Tic Tac Toe Game" --model=gpt-3.5-turbo-0613

# other cli flags
python main.py --prompt prompt.md # for longer prompts, move them into a markdown file
python main.py --prompt prompt.md --debug True # for debugging
これにより、smol developer の元のバージョンに従って、人間がループ内でアプリを開発できます。

プロンプトエンジニアリングではなく、プロンプトでエンジニアリングする

prompt.md のデモ例は、AI 対応だが依然として堅牢な人間の開発者中心のワークフローの可能性を示しています:

  • 人間が構築したいアプリのための基本的なプロンプトを書きます
  • main.py がコードを生成します
  • 人間がコードを実行/読みます
  • 人間は以下ができます:
    • プロンプトの不完全な部分を発見した時点で、簡単にプロンプトに追加します
    • 手動でコードを実行してエラーを特定します
    • GitHub issue を提出するのと同じように、エラーをプロンプトに貼り付けます
    • 追加のサポートが必要な場合、コードベース全体を読んで具体的なコード変更の提案をする debugger.py を使用できます

幸せになるまでループします。AI は価値を加える限り使用されます。それがあなたの邪魔になったら、smol junior developer からコードベースを引き継ぎます。気軽に、何の問題もなく。(smol-dev に既存のコードベースを引き継がせ、独自のプロンプトをブートストラップさせることもできますが、それは将来の方向性です

このように、このリポジトリのクローンを使用して、アプリのプロトタイプ/開発ができます。

ライブラリモード内

これは smol developer v1 の新機能です!自分のプロジェクトに smol developer を追加できます。

pip install smol_dev

main.py の内容を見ることで、自分のアプリでこれらの関数とプロンプトをどのように使用できるかについての「ドキュメント」として確認できます。

from smol_dev.prompts import plan, specify_file_paths, generate_code_sync

prompt = "a HTML/JS/CSS Tic Tac Toe Game"

shared_deps = plan(prompt) # returns a long string representing the coding plan

# do something with the shared_deps plan if you wish, for example ask for user confirmation/edits and iterate in a loop

file_paths = specify_file_paths(prompt, shared_deps) # returns an array of strings representing the filenames it needs to write based on your prompt and shared_deps. Relies on OpenAI's new Function Calling API to guarantee JSON.

# do something with the filepaths if you wish, for example display a plan

# loop through file_paths array and generate code for each file
for file_path in file_paths:
    code = generate_code_sync(prompt, shared_deps, file_path) # generates the source code of each file

    # do something with the source code of the file, eg. write to disk or display in UI
    # there is also an async `generate_code()` version of this

API モード(Agent Protocol 経由)

サーバーを起動するには、以下を実行してください。

poetry run api

または

python smol_dev/api.py

その後、以下のコマンドのいずれかを使用して API を呼び出せます。

タスクを作成する には以下を実行してください。

curl --request POST \
  --url http://localhost:8000/agent/tasks \
  --header 'Content-Type: application/json' \
  --data '{
	"input": "Write simple script in Python. It should write '\''Hello world!'\'' to hi.txt"
}'

次のようなレスポンスが返されます。

{"input":"Write simple script in Python. It should write 'Hello world!' to hi.txt","task_id":"d2c4e543-ae08-4a97-9ac5-5f9a4459cb19","artifacts":[]}

タスクの 1 ステップを実行する には、前のリクエストから取得した task_id をコピーして、以下を実行してください。

curl --request POST \
  --url http://localhost:8000/agent/tasks/<task-id>/steps

または、Python クライアントライブラリ を使用することもできます。

from agent_protocol_client import AgentApi, ApiClient, TaskRequestBody

...

prompt = "Write simple script in Python. It should write 'Hello world!' to hi.txt"

async with ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = AgentApi(api_client)
    task_request_body = TaskRequestBody(input=prompt)

    task = await api_instance.create_agent_task(
        task_request_body=task_request_body
    )
    task_id = task.task_id
    response = await api_instance.execute_agent_task_step(task_id=task_id)

...

examples/プロンプトギャラリー

より多くの例を積極的に探しています。あなたのものをPRしてください!

例が少なくて申し訳ありません。それがイライラしていることは分かっていますが、こんなに多くの皆さんに対応する準備ができていませんでした lol

主なフォーク・代替実装

代替実装やその他のスタックへのデプロイ戦略を送ってください!

イノベーションと洞察

https://latent.space/ の購読をお願いします。より詳細な解説や洞察、考察をご覧いただけます。

  • Markdown はすべてです - Markdown は、英語とコード(変数名 variable_names か完全な ``` コードフェンス付きコードサンプル)を簡単に混在できるため、プログラム全体の合成をプロンプトするのに完璧な方法です。
    • コード内のプロンプトでプロンプトを指定でき、GPT-4 がそれに厳密に従うことがわかりました。
  • コピペプログラミング
    • 新しい API(Anthropic API は GPT-3 の知識カットオフ以降)の周辺にコードを書く方法を、curl の入出力を貼り付けるだけでプログラムに理解させます。
    • エラーメッセージをプロンプトに貼り付け、それをどう処理するかをざっくり指示するようなものです。「ログブック駆動プログラミング」という感じですね。
  • cat でデバッグします - コードベース全体とエラーメッセージを一緒に、具体的な修正提案を得る。特に楽しいです!
  • プログラム全体の一貫性を取るコツ - 私たちが選んだ使用例である Chrome 拡張機能は、ファイル間に多くの間接的な依存関係があります。クロス依存関係の幻覚が生じると、プログラム全体がエラーになります。
    • GPT に shared_dependencies.md を考えさせる中間ステップを追加し、各ファイル生成時にそれを使うよう要求することで解決しました。基本的に GPT が自分自身と会話できるようになるということです…
    • …ただし、まだ完璧ではありません。shared_dependencies.md がファイル間のハード依存関係を完全に理解していないことがあります。そこでプロンプトで具体的な name を指定することで解決しました。最初は気が進みませんでしたが、うまくいきます。実は明確で曖昧性のないコミュニケーションを心がけているだけなんです。
    • prompt.md を参照して、SOTA smol-dev プロンプティングをご確認ください。
  • 不慣れな API への低い参入障壁
    • CSS アニメーションは本当には学んだことがありませんが、今は「juicy CSS アニメーションされた赤と白のキャンディストライプローディングインジケータ」が欲しいと言うだけで機能します。
    • Chrome Extension Manifest v3 も同様 - ドキュメントは絶望的に混乱していますが、幸い今は基本的なものを動かすためにドキュメントを読む必要がありません。
    • Anthropic のドキュメント(本当にひどい)には戻り値シグネチャについてのガイダンスがありませんでした。だから curl して、プロンプトに突っ込むだけです(笑)。
  • Modal はすべてです - Modal を選んで 4 つのことを解決しました:
    • 開発環境と本番環境での Python の依存関係地獄を解決します
    • コード生成の並列化
    • ローカル開発からクラウドホスト型エンドポイントへのシンプルなアップグレード経路(今後)
    • 再試行・バックオフとアタッチされたストレージを伴う耐障害性のある OpenAI API コール(今後の使用)

https://latent.space/ の購読をお願いします。より詳細な解説や洞察、考察をご覧いただけます。

注意事項

Chrome 拡張機能に取り組んでいますが、これは画像を生成する必要があるため、それらを破棄・再生成をスキップするためのユースケース固有のコードを追加しました。ただし、どのように汎化するかはまだ決めていません。

GPT-4-32k へのアクセス権がありませんが、もしあれば、API/SDK ドキュメント全体をコンテキストに入れることを探索するでしょう。

フィードバックループは現在非常に遅く(time では GPT-4 を使ったプログラム生成に 2~4 分かかり、Modal による並列化があってもそうです(時々もっと高くなります))が、それは時間とともに低下するのはほぼ確実です(下の「将来の方向性」も参照してください)。

将来の方向性

試してみるべきこと / オープンなissueディスカッションとPRを歓迎します:

  • 各生成ファイルの .md ファイルを指定します - 各ファイルの出力を微調整できるさらなるプロンプトが含まれます。
    • 基本的には popup.html.mdcontent_script.js.md などのようなものです。
RELATED

同じカテゴリの他のツール