OpenHandsの調査

devinが話題になっており試したいが、流石に500$は試せないのでスルーしてたが
OpenHandsというOSSでホスティングすればAPI課金だけで済みそうなのがあるらしいので
試してみようと思う。
API呼び出し以外はシンプルなエージェントだと思うので、そんなスペックいらないかと思い
家で余ってるラズパイにインストールしてみる

構築環境
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04 LTS
Release: 24.04
Codename: noble
インストールまで
Docker入れる
これで
OpenHandsを立ち上げる
現時点最新の0.27を立ち上げる
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.27-nikolaik
docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.27-nikolaik \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands-state:/.openhands-state \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.27

起動後ブラウザでアクセスするとこんな感じ
API Key設定
Claude契約してないので、OpenAIのo3-miniのAPI Keyを設定する
でAPI Keyを発行する
Githubに繋げる
Connect to Githubをクリックして
Get your token hereのリンクをクリック
必要な権限をチェックつけてくれた、Github Token作成画面に飛ばしてくれる
そのまま特に設定変更せずにGenerate Token
作成されたTokenを元ページに貼り付ける
あとはAdditional Settingsで日本語にしてみた
これでSave
トップに戻りGithub Projectから自分のリポジトリが見れてることが確認できる

適当にtodoアプリを作らせてみる
とりあえず初期状態としてGoのginのHello Worldコードを置いたリポジトリを作りました。
ここでTodoアプリを作らせてみます
リポジトリを選択すると以下のような画面が出ました。
指示を出したら、エラーが出た
Docker側のログを見ると、
raise NotFoundError(
litellm.exceptions.NotFoundError: litellm.NotFoundError: OpenAIException - Error code: 404 - {'error': {'message': 'The model `o3-mini-2025-01-31` does not exist or you do not have access to it.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}
と出てたので、別のモデルに変えた
gpt-4o-mini とした
そして指示を出す。
frontendでreact入れ始めたので、止めてまずはバックエンドだけを作らせてみる
リポジトリのコンテキスト無視して、勝手にpythonプロジェクトを作り始めた。。。
モデルもう少し良いのにするか..
モデルをgpt-4oに変えて、再度1からワークスペースを立ち上げた
これも微妙だなぁ...
コンテキストガン無視するし、git pushとかもリポジトリ名読み込んだりしない。。
設定が良くないのかモデル的に微妙なのか....

Githubリポジトリ指定せずにやってみる
これだとあまりCopilot agentとかと変わらなそうだけど
これで作ってくれて、ALLOWED_HOSTSとか抜けてアクセスエラーが出たので
対応してもらった
これで簡易的なTodoアプリを作ってagent上で動かしてくれたよ

Githubリポジトリに上げてもらう
何回かミスってたが、最終的には渡しておいたGithub TOKEN利用してPushちゃんとしてくれた
pychacheとかも入ってるな...

一旦終わり
うーんちょい微妙。。
OpenHandsで動いてるようという情報を毎回与えないといけない感じで全部お任せみたいなことができない。。。
これはモデルが良くないのか、設定とかが良くないのか...
Devinとかだとこの辺のコンテキスト込み込みで問題解決だけに注力してくれるのかな...
現状だとまだCopilot AgentとかのエディタのAI Agentとかの方が有力に感じる
が、多分上の問題はすぐ解消されそうな気がするのでそうなると楽しみ
もうちょい待ちかな。。。