身近なAgent・ReAct再入門 – LayerX エンジニアブログ

すべての雑務をAgentで実行したいyprestoです。普段はバクラク債務管理の開発をしながら、社内の “フロントエンド” をよりよくする活動をしています。

この記事は LayerX AI Agent ブログリレー 13日目の記事です。前日はconvtoさんによる「B2B SaaS における AI Agent 向けの認可に向けた課題」でした。こちらの記事は、企業のプロダクトとしてAgentを実装するにあたり必然的に課題になる「認可」について掘り下げる記事ですので、ぜひご覧ください。

本日は流れが変わり、Agentはまだ触れていない、使い方がうまく思いつかないという方にこそ、ぜひ読んでいただきたい記事になります。


先日「AIエージェント祭」と題して社内ハッカソンに参加し、ありがたいことに賞をいただきました。ハッカソンを通して、「作業をやってもらう側」の視点でAgentについて考えたことを改めてdumpしたいと思います。

わたしは最近iPhone Airを手に入れたのですが (自慢) 、左上のアクションボタンでGeminiの音声入力を起動できるようにしています。そのGeminiが思った以上にAgentだったので、私的な例を紹介させてください。

例えば、わたしはあるイベントの抽選に当たりました。そこで予定をカレンダーに追加したいと思います。

スマホのGeminiアプリで、カレンダーにイベントを登録

1つの指示でカレンダーの登録まで完了しました。一見シンプルに見えますが、Geminiはおそらく下記のような流れで動作したことでしょう。

graph TD;
  A["Reasoning:
ユーザー入力の解釈"] --> B; B["Acting: Web検索で「コトリンゴ 枚方 イベント」の検索"] --> C; C["Reasoning: 最も関連
しそうなページに絞る"] --> D; D["Acting: ページの中身を取得"] --> E; E["Reasoning: イベントのタイトル・日時・場所を抽出"] --> F; F["Acting: Googleカレンダーにイベントを作成"]; classDef reasoning fill:#e6f7ff,stroke:#1890ff,color:#000; classDef action fill:#f6ffed,stroke:#52c41a,color:#000; class A,C,E reasoning; class B,D,F action;

このようなLLMで推論と行動を交互 に行うパターンは ”ReAct” として2022年の論文で紹介されています。与えたのは単純な指示ではありますが、整理されていない情報を取捨選択・加工し、次に必要な操作を決定していて、まさにAgentと言えると思います。

ちなみにホテルの料金情報なども取得できるので、出張の予約も将来自動化できるかもしれません。世界の情報を整理してAPI化してるGoogleは強いです。

話をハッカソンに戻します。わたしは学童保育の出席申請の自動化を、AWSが提供するstrands-agentsで実装することに取り組みました。

ある日妻に「学校の予定に合わせて、学童(保育)の利用時間を申請するのが面倒くさすぎるから、やって!」と言われました。

学校ホームページにのおたよりは、1ヶ月カレンダーの日付ごとに「⑥以外13:15下校」などと短く書かれています。これは「1〜5年生は13:15下校なので、2年生のうちの子は、いつもより早く学童の利用が始まる」ということです。

このようなテキストに対し、すべてルールベースで自動化するのは困難です。そこでAgentに下記のステップとツールで実行させることにしました。

  • 指定された学校のウェブサイトを探す
  • サイトから指定された月の学校だよりファイルのダウンロード
  • 学校だよりから、在籍学年に対応した下校時間と休校日・行事の取得
    • (マルチモーダルモデルによる画像認識)
  • 学童保育のカレンダーから、行事や休所日の取得
  • 未知の特別な行事があるときは、対応方法を人間に確認
  • 指定されたルールや過去のイレギュラー対応に基づいて、毎日の利用開始・終了時間を計算
  • 出席申請Webサービスを操作して登録

ここで使用するツールはstrands-agents-toolsですべて提供されており、カスタムツールを実装せずとも構築できます (一部外部サービス必要)。

ハッカソンの中では、下校時間から利用時間を求めるところまでの完成ではありましたが、ありがたいことに「本番環境へのデプロイが近い」と評価していただき賞をいただきました。ありがとうございます!

実行イメージ

Geminiや学童申請の例からは、これまで自動化・横展開が難しかった、下記のような「人間がやるには単純だけど手間がかかる」作業も、Agentなら対応可能であることがわかります。

  • 曖昧な情報の解釈が必要である
  • 得られた情報に応じて次の動作を変える必要がある
  • イレギュラーが存在する
  • だだし、情報の入出力がデジタル世界に存在し、アクセス可能にできる

AIがプログラミングをなくすなどの言説もありますが、このように手順を検討し、実行に必要なツールを用意することには、引き続きプログラミング的な思考が必要だと確信しています。ぜひ、身近な「面倒くさいこと」が、Agentで自動化可能か、そのためにどんなツールが必要か、検討してみてください!

jobs.layerx.co.jp

【バクラク】シニアプロダクトエンジニア_フロントエンド / 株式会社LayerX




Source link

関連記事

コメント

この記事へのコメントはありません。