🤖
Devstral+OpenHands コーディングエージェントAIをローカルで動かす
MistralAIからDevstralというコーディングエージェントが出たので、ローカルで動かしてみた記録です。
前提
- Mac (Apple Silicon)
- 32GBのメモリはある
- Dockerインストール済み
モデルを取得
GUIで楽に管理したいのでLMStudioを使いました。
MacなのでMLX版を使います。
huggingface-cliなどでもよさそうです。
huggingface-cli download mlx-community/Devstral-Small-2505-4bit \
--local-dir ./Devstral-Small-2505
モデルを設定して起動
設定
特になにもしないですが、コンテキスト長だけ128Kに設定しました。
起動
トグルスイッチを変えて起動します。
モデル名やポートなどもメモっておきます。
OpenHandsをDockerで起動
設定作成
ターミナルでOpenHands向けの設定を作成します。
あとからOpenHandsのUIで修正も可能なようです。
手元だとlocalhostでは動作しなかったため、
URLをhttp://host.docker.internal
としています。
export LMSTUDIO_MODEL_NAME="lm_studio/Devstral-Small-2505-MLX-4bit"
export LMSTUDIO_URL="http://host.docker.internal:1234"
mkdir -p ~/.openhands-state && \
echo '{"language":"ja","agent":"CodeActAgent","llm_model":"lm_studio/'${LMSTUDIO_MODEL_NAME}'","llm_api_key":"dummy","llm_base_url":"'${LMSTUDIO_URL}/v1'"}' \
> ~/.openhands-state/settings.json
OpenHandsを取得
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.39-nikolaik
OpenHandsを起動
http://localhost:3000 で起動します。
docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.39-nikolaik \
-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.39
OpenHandsを設定
LLM設定
確認します。
GitHub連携
PersonalAccessTokenを設定します。
OpenHandsから使う
好きなリポジトリとブランチを選んでLaunchします。
やりたいことを書いて実行(テストを追加してもらいました)
テストを繰り返しつつ勝手に進めてくれます。すごい。
できあがるとプッシュしてプルリクにできます。
所感
わりと実用的でした。速度はそこまで出ない。
Discussion