メインコンテンツへスキップ

コーディング作業はAIに任せろ!たった100行で作る高性能エージェントの秘訣

·2 分
2025/08 AI プログラミング 開発 コード生成 LLM

コーディング作業はAIに任せろ!たった100行で作る高性能エージェントの秘訣

引用元:https://news.ycombinator.com/item?id=45001051

ofirpress 2025/08/24 03:55:08

Princeton SWE-benchチームが約100行でSWE-benchでかなりうまく動くエージェントを作ったんだって。これ、面白いかもね!
https://github.com/SWE-agent/mini-swe-agent

simonw 2025/08/24 05:06:56

いやー、これ本当にシンプルだね、シェアしてくれてありがとう。全体はこのプロンプトで動くんだってさ。
https://github.com/SWE-agent/mini-swe-agent/blob/7e125e5dd49
プロンプト例:あなたのタスク:{{task}}。3つのバッククォートで囲んだ単一のシェルコマンドで返答してね。完了するには、シェルコマンドの出力の最初の行は’COMPLETE_TASK_AND_SUBMIT_FINAL_OUTPUT’である必要があります。

sireat 2025/08/24 09:20:24

確か、default.yamlから約120行のプロンプトも必要だったはずだよ。
https://github.com/SWE-agent/mini-swe-agent/blob/7e125e5dd49

nivertech 2025/08/24 07:58:19

system_templateで「何でもできる有能なアシスタント」ってあるけど、”何でも”?
それってAI Safetyの問題じゃないの?(笑)

greleic 2025/08/24 13:52:23

LLMが「できない」と思い込んで時間を無駄にしたり、誤ったやり方を選んだりするのには驚くよ。でも、基本だけにとらわれず考え方を変えれば何でもできるはず。タイムマシンが必要だとみんなが言い続ければ、革命は起きる!サラ・コナーも助かるはずだよ。

curvaturearth 2025/08/24 23:59:50

僕はAIが「できる」と思ってるのに、実際はできないことの多さに既に驚いてるよ。

meander_water 2025/08/24 05:51:00

コード分析、再現スクリプト作成、修正、検証、エッジケーステストって記事のプロンプト、すごく役立つね。デバッグで詰まった時は、コードを分析して考えられる原因をリストアップし、確率の高い順に検証スクリプトやデバッグログで確認していくようなプロンプトを使ってるよ。

afro88 2025/08/24 19:30:34

ってことは、これってバグ修正にしか使えないってことかな?

regularfry 2025/08/24 21:43:21

機能(feature)って結局は問題(issue)の一つだよ。だってその機能がまだ完成してないってことが問題なんだからね。

afro88 2025/08/25 11:04:49

「2. 問題を再現するスクリプトを作成する」って、それじゃあ機能実装中にAIが脱線しない?って疑問だね。

regularfry 2025/08/25 14:47:23

それってまるで受け入れテストみたいだね!

faangguyindia 2025/08/24 05:46:48

問題が1つのファイル内で完結してるなら、LLMで編集するのはめちゃ簡単。でも、コードベースだとそうはいかない。開発者の組織モデルに合わせて色々散らばってるからね。

fmbb 2025/08/24 07:16:09

またLumpersの勝ちだな!
https://en.wikipedia.org/wiki/Lumpers_and_splitters

koakuma-chan 2025/08/24 05:48:44

「特定の組織モデルに合わせて」か、そうだといいんだけどね(皮肉)。

BenderV 2025/08/24 07:27:06

いいね、でもツールが少ないのは残念。ほとんどのコードがSWE固有じゃなくて、エージェントフレームワークについてだね。僕もSWEエージェント作ったよ(趣味で)。チェックしてみて => https://github.com/myriade-ai/autocode

diminish 2025/08/24 07:32:31

「ツールが少ないのは残念」って言うけど、mini-swe-agentではツールの少なさが”特徴”なんだよ。どんな大きさのLLMでも動かせるのが利点だからね。

