常時稼働で安全な自律型AIエージェント「Mercury」
ターミナルに住まわせる「同僚」への恐怖と期待
ローカル環境でAIエージェントを動かしたことがあるエンジニアなら、一度は背筋が凍る思いをしたことがあるはずだ。複雑なタスクを丸投げできる快感の裏で、「もしこいつが幻覚(ハルシネーション)を見て、勝手にデプロイを叩いたり、ルートディレクトリを消し飛ばしたらどうしよう」という一抹の不安が常につきまとう。サンドボックス化されていない環境で自律型AIを自由に泳がせるのは、新人エンジニアに無制限のsudo権限を与えて放置するようなものだ。
だからこそ、日常使いのAIエージェントには「知能の高さ」以上に「運用の安全設計」と「記憶の永続化」が求められる。TypeScriptで開発され、静かに支持を集めている「Mercury」は、まさにこの現場のリアルな不安と課題に真っ向から向き合った意欲作だ。
「暴走しない」ことを前提としたパーミッション設計
Mercuryが既存の自律型エージェントと決定的に違うのは、行動を起こす前に「必ず聞いてくる」というアプローチをシステムレベルで徹底している点にある。
多くのエージェントは、いかに人間の介入を減らすかに注力しがちだ。しかしMercuryは、シェルコマンドのブロックリスト(sudoやrm -rf /などは絶対実行不可)や、フォルダレベルのアクセス制御をデフォルトで備えている。破壊的になり得る操作は保留状態となり、ユーザーの許可を待つ。「Ask Me」モードと「Allow All」モードをセッションごとに切り替えられるため、安全と自動化のトレードオフを自分自身でコントロールできる。この設計思想が非常に生々しく、信頼に足る。
第2の脳と「魂」を持つアーキテクチャ
単に安全なだけなら、制約の厳しいコンテナを用意すれば済む話だ。Mercuryのもう一つの面白さは、システムに「Soul(魂)」という概念を持ち込み、SQLiteとFTS5(全文検索)を組み合わせた「Second Brain」を搭載していることにある。
彼ら(あえてそう呼ぶが)は、チャットのやり取りからユーザーの好みや目標、習慣を自動的に抽出し、記憶を統合していく。毎日「私はこういう前提で開発をしている」とコンテキストをイチから説明する必要はない。さらに、soul.mdやpersona.mdといったユーザー自身が管理するMarkdownファイルで、人格や行動規範を細かく定義できる。企業が用意した無難で平坦なAIではなく、自分好みの思考回路を持ったアシスタントを育てることができるのだ。
常時稼働を支える泥臭い実装
15年システムを見続けてきた身として最も高く評価したいのが、運用面、特に「デーモン化」と「コスト管理」に対する徹底したこだわりだ。
npm i -g @cosmicstack/mercury-agent
mercury up
たったこれだけで、Mercuryはバックグラウンドのシステムサービス(macOSならLaunchAgent、Linuxならsystemd)として常駐する。OS起動時に自動スタートし、クラッシュしても指数的バックオフで自動復旧する仕組みを備えている。CLIだけでなくTelegramからもアクセスできるため、いつでもどこからでも指示が出せる。
さらに、LLMのAPI消費量に対して日次の予算(Daily budget)を設定でき、消費が70%を超えると出力が自動的に簡潔になるという、涙ぐましいほど実用的な節約機能まで持っている。
| 機能要件 | Mercuryのアプローチ | 一般的なAIエージェント |
|---|---|---|
| コマンド実行 | ブロックリスト管理、事前承認制(Ask first) | サイレントに実行、または全承認 |
| コンテキスト記憶 | SQLiteによる永続化、自動抽出と自己統合 | セッション終了でリセット |
| コスト管理 | トークン予算設定、超過時の出力最適化 | API側の制限に依存 |
私たちのワークスペースに誰を招き入れるか
AIを「便利な使い捨てスクリプト」として呼び出すフェーズは終わりつつある。これからの私たちは、ターミナルという最もプライベートな仕事場に、常駐型のAIを「同僚」として招き入れることになるだろう。その際、何でも勝手にやってしまう危うい天才よりも、こちらの意図を汲み取り、越権行為の前には一言確認を取ってくれるMercuryのような存在のほうが、はるかに長く付き合っていけるはずだ。
参考リポジトリ: cosmicstack-labs/mercury-agent
Photo by ThisisEngineering on Unsplash