ついにBedrockとSlackがノーコードで連携できるようになったよ！

今日はこちらのビッグニュースが飛び込んできました！

https://aws.amazon.com/jp/about-aws/whats-new/2024/09/aws-chatbot-amazon-bedrock-agent-microsoft-teams-slack/

AWS ChatbotがBedrock agentsに対応したので、SlackやTeamsとBedrockが連携できるようになりました🎉🎉🎉

早速やってみました。なんと **ノーコード** です！！

---

最速を狙いましたがすでに検証された方がいました！早い！

https://www.cloudbuilders.jp/articles/4822/


## 手順

### Bedrock agentsを作成する

:::note
東京リージョンでもOKです
:::

1. マネジメントコンソールでBedrockの管理画面を開きます
    左メニューの「エージェント」をクリックします


    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ba565b81-f897-b224-b8ca-821ddf8f7ec9.png)

1. 「エージェントを作成」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/c255b573-4fdb-d12e-483e-cf823be7595c.png)

1. 「Name」を入力して「作成」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/fbade6f9-23d8-525c-74b4-0eeadbcefa53.png)

1. エージェントビルダーの画面に遷移します

    1.  モデルを選択で好きなモデルを選択します。（私はClaude 3 Haikuを選択しました）
    1.  「エージェント向けの指示」にプロンプトを入力します。（私は[こちら](https://docs.anthropic.com/en/release-notes/system-prompts)のClaude 3 Haikuのシステムプロンプトを入力しました。本来は最適なプロンプトを指定する必要がありますが一応動きました）
    
    右上の「保存して終了」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ce1008c6-07bb-cdec-c6e1-ea0c800d1fbc.png)

1. 右側に表示される「準備」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/efbb6fcb-af07-ac74-cbbe-77f01ae02265.png)

    「正常に準備されました」のメッセージが表示されます

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/8e0767d0-1620-72df-d3aa-ae35ceda4316.png)

    :::note
    「エージェント ARN」は後で必要になりますので、メモしておきます
   :::

1. 右下の「ここにメッセージを入力」にメッセージをいれると回答が生成されます

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/fad4053d-3446-c4b2-da5a-5066c5a3f047.png)

1. 画面上部の「エイリアスを作成」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/fad4053d-3446-c4b2-da5a-5066c5a3f047.png)

1. 「エイリアス名」を入力し「エイリアスを作成」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/878f28a5-3e8f-93fb-e4cb-ee0cc3a03a59.png)

    エイリアスが作成されます

    :::note
    「エイリアスID」は後で必要になりますので、メモしておきます
   :::

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/d1bf18f3-de60-3652-79aa-9432f44c3384.png)

これでBedrock agentsの作成は完了です。

### AWS Chatbotを作成する

1. マネジメントコンソールでChatbotの管理画面を開きます
    チャットクライアントを「Slack」に変更し、「クライアントを設定」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/1bdfb2b2-bc3b-3c1c-ae70-13f39a4d9888.png)

1. Slackの権限リクエスト画面が表示されます。内容を確認して「許可する」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/d9fa1a8e-60a9-5886-e922-1c1071e98a34.png)


1. Chatbotの画面に戻ります。「新しいチャネルを設定」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/944ff46b-7b22-dfde-26d4-05b807a73d87.png)

1. 設定の詳細セクションでは「設定名」を入力します。
    Slackチャネルでは任意のチャネルを選択します。（私はBedrock agents用のチャネルを用意しました）

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/414365e8-a534-4640-822f-b1e3c17b34f1.png)

1. アクセス許可セクションでは以下の設定を行います

    1. 「ロール名」を入力
    1. チャネルガードレールポリシーに「AmazonBedrockFullAccess」を追加

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/5bdf3445-b004-965e-f8ae-c92e23e2b033.png)

    :::note warn
    本来は最小権限を付与するべきですが、お試しとして「AmazonBedrockFullAccess」を付与しました。
    権限を絞る場合は[ドキュメント](https://docs.aws.amazon.com/chatbot/latest/adminguide/connect-bedrock-agents.html)を参考にしてください。
   :::

1. 通知セクションとタグセクションは変更無しのままとし、「設定」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/7f6b6d27-0e08-8d1d-4f7f-c0259985472c.png)

1. 追加された設定（slack-bedrock）のリンクをクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/7a98de55-cdde-c0f7-94c7-d55a09ca678b.png)

1. チャネルロールのリンクをクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ba9a817d-4c51-2cea-dd77-7bd83ba6e44d.png)

1. 許可ポリシーセクションの「許可を追加」メニューにある「ポリシーをアタッチ」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/9de63486-270b-b0c8-edb4-72564e418b53.png)

1. 「BedrockFullAccess」を検索しチェックを入れます。「許可を追加」をクリックします

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ac31ce5a-b86e-3cb7-8ebd-08e118037ddf.png)

    :::note warn
    チャネルガードレールポリシー同様、権限を絞る場合は[ドキュメント](https://docs.aws.amazon.com/chatbot/latest/adminguide/connect-bedrock-agents.html)を参考にしてください。
   :::

これでChatbotの作成は完了です。


### Slackの設定を行う

最後はSlackの設定です。

1. Chatbotで設定したチャネルを選択し、以下のメッセージを送信します

    ```
    @aws connector add {コネクター名} {Bedrock agentのエージェント ARN} {Bedrock agentのエイリアスID}
    ```

    接続がうまくいくと以下のようなメッセージが返ってきます

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/e9871f45-0b44-0524-000f-8f62493e05c3.png)

設定は以上です。

## SlackからBedrock agentsに質問する

`@aws ask {コネクター名} {プロンプト}`の構文でメッセージを送信します

:::note
コネクター名は短めにつけたほうが使いやすそうですね
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/a44e81f8-8222-849b-7bfb-44bf12b58f3e.png)

会話の履歴も考慮した返事が得られました！

## Knowledge Basesを追加

Bedrock agentsはKnowledge basesと連携できます。そのため、 **Slackから呼び出せるRAGをノーコードで構築可能です** ！！

（BedrockとChatbotのドキュメントだけ入れたナレッジベースを作成しました）

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ce33e7e5-9a1d-f96f-c6fe-3652c71b03fa.png)

やるじゃないか