BenderV 2025/08/24 09:38:43

LLMのサイズと何の関係があるのか理解したいな。個人的には、適切なツールがあれば、bashみたいに何でもかんでもやらせるより、小さいモデルでも性能は上がると思う。でも、このコードがLLMの関数呼び出しのテンプレートを見せるためのものってのはわかるよ。

diminish 2025/08/24 10:52:46

Mini SWE Agentは学術ツールとして、単純なアイデアがどんなLLMにも通用することを示すために簡単にテストできるんだ。様々なLLMで試せるよ。小さいLLMサイズだとツール呼び出しはうまく動かないことが多いし、7GB以下でツール呼び出しできるのはQwen3 4Bくらいしか選択肢がないね。
「適切なツールがあれば小さいモデルでも性能が上がる」という仮説に対して、新しいMini SWE Agentは、元のSWE Agent論文(https://arxiv.org/pdf/2405.15793)の、専門ツールがより良く機能するという仮説を、非常に大きなLLM向けに反証したものなんだ。

BenderV 2025/08/25 09:29:28

回答ありがとう。微調整の問題だと思うよ。LLMはBashの経験が豊富だから、それらをどう扱うか分かるんだろうね。でも、提供されたカスタムツールには経験がないんだ。それに、LLMの“ツール”は現状、状態表示や動的なアクションをもっとうまく設計する必要があると思うよ。これらを考慮すると、適切なツールを持つAIは、汎用的で制御できないツールを持つAIよりもずっと性能が良いはずさ。

zhlmmc 2025/08/25 03:02:09

うん、すごくよくわかるよ。一般的なコーディングエージェントの性能は、95%くらいがモデルそのものに依存してるからね。

Teever 2025/08/24 07:13:02

自分のコードベースで動かしてみた結果はどうだった?どんな感じだったか教えてくれると嬉しいな。

johannesboyne 2025/08/24 07:30:54

すごく似た“ハウツーガイド”がここにあるよ: https://ampcode.com/how-to-build-an-agent。Thorsten Ballが書いたんだ。Ampは全体的にすごく面白いよね、もう隠れた名作ってわけじゃないけど(笑)。Agenticなコーディングに関するツールが増えるのはいいね。きっと将来は、ソフトウェアスイートの一部にもなるだろうし。

campbellbell 2025/08/24 07:51:59

なるほどね、著者がAmpで働いてるって言うなら納得だわ。

Revisional_Sin 2025/08/24 17:39:08

これ、前のよりずっといいね。ありがとう!

manojlds 2025/08/24 08:24:54

GhuntleyもAmpで働いてるんだよ。

akk0 2025/08/24 08:34:09

写真って普通1000語の価値があるっていうけど、この記事の画像は99.6%オフってどういうこと?何なんだこれ…?全然役に立たないじゃん。

ghuntley 2025/08/24 08:39:22

これ、カンファレンスワークショップのスライドで、中身は発表の文字起こしなんだ。

akk0 2025/08/24 08:57:48

公開された記事として見ると、これは実装の詳細が漏れてるみたいだね。

mg74 2025/08/24 11:45:47

他の人が自分の時間を使ってやってくれたことに感謝するべきだね。恩恵を受けるんだから、何も要求しちゃダメだよ。

crazygringo 2025/08/24 13:58:00

批評は、それを読むみんなが学び恩恵を受けるためにするんだ。だから価値があるの。作者も、他の読者も得るものがある。「テキストスライドに文字起こしを挟むの、HNで不快だったの思い出したからやめよう」みたいにね。

もっとコメントを表示(1)
jsnell 2025/08/24 23:20:47

テキストスライドと文字起こしの組み合わせは普段は良いんだけど、これはほとんどのスライドが4単語しかなくて、文字起こしも同じ単語の繰り返しなんだよ。

aiaizbba 2025/08/24 15:19:02

この記事の筆者はAIやエージェントの成功で大いに利益を得る立場の人だ。真の信者みたいだから非難じゃないけど、詐欺師も同じ行動をするだろうね。

JamesSwift 2025/08/26 00:13:57

ghuntleyの投稿はいつも楽しみにしてて、特に.NET関連の貢献には感謝してるんだけど、今回のフォーマットは気が散って読みにくかったな。ライブ版は知らないけど、スライドデッキのフォーマットも多分そうだろうね。1スライド2~4単語じゃ、アイデアは伝わらないよ。

losvedir 2025/08/24 14:27:03

ClaudeやChatGPTのツール利用の裏側を誰か教えてくれる?APIで「ツール」が提供されて、ツール呼び出しを求める応答が返ってきて、僕らが実行して結果を送り返すんだよね。でもモデルはテキストベースだから、どうやってAPI応答に変換してるんだろう?ファインチューニングでツール呼び出しを特定のブロックに入れてて、それをサーバーが理解してるのかな?この仕組みや内部の区切りトークンについてドキュメントはある?ユーザーのテキストがそれを邪魔しないように、どうやってるの?

jedimastert 2025/08/24 14:49:06

Anthropicのツール実装に関するドキュメントはここにあるよ
https://docs.anthropic.com/en/docs/agents-and-tools/tool-use
モデルは「テキスト」ベースじゃなくて「トークン」ベースだってことを誤解してるね。コンパイラがコードじゃなくトークンを使うように、出力には単語だけでなくメタデータも含まれるんだ。

libraryofbabel 2025/08/24 15:47:37

LLMとやり取りできるのはトークンだけなんだ。ツール呼び出しは特殊なトークンとAPIレイヤーを使ってて、ツール名や引数も渡すんだね。モデルはこれを解析して、ツールからの結果も特殊トークンで処理する。APIレイヤーがユーザーが特殊トークンを挿入するのを防いでるらしいよ。最近のモデルがツール呼び出しに強いのは、ファインチューニングをたくさんしてるからだね。特定のツール(Claude Codeが使うツールとか)に特化したファインチューニングもされてるみたい。これが全部うまくいくのは驚きだけど、ファインチューニングがめっちゃ大事なんだ。

the_mitsuhiko 2025/08/24 15:19:27

ツール呼び出しのファインチューニングって、俺の知る限りはまさにその通りだと思うよ。モデルは答えに確信がない時や指示された時にツールを返すように訓練されてるんだ。汎用的なツール訓練と、ツール固有の訓練があるね。例えばgpt-ossは検索ツールをすごく使うし、Anthropicはtext_editorやbashみたいな既知のツールを文書化してる。これらはただの汎用ツール利用より深い意味合いで訓練されてるんだろうな。全体的にちょっと脆いけど、ツール呼び出しは特殊トークンとかトークン列でインバンドシグナルされてるよ。

normie3000 2025/08/24 05:51:08

Bashツール以外に、なんで他のツールが必要なんだろう?
ファイルリストとかリポジトリ検索、ファイル編集とか、全部Bashでできそうじゃん?
これって https://news.ycombinator.com/item?id=45001234 で示されてることなのかな?

the_mitsuhiko 2025/08/24 07:43:54

正直、Bashツールだけでもいけるし、俺もそれで成功した経験はあるよ。エージェントからツールを取り上げて、どれだけクリエイティブに使うかを見るのは面白いんだ。でもね、他のツールを与えた方がパフォーマンスが上がる理由の一つは、SonneでこれらのツールについてRL(強化学習)がされてるからなんだ。モデルはツールの使い方を理解してるし、トークン効率も良いし、アクションの実行もずっと成功しやすいんだよ。Bashツールはね、時々Bash独自の表現で混乱したり、引数のエスケープが間違ったり、空白の扱いがうまくいかなかったりするんだ。

normie3000 2025/08/24 09:05:15

「モデルはこれらのツールの仕組みを理解していて、トークン効率も良く、一般的にそれらのアクションをより成功裏に実行する」って話、面白いね!
でも、元の記事の例ではそうは見えなかったんだけどな。例えば、list_filesツールを使って、JSON結果にREADMEが含まれているか確認するのと、bash [ -f README ]を使うのと比べてさ。

the_mitsuhiko 2025/08/24 15:13:52

その名前のツールに対する訓練はないよ。でも、パラメータが単なるパスで、それがかなり基本的なツールだから訓練は必要ないだろうね。
一方、Bashコマンドを実行する方法を知るにはBashを知る必要があるんだ。BashはClaudeモデルにとって既知のツールだし [1]、テキスト編集もそうだよ [2]。それらをツールリストで参照することになってるんだけど、少なくとも俺のテストでは、「bash」っていうツールを呼んだ途端、Claudeはそのツールの目的についてたくさんの仮定を置くんだ。

dotancohen 2025/08/24 08:25:26

Bashツールが、例えばBashismや引数のエスケープ、空白の扱いなどで混乱することがある、っていうのは、この返信で唯一ためになった文章だったよ。この調子でもっと詳しく説明してくれると嬉しいな。すごく重要な質問だったからさ。

zarzavat 2025/08/24 06:43:45

別々のツールにする方が、全部Bash経由にするよりシンプルだよ。もし全部Bash経由だと、承認のいらない安全なコマンド(ファイルリストとか)と、承認が必要な危険なコマンドを区別する方法が必要になっちゃうんだ。ファイルリストを別ツールにすれば、エージェントがプロジェクトディレクトリ外のファイルをリストアップしないように強制することもできるしね。

normie3000 2025/08/24 09:02:24

承認のいらない安全なコマンドと、承認が必要な危険なコマンドを分ける必要があるって話、すごく説得力があるね、ありがとう!

ghuntley 2025/08/24 12:16:01

うん、コーディングエージェントはBashツールとEditツール(これは正直、ちょっと任意だけど、ないとすごく非効率になる)だけでも動かせるだろうね。試したことはないけど、コード検索機能では苦労するかもしれないな。適切なプロンプトを与えれば可能だよ。例えば、LLMに「ソースコードを検索する必要があるなら、Bashツールでripgrepを使って」ってプロンプトするだけでいいんだ。

normie3000 2025/08/24 18:02:15

Edit toolって必須じゃないだろ?
patchとbash toolでソース編集できるし、効率が悪いってどこが?って疑問だよな。

BenderV 2025/08/24 06:57:50

人間だってshellですべてできるのに、なんでIDEが必要なんだ?
インターフェースは、必要な情報と取れるアクションを教えてくれるもんだろ。

normie3000 2025/08/24 09:10:56

もっと良い例え話があるな。
夫婦二人の家に信頼できる車が3台あるのに、積載量も燃費も悪い、オフロード性能も最高速度も劣る4台目の車が必要か?って話だよ。

kissgyorgy 2025/08/24 08:03:44

これは「3.2 How to design good tools?」で説明されてるよ。
LLMが細かいクリックやタイピングを何回もする手間を省いて、作業に集中させるためなんだ。
かわいそうなモデルを助けてやれよ!

normie3000 2025/08/24 09:00:48

この引用元がどこか分からないな。
リンクされてる記事には載ってないみたいだけど。

faangguyindia 2025/08/24 07:32:41

Bash tool以外のツールが必要なの?
俺の予想だけど、最初は限られたツールから始めて、後からbashも使えるって気づいたんじゃないかな。

pnt12 2025/08/25 09:18:46

今さらだけど、記事ありがとう!AgentのループやLLM、プロンプトのアイデアは良かったし試したい。
でも、AI compassとかAgentic/Non-Agentic LLMとか、怪しい概念が多くて「詐欺か?」って警戒しちゃうんだ。
1単語スライドもどうかと。
学べたけど不信感もある、正直な感想だね。

codingdave 2025/08/24 12:02:05

トークンをループに投げ続ければ、Agentが手に入る。
これって「お金」のことだよな?
「トークン」を「お金」に置き換えれば、まさに「お金をループに投げ続ければ、Agentが手に入る」ってことだろ。

ghuntley 2025/08/24 12:07:09

誰が「トークンはお金」なんて言ったんだ?
ローカルモデルもどんどん良くなってるし、今は最高の結果のためにトークンを買う必要があるけど、将来はそうじゃないかもだろ。

codingdave 2025/08/24 14:35:36

ローカルモデルだってタダじゃないよ、ベンダーよりは安いけどね。オフグリッドで電気も無料なら別だけどさ。無料枠もあるだろうけど、結局トークンにはお金がかかるんだ。

JamesSwift 2025/08/26 00:10:47

「オフグリッドで電気も無料なら別」って部分で笑っちゃった!著者の別の記事、https://ghuntley.com/internet/ を貼っとくね。ソーラーパネルあるのか分からないけど、たぶん持ってるんじゃないかな?

rvz 2025/08/24 12:22:55

「ローカルモデルはかなり良い」って言うけど、要約とか翻訳にはいいけど、コーディングエージェントやAIスタートアップの90%は結局API使ってトークン買ってるんだよ。まるで意味不明なエラーを直すためにトークンを無駄遣いする「バイブコーダー」ってAI企業のカモにスロットマシンを回させてるのと一緒だね。

Western0 2025/08/24 06:59:50

エージェントの作り方を書くより、そのエージェントが作ったプロジェクトを一つ見せてよ。

ghuntley 2025/08/24 12:08:21

自分でエージェントを作って、ここでHNの「Show HN」として共有してくれたら嬉しいな。

nickthegreek 2025/08/24 13:30:22

このエージェントは何か完全に作ったの?これはこういう記事をHNに投稿するなら当然答えられるべき、すごく分かりやすい質問だよ。

もっとコメントを表示(2)
chrisweekly 2025/08/24 12:47:04

シェアしてくれてありがとう。あと、荒らしは無視しなきゃダメだよ。

dangoodmanUT 2025/08/24 15:58:43

画像ばっかりで全然読みにくいんだけど…クソみたいなスクロールシミュレーターかよ。

wslomo 2025/08/24 13:29:02

「仕事がなくなる」って不安は目の前に迫ってる。LLMが出る前から鬱と闘ってる。「嘘つきな出力を監視するのにLLMと偽のガードレールを使う」なんてひどいシステム臭がするね。みんなやってるのは知ってるし、俺もコーディングエージェントは書いたけどさ。でもなんでこのページは洗脳みたいなオーウェル的な繰り返しデザインなの?
そんなのが必要だと感じられるなら、俺たちは常識を乗り越えなきゃいけない。巨人の肩に乗るつもりでコーディングエージェントを喜んで書くのかもしれないけど、みんな知ってるんだ、俺たちが作ってるのはテクノロジー版の覚せい剤帝国だってね。

bgwalter 2025/08/24 15:35:57

ドイツでは原子力みたいな良いものでも、1980年代に絶大な力を持っていた業界ロビーに逆らって止められたよ。IP盗用AIみたいな悪いものも止められるし、人々はどんどん監視の目を光らせて、いつか組織化されるだろうね。

russfink 2025/08/24 12:57:25

誰か、Oracle、Agent、高安全性、低安全性の軸について説明してくれない?

hobofan 2025/08/24 08:06:08

メタコメントはしたくないけど、これは最近見たブログ記事の中でも最悪なAIスロップ入りプレゼンテーションだね。なんでAI生成画像とか、箇条書きで済むことが全部個別の画像になってるの?読みにくいし、alt-textもないからアクセシビリティも悪いよ。カンファレンス発表が元なら、そのままの形式で載せてよ。

gregrata 2025/08/24 08:10:40

うわー、これ読めないね。イライラしてきて、PCの電源ボタン押す前にページ閉じちゃったよ :)

