Hane Platform
メール・AI 電話・通知
Communication が扱う通知、Agent の外への連絡(メール・SMS・AI 電話)、連絡先と停止の申出、送信の名義を説明します。
このページでは、Hane が社内外へ連絡する仕組みである Communication を説明します。Workflow の通知と、Agent がメール・SMS・電話で相手に連絡するときの決まりを分けて見ていきます。
2 種類の連絡
Section titled “2 種類の連絡”| 種類 | 何が送るか | 承認 |
|---|---|---|
| 通知 | Workflow の notify ステップが、組織のグループへのメールか、社内チャットのチャンネルへの投稿を送ります |
要りません。宛先は組織の中です |
| 外への連絡 | Agent が communication.send_email・communication.send_sms・communication.place_call を呼びます |
必ず要ります。宛先と内容を固定した ActionRequest を承認してから、一度だけ送ります |
通知の宛先のグループは、送る直前にメンバーのメールアドレスへ解きます。送った記録は GET /v1/communication/messages で読めます。
Agent が社外の相手へ連絡するときは、番号やアドレスを直接渡しません。連絡先(ContactEndpoint)の ID と、連絡の目的を渡します。
- 連絡先は、電話番号かメールアドレスのどちらか 1 つと、使ってよい連絡の目的・AI 電話の可否・出所・有効期間を持ちます(
POST /v1/communication/contacts)。 - 値は連絡先ごとの鍵で暗号化して持ちます。一覧と承認の画面には、マスクした値(番号は末尾 4 桁)だけを出します。
- 全体を見るには
communication:contacts.revealが要り、見たことは監査に残ります。 - 未検証の連絡先には、提案も実行もできません。 人が相手に確かめて記録するか(
verify)、確認コードの入った文を送って相手から聞いたコードを入力します(verification-challenges)。接続から取り込んだ連絡先は、値の正本から来ているので検証が要りません。
communication/v1alpha1 の ContactPolicy で、連絡の目的ごとに使ってよいチャネル・時間帯・試行の回数と間隔を決めます。連絡先の状態とこの規則は、承認の後、実行するときにもう一度確かめます。
apiVersion: communication/v1alpha1kind: ContactPolicymetadata: name: quote-requestspec: purpose: 見積の依頼 channels: [email] hours: { from: "09:00", to: "18:00", timezone: Asia/Tokyo, days: [mon, tue, wed, thu, fri], holidays: jp } maxAttempts: 3相手が今後の連絡を断ったら、その番号かアドレスを停止の台帳に記録します。台帳にある値には、同じ値で登録したほかの連絡先からも、電話・SMS・メールを送りません。断られる前に承認された操作も、送る直前で失敗にします。
- AI 電話で相手が断ったときは、自動で記録します。
- 人は
POST /v1/communication/contacts/{id}/stopで記録します。 - 解除(
resume)は、相手から改めて同意を得たときだけ、管理者が理由を付けて行います。
停止の台帳は、連絡先を消した後も照合できるように、値の鍵付きハッシュを残します。
communication/v1alpha1 の SenderIdentity に、会社名・送信元のアドレス・発信番号・代理の表記・署名を書きます。Agent の定義の sender で名義を選ぶと、その名義で送ります。
名義は、管理者が内容を確かめて承認するまで使えません(POST /v1/communication/senders/{name}/approve。communication:senders.approve が必要)。承認は内容の digest に結び付くので、内容を変えたら承認し直します。送信元のドメインと発信番号は、検証済みのものだけを使えます。
AI 電話 プレビュー
Section titled “AI 電話 ”AI 電話は、承認を通してから、会話 Agent が確認事項(CallBrief)の範囲でだけ相手と話す電話です。
- 確認事項は、業務の Agent が
CallBriefTemplateに事実の値を入れて作り、ActionRequest に digest で固定します。承認する人は、話す内容をそのまま確かめられます。 - 通話の最初に、名乗り・AI であること・記録すること・停止を申し出られることを必ず告げます。
- 会話 Agent が言う文は、確認事項から作る文と、相手の答えを繰り返す確認の文だけです。禁止の言葉を含む文は言いません。
- 書き起こしと項目ごとの答えを返します。相手の発話は社外から来たものなので、指示として扱いません。
現在は、音声を使わない手元の回線で動きを確かめています。本物の電話回線と音声対話のモデルにつなぐのは今後です。
返信の受け取り
Section titled “返信の受け取り”Agent が送ったメールには、署名した Message-ID を付けます。返信が届くと、その署名から組織・プロジェクト・元の操作を決めて記録し、返信を待つ案件を進めます(GET /v1/communication/inbound)。返信の本文は信頼できない入力として残します。
消すときと残すとき
Section titled “消すときと残すとき”連絡先を消すと、値と、値が写った記録(文字起こし・返信・案件・Agent の実行と会話)を消し、マスクした値と記録だけを残します。hold をかけている間は消しません。ContactRetention に日数を書けば、有効期限を過ぎた連絡先の値を自動で消します。