- agent-shell は、Emacs で AI エージェントを直接制御できる comint-mode ベースのネイティブシェル
- ACP(Agent Client Protocol) を使用し、特定のエージェントに依存せず、さまざまなエージェントと通信できる 柔軟性 がある
- リアルタイムの トラフィック解析機能 と フェイク(fak)エージェントのリプレイ 機能により、テストと開発の効率が向上
- まだ プロトコルの全機能は未実装 だが、素早く実用可能なレベルの実装を示している
- agent-shell と acp.el はどちらも GitHub で公開されており、追加機能やバグに関するユーザーフィードバックを歓迎している
紹介
- 最近、Emacs Lisp で実装された acp.el により、Zed と Google が共同開発した Agent Client Protocol(ACP) との連携が可能になった
- 従来は chatgpt-shell など LLM との基本的な連携しか提供されておらず、AI エージェントの本格活用はゆっくりとしたものだった
- ACP の導入により、Emacs 環境内でのエージェント連携ニーズが高まり、Emacs ネイティブの agent-shell の開発を始めることになった
agent-shell 概要
agent-shell は comint-mode をベースとしており、Emacs の使い慣れた バッファシステム の中で動作する
- 文字モードや行モードへの切り替えなしに、通常の Emacs シェルと同じように使える環境が提供される
Agent-agnostic(エージェント非依存)
- ACP のおかげで、1 つのプロトコルでさまざまなエージェントと通信できる 一貫したユーザー体験 を実現できる
- 設定例を通じて、Gemini CLI や Claude Code などのさまざまなエージェントを 簡単なコード変更だけで適用 できる
- 例示コード: 各エージェント向けの認証、コマンド、環境変数の設定方法を説明
- 他のエージェントも同じ方法で簡単に連携できる
トラフィック表示機能
- ACP プロトコルの利用にまだ慣れておらず、通信トラフィックをリアルタイムで解析 する必要があった
- agent-shell では専用の トラフィックビューワーバッファ を提供し、
M-x agent-shell-view-traffic コマンドで JSON ベースのトラフィックを視覚的に確認できる
Fake agents(フェイクエージェントとリプレイ)
- 実際の有料エージェントを使った開発では、コストと時間の非効率が問題になるため、フェイクエージェントのリプレイ 機能を導入した
- トラフィックバッファ経由で保存した通信データを再生(replay)することで、何度でも高速にテストできるようになった
- 一部に制約や限界はあるものの、デバッグと開発プロセスの効率は大きく向上する
今後の計画と現在の状態
- Agent Client Protocol Schema の一部しか実装されておらず、未完成の部分が残っている
- n/p キーを使った クイック(diff)バッファ や permission dialog など、革新的な UX の実験を進めている
- プロトコル機能全体を把握しつつ、追加実装を進める予定
GitHub 公開と活用案内
- agent-shell と acp.el はどちらも GitHub で公開されている
- agent-shell: エージェント利用者向けパッケージ
- acp.el: エージェント関連の連携パッケージを作りたい開発者向けライブラリ
- どちらのプロジェクトも非常に初期のベータ段階にあり、バグ報告や機能要望の提出が推奨される
- クラウド LLM サービスの利用には追加コストが発生し、オープンソース開発そのものにも費用と労力がかかる
- プロジェクトが有用であれば、サポート(支援)への参加を勧めている
1件のコメント
Hacker Newsのコメント