MCP対応のエージェント Gooseを試してみた!
AnthropicのAlexが紹介していて気になったので、ちょっと触ってみることにしました!(現在深夜4時過ぎ)
セットアップはかなり簡単そうです。
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | sh
そうすると、どのLLM使う?って聞かれるので、
やはりここはGoogleさんで!
APIキーを入れて、
デフォルトモデルはgemini-2.0-flash-exp
らしいので、推論モデルと迷いましたが。。とりあえずこっちでやってみよう!
あっという間にインストール完了したらしい。
パスが通ってないから、自分でパス通してね!って書いてあったので
vim ~/.bashrc
export PATH="/Users/ユーザー名/.local/bin:$PATH"
と追記して
source ~/.bashrc
そしたら、適当な作業ディレクトリを作って、そこでターミナルで。。
goose session
エージェント系だとOpenHandsというのが最近話題みたいです。
記事も書いたので、気になる方はぜひ!
ふむ、何か立ち上がりましたね。
あとはもう。。ここに
普通にプロンプトを入れれば、勝手に作ってくれるらしい!まじで。。?
プレイヤーとボットが対戦する三目並べゲームをJavaScriptで作って
とお願いしてみました。
ん?こんな感じでhtmlは出力してくれてるけど。。
あれ、自分でファイル作って書けってこと?
そんなの、エージェントじゃないやんっ!!
しょうがないからドキュメントにある通りの英語で
何回かお願いしたら。。
作ってくれました!
開いてみたら。。
ふむ、ちゃんとできてますね!
(三目並べってなんだ?と思ってたのですが、これか!!)
何回かお願いしてみないとちゃんとファイル作ってくれなかったんですけど、なんかプロンプト上手く使わないといけないのかな。。
日本語の場合でも
プレイヤーとボットが対戦する三目並べゲームをJavaScriptで作って!ファイル作成、構築まで全部お願いね
といったらファイル作ってくれた!
ただ、自分の環境だとターミナル上で一生懸命日本語打つとバグって操作不能になったりターミナルが落ちることがあったので、
日本語のプロンプトをあらかじめどっか別で打っておいて
それをペーストした方がいいかもです!
さて、いつもリアルタイムに書きながら検証してるのですが。。
なんかいまいちインパクトに欠けるなw
とりあえず、ブラウザ開いたり諸々の操作を自動化してもらうために
拡張機能を有効にします!
goose configure
Add extension> Built-in Extension>を選択
そしてComputer Controllerを選択して有効化
goose session -r
これで直前のセッションを起動できるらしい。
あとは、
index.htmlをブラウザで開いて!
みたいにプロンプトを与えると、作業フォルダ内のファイルをブラウザで開いてくれます!
なんか適当にクイズゲームでも作ってもらおう。
シンプルなクイズゲーム作って!問題も10個ぐらいちゃんと作って組み込んでね!
といったら、結構考えて。。作ってくれました!
しかも、ちゃんとファイル作成して、自動でブラウザで開くところまでやってくれた!
おぉ。賢いな。。
こんな感じに連続で10問答えさせられるやつでした!
何か二問間違えてるw
ふむふむ、なかなかすごいぞ。。
ちなみになんですが、CLINEとかRoo-Clineだとかなんか色々流行ってますが
めんどくさそうなので試したことないため。。
それらに比べてこのGooseがどんな感じなのかは、わかりません!w
なんか、みんなが散々試して、騒いでるやつを後追いで触る気にならないんですよね。。
だからこそ、まだあまり触ったことがなさそうなこれを触ってますw
次は、なんかいちいち
「ファイル作成と構成までお願いね!」とか
「ブラウザで開いて!」というのめんどいな。。と思ってたら
メモリとかいう機能があるらしい。
あ、ガチョウっていうのはGooseのことです。
先ほどと同じように
一回gooseを終了して
goose configureから
Memoryを有効化
僕の好きな動物は猫ね!これも覚えておいて!
---
はい、承知いたしました。あなたの好きな動物は猫ですね。この情報を記憶しておきます。今後、会話の中で猫に関する話題が出た際には、この情報を考慮して対応します。
─── remember_memory | memory ──────────────────────────
category: personal
data: 好きな動物は猫
is_global: true
tags:
-
animal
-
preference
はい、あなたの好きな動物が猫であることを記憶しました。`personal` カテゴリに `好きな動物は猫` という情報が保存され、`animal` と `preference` のタグが付けられ
ています。これで、今後の会話で猫に関する話題が出たときに、この情報を活用することができます。
ふむふむ、これでちゃんと記憶しておいてくれるのか。
なるほど、これは便利そう!
この状態で
今後、コーディングの時にはしっかりファイルの作成、構成まで含めてしっかりやってね!完成後は、たとえばindex.htmlとかをブラウザで開いてくれるといいな!これをメモリに記憶しておいて!
これで、ローカルストレージに保存しますか?みたいなこと聞かれたので
保存しておいて!といっておきました。
これで、次からちゃんとやってくれるかな。。?
んー、なんかいちいち聞かれるけど。。まあちゃんとファイル作ってくれるようになった!
( O)> リッチなUIのクイズゲームを作って!実際に10個ぐらい問題を考えて、それも組み込んで!
---
はい、リッチなUIのクイズゲームを作成します。10個の問題も考えて組み込みますね。どのような技術で開発しましょうか?例えば、以下のような選択肢が
考えられます。
1. **HTML, CSS, JavaScript**: Webブラウザで動作するゲームです。最もポータブルで、様々な環境で動作します。
2. **Python (Tkinter, PyQt)**: デスクトップアプリケーションとして動作するゲームです。よりリッチなUIが実現できます。
どちらが良いでしょうか?
( O)> 1かな!
了解しました。HTML, CSS, JavaScript でWebブラウザで動作するクイズゲームを作成します。
まずは、基本的な構成として、以下のファイルを作成します。
- `index.html`: HTMLの構造を定義します。
- `style.css`: CSSで見た目を整えます。
- `script.js`: JavaScriptでゲームのロジックを実装します。
次に、10個のクイズ問題を作成します。問題と解答の形式は以下の通りにします。
問題の作成が完了したら、ファイルを作成して、実装に取り掛かります。
よろしいでしょうか?
( O)> うん、お願い!
---
はい、それではクイズの問題を10個作成します。以下に作成した問題と解答をJSON形式で記述します。
```json
[
みたいな感じで、まあヒアリングしながら作っていくのはいいことだよね!
でも、作り終わってもブラウザで勝手に開いてはくれなかった。。
はい、`index.html`, `style.css`, `script.js` の3つのファイルを作成し、保存しました。
これでクイズゲームが動作するはずです。`index.html` をブラウザで開いて、ゲームを試してみてください。
もし何か問題が発生したり、UIの改善要望があれば、お気軽にお知らせください。
( O)> ブラウザで開いて?
---
はい、ブラウザで開きます。
この操作は、macOSのデフォルトブラウザで `index.html` ファイルを開くAppleScriptを実行することで実現できます。
─── computer_control | computercontroller ──────────────────────────
script: ...
はい、`index.html` をブラウザで開きました。クイズゲームは表示されていますでしょうか?
もし、表示されない、または何か問題があれば、お気軽にお知らせください。
開いて?っていったら開いてくれたからまあ、いいか。。?
そして、いつも思うんですけど。。
これ系のやつが出た時に
「これで無限にサービス作れる!」
「生産性爆上がり!!!」
ってみんなテンション上がってるんですが、
みなさん。。そんなに無限にアイデアが湧いてくるのかな?
羨ましすぎる!!
何をつくらせたらいいのか、全く思い浮かばないので
この手のやつまじで使いこなせないんですよね。。w
関連記事
コメント