コンテキストスイッチをゼロへ。Open-source AI Coworker「Rowboat」導入ガイド
「投資詐欺に注意」という標語のように、IT業界も「 AI ツールなら何でも魔法のように解決してくれる」という甘い言葉には注意が必要ですが、この Rowboat は、エンジニアにとってかなり「堅実で実利のある」ツールになり得るポテンシャルを秘めています。
一言で言うと、「あなたの作業文脈(コンテキスト)を忘れない、記憶力の良い AI 同僚」 です。
通常の AI チャットだと、別のプロジェクトの話を始めると前の話を忘れてしまったり、いちいち前提条件を説明し直したりする必要がありますよね。Rowboat は 「Memory(記憶)」 に特化しており、過去のやり取りやプロジェクトの構造を学習・保持することで、阿吽の呼吸でサポートしてくれることを目指しています。
コンテキストスイッチの削減
「さっきのあの関数の修正、こっちのファイルにも適用して」といった曖昧な指示が通りやすくなります。
オンボーディングの自動化
チームに導入すれば、過去の決定事項やコードの書き方を AI が覚えているため、新入りメンバーの質問攻めを(少しだけ)肩代わりしてくれます。
プライバシーとカスタマイズ
オープンソースなので、自分の環境で動かせば、機密性の高いコードベースを外部サービスに無防備に投げ出すリスクを抑えられます。
基本的には Python 環境があれば試せますが、Docker を使うのが一番クリーンで手っ取り早いです。
git clone https://github.com/rowboatlabs/rowboat.git
cd rowboat
.env.example をコピーして、使用したい LLM(OpenAI や Anthropic など)の API キーを設定します。
cp .env.example .env
# .env をエディタで開き、API_KEY を入力
Docker Compose を使う場合
docker-compose up
これでローカルサーバーが立ち上がり、ブラウザから AI 同僚と会話ができるようになります。
Rowboat の真骨頂は、API を通じて「知識」を注入し、それを元に回答させることです。Python SDK を使うイメージで、どのように AI に知識を定着させるかの例を見てみましょう。
from rowboat import RowboatClient
# クライアントの初期化
client = RowboatClient(api_key="your_api_key")
# 1. AIにプロジェクト独自のルールを教え込む(記憶させる)
client.remember(
text="当プロジェクトでは、変数の命名規則に snake_case を使用し、非同期処理には必ず Python の asyncio を利用します。",
category="coding_standard"
)
# 2. 記憶に基づいた指示を出す
response = client.ask("新しいデータ取得関数を作って")
print(response)
# 出力例: "了解しました。snake_case と asyncio を使用して、fetch_data() 関数を作成します..."
このように、一度教えたルールを「記憶」として保持し続けるため、毎回プロンプトに「命名規則は〜」と書かなくて済むのが非常に快適です。
投資詐欺への警戒と同じように、AI ツールも以下の点には気をつけましょう。
「記憶」の鮮度
コードベースが大きく変わったのに、AI が古い記憶(古い仕様)を元に提案してくることがあります。定期的な記憶の更新(インデックスの再構築)が必要です。
ハルシネーション(幻覚)
記憶力が良くても、知らないことを「知っているフリ」をして嘘のコードを書くことはあります。必ず人間がコードレビューを行いましょう。
Rowboat は、単なるチャットボットを超えて、「自分の分身(あるいは優秀なアシスタント)」 を育てる感覚で使える面白いツールです。
まずはローカル環境で自分の個人的なメモや、ドキュメントを読み込ませて「自分専用のナレッジベース」を作ってみるのはいかがでしょうか?