詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Fork me on GitHub

AIとメールしてビジネスメール筋を鍛える

学生の頃には自堕落な生活を送り、よく知らない人とのコミュニケーションなんて勘弁だぜ、なんて思っていた人間も会社に入り社会人としての暮らしを送るうちに、気づけばだんだんと社会性を身に着けていた。20代で店に予約の電話ができるようになり、30代になってからは早起きもできるようになった。そんな男が40代求めることは……? そう、メールを書けるようになることだ。

メールって難しいよね。SlackやGitHubで気の知れた人とやり取りするのとは違って、メールを送る相手はだいたい外部の人で、ビジネスメールのマナーに則る必要があることによる居心地の悪さがあるし、何か間違えたことがあってもあとから修正できない恐ろしさもあるな。あーこのメール送らなきゃ、返信しなきゃと考えているうちにずるずると先延ばしにしてしまい、それだけ不義理をはたらいてしまうことになる。

メールを送るのに難しさを感じるのは、その行為が特別なことになってしまっているからだ。メールを送ることがもっと普段のことになっていれば、よく知らない人とのコミュニケーションということを差っ引いても、ある程度自動的に筆を進めることができるようになり、その分心理的な負荷も減らせるだろう。

そういわけで誰かと文通でもしたらいいかと思ってたのだけど、考えたら相手は生成AIでもいいのだった。

ではやっていきましょう。

作ったもの: ai-mail-pal

決まったメールアドレスにメールを送ると、LLMが返事を書いて返信してくれるシステムを作った。

AI山田さんは適当な名前です

GitHub - motemen/ai-mail-pal

大まかにいうと、Amazon Simple Email Service (SES)とAWS Step Functionsを使った構成。メールを受信も送信もするならSESを使うのがよかろうってのと、人間がそうであるように、受信してから実際に返信をするまでにインターバルを挟みたかったのを、Step Functionsを利用して実現することにした。

設定ファイルをリポジトリに含めているとおり、送信先であるメールアドレスのローカルパートによって人格(モデル、プロンプト、返信にかかる時間)を使い分けることができる。Step Functionsはワークフローの実行期間が最大1年とのことなので、返信時間を長めにとっておけば昔の知人にメールを送ってみたら数カ月後に返事が帰ってきた、みたいな体験もできるだろう。趣旨からはずれるけど。

実装はAIにやらせたのだけど結局デプロイは人間がやるしかない。メールの疎通確認にいちばん時間がかかったよ……。あと、SESのEメール受信ルールセットはアカウントで1つしか有効にしかできないのは知らなかったぜ。

やってみた結果

冗談のようだけど、使ってみるとなんかそれなりに便利な気がする。メールに返信する際はそれまでの内容が全部引用されるので、会話の履歴の情報も自然に含められることとなり、メールのやりとりを複数回続けることができるのは強く想定はしていなかったけど便利だった。

また、リアルタイムを求めない対話コミュニケーションでは普段と違った頭の使い方が要求されるのを感じて面白い。こうして面白がって使っているうちにメールを書くことへの抵抗もなくなっていくかもしれないですね。

はてなで一緒に働きませんか?