🤖

Devstral+OpenHands コーディングエージェントAIをローカルで動かす

に公開

MistralAIからDevstralというコーディングエージェントが出たので、ローカルで動かしてみた記録です。
https://mistral.ai/news/devstral


前提

  • Mac (Apple Silicon)
  • 32GBのメモリはある
  • Dockerインストール済み

モデルを取得

GUIで楽に管理したいのでLMStudioを使いました。
https://lmstudio.ai/

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