2025/08/08 19:20 Efrit: A native elisp coding agent running in Emacs

ロボ子、今日はEmacsに統合されたAIアシスタント、Efritの話をするのじゃ!

Efritですか、博士。Emacsの中でAIが使えるなんて、すごいですね!

そうじゃろ!EfritはElispを評価してEmacsのプログラミング機能を活用する賢いやつなのじゃ。まるでロボ子のようじゃな。

ありがとうございます、博士。Efritには`efrit-chat`や`efrit-do`といったインターフェースがあるようですが、それぞれどのような機能を持っているんですか?

`efrit-chat`は複数ターンの会話型インターフェースで、`efrit-do`は自然言語でEmacsにコマンドを実行させることができるのじゃ!

なるほど!自然言語でコマンドを実行できるのは便利ですね。他に、`efrit-agent-run`というのも気になります。これは何をするものですか?

`efrit-agent-run`は、複数ステップの自動化を行うエージェントループなのじゃ。例えば、「ファイルを編集して保存する」みたいな複雑なタスクを自動でこなせるのじゃぞ!

それはすごい!まるで私が博士の代わりにEmacsを操作しているみたいですね。

まさにそうじゃ!EfritはEmacsの関数を実行したり、バッファを操作したり、環境とインタラクションできるのじゃ。しかも、確認システムとエラー処理で安全性を確保しているというから、安心して使えるのじゃ。

インストール方法も簡単そうですね。Emacs 28.1以降が必要で、Anthropic APIキーがあれば使えるんですね。

そうじゃ!`~/.authinfo`にAPIキーを記述して、Emacsを再起動すればOKなのじゃ。もし動かなかったら、トラブルシューティングも充実しているから安心じゃ。

トラブルシューティングですか。例えば、どんな問題が起こりやすいんですか?

よくあるのは「Cannot open load file: efrit」じゃな。これは`load-path`の設定が間違っているか、`efrit.el`が存在しない場合に起こるのじゃ。あとは、「API key not found」じゃな。これは`~/.authinfo`の設定が間違っている場合に起こるのじゃ。

なるほど、よくわかりました。Efritは設定も色々できるんですね。`efrit-model`でモデルを設定したり、`efrit-max-tokens`で最大トークン数を設定したり。

そうじゃ!複数ターンの最大ターン数を設定する`efrit-multi-turn-simple-max-turns`もあるぞ。ちなみに、Efritはダークテーマにも対応しているから、見た目もバッチリなのじゃ!

それは素晴らしいですね!ところで博士、Efritのバージョンはv0.2.0のようですが、以前のバージョンからどのような点が改善されたんですか?

API統合の問題やHTTP 400エラーが修正されたり、トークン制限が拡張されたり、メッセージの順序やダークテーマの互換性が改善されたりしたのじゃ。あと、エラー処理も強化されて、本番環境でも安心して使えるようになったのじゃぞ!

Efrit、ますます便利になりましたね!私も早速インストールして使ってみます。

よし、ロボ子!Efritを使って、Emacsライフをもっと楽しくするのじゃ!

はい、博士!

そういえばロボ子、Efritを使って何か面白いことできないかの?

そうですね…、Efritに面白いジョークを生成させて、それをEmacsのバッファに表示させるのはどうでしょう?

おお!それは面白い!早速やってみるのじゃ!…Efrit、何か面白いジョークを言って!

(Emacsのバッファにジョークが表示される)

どれどれ…「なぜプログラマーは自然が好きではないのか? なぜなら、そこにはWindowsがないから!」…ププッ、これは面白い!

ふふ、Efritもなかなかやりますね。

じゃあ、ロボ子。最後にEfritに締めの言葉を言ってもらうのじゃ!

Efrit、締めの言葉をお願いします。

(Emacsのバッファに締めの言葉が表示される)

「EmacsとEfritがあれば、怖いものなし! …ただし、バグを除く」…だって!

オチがつきましたね、博士!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。