ahrjay 2025/08/24 12:35:26

EdgeとChromeのオンデバイスモデル、phi4-miniとGemini Nanoで試してみたけど、こんな小さいモデルでも驚くほどよく動いたよ。URL: https://ryanseddon.com/ai/how-to-build-an-agent-on-device/

overgard 2025/08/25 02:50:13

この種のコンテンツ、あのすごく不快な解説なしで欲しいな。ハウツーじゃなくてプロパガンダを読んでる気分になったよ。

_pdp_ 2025/08/24 11:34:17

個人的には、この問題領域に対する見方がすごく単純だと思うね。関数をたくさん追加するのはいいけど、スナップショット(Gitでの作業とか)、プロセスとネットワークレベルのサンドボックス化、プロンプトエンジニアリング、行き詰まりの検出、より良い解決策のための並列ソルバーを使ったモデル切り替えなんかはどう?こういうことがコーディングAgentを信頼できるものにするんだよ、関数宣言だけじゃなくてね。

ghuntley 2025/08/24 12:06:04

それは第3弾に含まれるよ。俺はこういうコーディングAgentを仕事で書いてるんだ。基本から始める必要があるんだよ、だって皆が職場で機能を自動化するために知るべきなのは基本だからね。それはコーディングAgentじゃないかもしれないけど。このワークショップは、例えばデータエンジニアリングカンファレンスで発表されたものなんだ。

