メール
インバウンドメッセージの配信方法に応じて、2つのメールチャネルがあります。
エージェントと対話できるユーザー
受信側の送信者は、バインドされたエージェントに対して解決されたピアセットに照らして制御されます。これはエージェントが所属する peer_groups 設定から導出されます。照合では先頭の @ を取り除き、チャネルのネイティブな送信者識別子に対して大文字・小文字を区別せずに行われます。空のセットはすべてを拒否し、"*" を含むセットはすべてを受け入れます。それ以外の場合は、リストに記載された外部ピア(およびピアエージェント)のみが受け入れられます。これはゲートウェイのペアリング(gateway.require_pairing)とは別物であり、ペアリングはチャットチャネルの送信者ではなく HTTP/WebSocket クライアントを認証します。
メールのピアグループでは、channel を email に設定し、許可する送信者を external_peers に列挙し(メールの場合は送信者のメールアドレス。["*"] は誰でも受け入れます)、必要に応じてエージェント間ディスパッチ用のピア agents、ignore ブロックリスト、および output_modality(mirror、voice、または text)を指定します。フィールドのリファレンスについては Peer Groups を参照してください。
この設定の場所:
IMAP + SMTP (email_channel)
汎用のメールチャネル。IMAP をポーリングして新しいメッセージを取得し、SMTP 経由で送信します。Gmail、Outlook、Fastmail、自前の Postfix、および IMAP/SMTP をサポートするその他のサービスと連携します。
default_subject
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開いて、channels.email.<alias>.default_subject フィールドを設定してください。
zerocode
Config ペインで、channels.email.<alias>.default_subject フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.default_subject <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__default_subject=
excluded_tools
このチャネルのツール仕様から除外されるツールです。設定すると、これらのツールはこのチャネル経由で応答する際にモデルに公開されません。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開いて、channels.email.<alias>.excluded_tools フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.excluded_tools フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.excluded_tools <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__excluded_tools=
from_address*
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開いて、channels.email.<alias>.from_address フィールドを設定してください。
zerocode
Config ペインで、channels.email.<alias>.from_address フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.from_address <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__from_address=
html_body
true(既定値)の場合、送信メールは Markdown 変換を介して HTML としてレンダリングされます。代わりにプレーンテキストのメールを送信するには false に設定します。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開き、channels.email.<alias>.html_body フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.html_body フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.html_body <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__html_body=
idle_timeout_secs
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開いて、channels.email.<alias>.idle_timeout_secs フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.idle_timeout_secs フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.idle_timeout_secs <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__idle_timeout_secs=
imap_folder
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開き、channels.email.<alias>.imap_folder フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.imap_folder フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.imap_folder <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__imap_folder=
imap_host*
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開いて、channels.email.<alias>.imap_host フィールドを設定してください。
zerocode
Config ペインで、channels.email.<alias>.imap_host フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.imap_host <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__imap_host=
imap_port
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開き、channels.email.<alias>.imap_port フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.imap_port フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.imap_port <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__imap_port=
max_attachment_bytes
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開き、channels.email.<alias>.max_attachment_bytes フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.max_attachment_bytes フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.max_attachment_bytes <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__max_attachment_bytes=
oauth2
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開いて channels.email.<alias>.oauth2 フィールドを設定してください。
zerocode
Config ペインで、channels.email.<alias>.oauth2 フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.oauth2 <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__oauth2=
observer_mode
trueの場合、デーモンは新着メールを監視しますが、IMAPフラグを変更しません。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開き、channels.email.<alias>.observer_mode フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.observer_mode フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.observer_mode <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__observer_mode=
password*
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開いて channels.email.<alias>.password フィールドを設定してください。
zerocode
Config ペインで、channels.email.<alias>.password フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.password <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__password=
poll_interval_secs
IMAPサーバーがIDLE機能(RFC 2177)をアドバタイズしない場合に使用されるポーリング間隔。IDLEが利用可能な場合は無視されます。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開いて、channels.email.<alias>.poll_interval_secs フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.poll_interval_secs フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.poll_interval_secs <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__poll_interval_secs=
smtp_host*
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開いて、channels.email.<alias>.smtp_host フィールドを設定してください。
zerocode
Config ペインで channels.email.<alias>.smtp_host フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.smtp_host <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__smtp_host=
smtp_password
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開き、channels.email.<alias>.smtp_password フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.smtp_password フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.smtp_password <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__smtp_password=
smtp_port
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開き、channels.email.<alias>.smtp_port フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.smtp_port フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.smtp_port <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__smtp_port=
smtp_tls
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開き、channels.email.<alias>.smtp_tls フィールドを設定してください。
zerocode
Config ペインで、channels.email.<alias>.smtp_tls フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.smtp_tls <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__smtp_tls=
smtp_username
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開いて、channels.email.<alias>.smtp_username フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.smtp_username フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.smtp_username <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__smtp_username=
username*
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/email を開き、channels.email.<alias>.username フィールドを設定します。
zerocode
Config ペインで、channels.email.<alias>.username フィールドを設定します。
zeroclaw config
zeroclaw config set channels.email.<alias>.username <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__email__<alias>__username=
password(および別のリレーを使用する場合は smtp_password)は機密情報です:
channels.email.<alias>.passwordはシークレットです。 暗号化されて保存され、平文のconfig.tomlには決して保存されません。書き込み時に暗号化する以下のいずれかの方法で設定してください。
ゲートウェイダッシュボード
/config/channels/email を開き、そこで channels.email.<alias>.password フィールドを設定してください。
zerocode
Config ペインで、channels.email.<alias>.password フィールドを設定します(入力はマスクされます)。
zeroclaw config
zeroclaw config set channels.email.<alias>.password # マスク入力のプロンプトを表示し、暗号化して保存
Gmail の注意点
- 2FAが有効な場合、アプリパスワードが必要です。 通常のアカウントパスワードは拒否されます。
- 「安全性の低いアプリのアクセス」は廃止されました: アプリパスワードが唯一の方法です。
- ポーリングの代わりにリアルタイムで配信するには、以下のGmail Pushチャンネルを検討してください。
Outlook / Office 365
password(および smtp_password)は機密情報です:
channels.email.<alias>.passwordはシークレットです。 暗号化されて保存され、平文のconfig.tomlには決して保存されません。書き込み時に暗号化する以下のいずれかの方法で設定してください。
ゲートウェイダッシュボード
/config/channels/email を開き、そこで channels.email.<alias>.password フィールドを設定してください。
zerocode
Config ペインで、channels.email.<alias>.password フィールドを設定します(入力はマスクされます)。
zeroclaw config
zeroclaw config set channels.email.<alias>.password # マスク入力のプロンプトを表示し、暗号化して保存
Gmail Push (gmail_push)
Google Cloud Pub/Sub によるリアルタイム配信。ポーリング不要。
excluded_tools
このチャネルのツール仕様から除外されるツールです。設定すると、これらのツールはこのチャネル経由で応答する際にモデルに公開されません。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/gmail_push を開き、channels.gmail_push.<alias>.excluded_tools フィールドを設定します。
zerocode
Config ペインで、channels.gmail_push.<alias>.excluded_tools フィールドを設定します。
zeroclaw config
zeroclaw config set channels.gmail_push.<alias>.excluded_tools <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__gmail_push__<alias>__excluded_tools=
label_filter
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/gmail_push を開いて channels.gmail_push.<alias>.label_filter フィールドを設定します。
zerocode
Config ペインで、channels.gmail_push.<alias>.label_filter フィールドを設定します。
zeroclaw config
zeroclaw config set channels.gmail_push.<alias>.label_filter <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__gmail_push__<alias>__label_filter=
oauth_token
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/gmail_push を開き、channels.gmail_push.<alias>.oauth_token フィールドを設定します。
zerocode
Config ペインで、channels.gmail_push.<alias>.oauth_token フィールドを設定します。
zeroclaw config
zeroclaw config set channels.gmail_push.<alias>.oauth_token <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__gmail_push__<alias>__oauth_token=
topic*
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/gmail_push を開き、channels.gmail_push.<alias>.topic フィールドを設定します。
zerocode
Config ペインで、channels.gmail_push.<alias>.topic フィールドを設定します。
zeroclaw config
zeroclaw config set channels.gmail_push.<alias>.topic <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__gmail_push__<alias>__topic=
webhook_secret
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/gmail_push を開いて、channels.gmail_push.<alias>.webhook_secret フィールドを設定してください。
zerocode
Config ペインで、channels.gmail_push.<alias>.webhook_secret フィールドを設定します。
zeroclaw config
zeroclaw config set channels.gmail_push.<alias>.webhook_secret <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__gmail_push__<alias>__webhook_secret=
webhook_url
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/gmail_push を開き、channels.gmail_push.<alias>.webhook_url フィールドを設定します。
zerocode
Config ペインで、channels.gmail_push.<alias>.webhook_url フィールドを設定します。
zeroclaw config
zeroclaw config set channels.gmail_push.<alias>.webhook_url <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__gmail_push__<alias>__webhook_url=
oauth_token と webhook_secret はシークレットです:
channels.gmail_push.<alias>.oauth_tokenはシークレットです。 暗号化して保存され、平文のconfig.tomlには保存されません。書き込み時に暗号化される以下のいずれかの方法で設定してください:
ゲートウェイダッシュボード
/config/channels/gmail_push を開いて、そこで channels.gmail_push.<alias>.oauth_token フィールドを設定してください。
zerocode
Config ペインで、channels.gmail_push.<alias>.oauth_token フィールドを設定します(入力はマスクされます)。
zeroclaw config
zeroclaw config set channels.gmail_push.<alias>.oauth_token # マスク入力のプロンプトを表示し、暗号化して保存
セットアップ
- Google Cloud プロジェクトを作成し、Gmail API と Pub/Sub API を有効にします。
- Gmail サービスがパブリッシュできる Pub/Sub トピックを作成し、
topicとして設定します - 上記のシークレットパスを使用して、エージェントのGmailアクセスを承認し、取得したトークンを保存します
- エージェントは新着メール通知を監視し、バインドされたエージェントへルーティングします
送信は引き続き SMTP 経由で行われます。IMAP+SMTP の [channels.email.<alias>] ブロックを設定してください。
返信スレッド
両方のメールチャネルは、In-Reply-To および References ヘッダーを使用して返信をスレッド化し、送信者が使用するクライアントに応じて会話をグループ化します。
送信ボディ形式
エージェントの返信は、デフォルトでプレーンテキストとHTMLの両方のパートを含むmultipart/alternativeとして送信されます。HTMLパートはMarkdownでレンダリングされた本文で、プレーンテキストパートは生の本文テキストです。プレーンテキストを優先するメールクライアントは、自動的にプレーンテキストの代替を選択します。
プレーンテキストのみを送信する場合(HTMLパートなし、それを優先するクライアントや設定向け)、チャンネルの html_body フィールドを false に設定します。
添付ファイルが存在する場合、本文の各形式は外側の multipart/mixed でラップされます。
添付ファイルの処理
受信した添付ファイルは <workspace>/attachments/<conversation>/ 配下に保存されます。エージェントはコンテキスト内でファイルパスを受け取り、file_read ツールを使用してそれらを読み取れます。ファイル名はまず Content-Disposition ヘッダーから取得され、そこにない場合は Content-Type の name パラメーターが使用されます。
送信時の添付ファイルは、各添付ファイルに指定されたバイト列を使用して送信されます。Email チャネルでは、添付ファイル名はローカルパスではなく表示用メタデータとして扱われます。ローカルファイルを意図的に送信するインテグレーションでは、送信前にパスを検証または制限し、MediaAttachment::from_file を使用して明示的に読み込む必要があります。
レートとボリュームの制限
メールは会話のレイテンシに最適化されていません。以下を想定してください:
- IMAP ポールの遅延:
poll_interval_secs(デフォルト 60 秒)。サーバー負荷を増やすことで低下させることができますが、一部のプロバイダーは積極的なポーリングに対してレート制限を適用することがあります。 - SMTP送信: 提供業者の1日あたりの送信制限に従う (Gmailの場合: フリーアカウントは1日500通、Workspaceは1日2000通)。
安全性
メールにはSMTPのエンベロープを超えるプロトコルレベルの認証がなく、誰でも誰になりすますことができます。公開メールを受信する受信箱にエージェントを公開する前に、ピアグループ(上記)で受信側の送信者をゲートしてください。