🦑

Julesが走っている仮想環境の構築をしてみたい(by C++ユーザ)

に公開

Julesの公式ドキュメント
↑本質はここに概ね書かれてる
Julesを最大限活用する神プロンプトとかは,この記事には載ってない

Julesとは

Jules is an experimental coding agent that helps you fix bugs, add documentation, and build new features. It integrates with GitHub, understands your codebase, and works asynchronously — so you can move on while it handles the task.

と,一番上に書いてある.
(意訳気味だが) JulesはGitHubと連携して色々できる,非同期コーディングエージェントである,と.

...実際には,この文章よりもちょっと下の,

Jules runs in a virtual machine where it clones your code, installs dependencies, and modifies files.

というところが気になる.日本語で言うなら,(クラウド上の)仮想環境で動作している,という文.こちらの方が本質を表してるんじゃないかな,と個人的に思う.
とどのつまり,いい「環境」を作ってあげて,その上でJulesが活動できるようにしてあげないといけない.
(近い運用のシステムとしては,「GitHub Actions」あたりだろうか.
...GitHub被りで紛らわしくて申し訳ないが,使ったことがある人ならイメージはつくかも.)

環境構築は基本的にubuntuベースで,スクリプト入力欄にコマンドを書き込んでおくとJulesの起動前に実行される,という感じ.
ドキュメントの環境構築に関するページ
まずはdirとかだけ入れて,環境構築スクリプトを走らせてみるのもいいかも.
どんなふうに環境を作ってるか,様子が見える.(このスクリプトの前段階でも,いろいろ勝手に実行されてる.)

既存のリポジトリ等と連携してみたけど,Julesにファイル編集権限がない,と言われたとき

編集権限関連で止まった場合,そのタスクが無駄になって終わることがある.何度か遭遇した.

dir
find ./ -type d -exec chmod 777 {} +
find ./ -type f -exec chmod 644 {} +

とやればなんとかなる(記事作成段階).
権限付与はセキュリティが関わりそうでどうにも慣れないが,そもそもが仮想環境である関係上基本的にはそこまで怯えなくていいはず.

ついでに.C++環境もメモ

自分は普段Windowsでの開発を前提に,vcpkgでライブラリ環境を整えることが多いです.
プロジェクトごとに依存するライブラリを書いといたらいい感じにやってくれるので,
Rustのcargoに近い感覚で管理できる気がします(こう書くと怒られるかもしれない).
まあCMakeから逃れられるわけではないんですが.

sudo apt update 
sudo apt install -y \
    build-essential \
    g++ \
    clang \
    cmake \
    git \
    pkg-config \
    curl \
    zip \
    unzip \
    tar 

sudo apt install -y \
    x11-apps \
    libx11-dev \
    libxext-dev \
    libxrender-dev \
    libxtst-dev \
    libxi-dev 

sudo apt install -y libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev

VCPKG_ROOT=/vcpkg
sudo mkdir /vcpkg
sudo chown 1001 /vcpkg
git clone https://github.com/microsoft/vcpkg.git ${VCPKG_ROOT} \
    && ${VCPKG_ROOT}/bootstrap-vcpkg.sh \
    && ${VCPKG_ROOT}/vcpkg integrate install


PATH=${VCPKG_ROOT}:${PATH}

cmake -S ./ -B build  -DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake

多くの人は,GUI関連のところはいらないかもしれない.

所感

タスク枠に余裕があるなら,2~4並列くらいで同じタスクを複数の表現で入力して実行させるのがいい気がする.
自然言語の良くも悪くも(悪くも悪くも?)曖昧な部分にJulesが困ってしまったり,勝手に困るケースが見受けられる.
(個人的には,並列作業させた上で,それぞれが出したコードを比較してどれを採用するか,これを考える余裕がないと採用できない気がしている.ほんとに非同期で別ごともしつつ使いこなせるユーザはどれくらいいるのか.)

参考

Julesの公式ドキュメント

Discussion