Tewboo 2025/08/24 08:10:22

コーディングエージェントを作るには、まず明確な目標を立てて、AIをうまく使って、フィードバックをもとにどんどん改善していくのが大事だよ。簡単なタスクから始めて、徐々に規模を大きくしていくといいよ。

ghuntley 2025/08/24 12:19:03

うん、ベースとなるコーディングエージェント(ワークショップで学んだようなやつね)ができたら、それを使って別のエージェントでも何でも作れちゃうんだ。その核からスタートして、どんどん発展させていけるから、何でも構築可能だよ。

digitcatphd 2025/08/24 10:43:35

僕が引っかかるのは、このエージェントデザインのスタイル、つまりすごく大きな自律性を持たせるのが、デバッグで自己修正できるコーディング作業では理にかなってるってこと。でも、他のユースケースでエージェントにここまで自律性を持たせるのが、より構造化されたフローとかLangGraphみたいなのよりも優れてるのかな?って疑問に思うな。

user3939382 2025/08/24 11:41:47

コーディングエージェントのコツは、エージェントのトークンウィンドウに収まるようなタスクに注目させて、いつ「これは任せよう」って決めるかだよ。PMも全く同じ悩みを抱えているのが面白いよね。

ghuntley 2025/08/24 12:18:01

うん。必要なのは、方向性を決めてあげて、あとは追い風を吹かせてあげることだよ。

anonzzzies 2025/08/24 09:04:30

Claude Codeに匹敵する、ollamaやopenrouterみたいなLLMと連携できる最適なCLI(非インタラクティブオプション付き)って何?aiderはファイルを見つけられないし、オープンソースのGeminiはダメだった。Opusと組み合わせたらClaude Codeみたいに使える良いCLIはないかな?

ghuntley 2025/08/24 12:11:17

Opencodeはかなり良いし、君のニーズを満たせるはずだよ。一つ言っておきたいのは、Geminiは今エージェントとしてはあまり良くないってこと。GeminiはツールコーリングLLMとしては微妙で、ただのオラクルって感じだからね。詳しい情報はこちら→ https://ghuntley.com/cars/

akdev1l 2025/08/24 09:07:19

あんまりたくさん試してないけど、LLM cliは悪くないと思うよ。

loquisgon 2025/08/24 16:40:48

細かいこと言って悪いけどさ。著者がシーケンス図って呼んでるやつ、あれは違うよ。フローチャートだよ。

記事一覧へ

海外テックの反応まとめ
著者
海外テックの反応まとめ
暇つぶしがてらに読むだけで海外のテックニュースに詳しくなれるまとめサイトです。