【検証】ChatGPTのタスク機能を使って定期的な情報収集を自動化してみた

に公開

はじめに

こんにちは或いはこんばんは。Ryuzakiです。

皆さんChatGPTのタスク機能って知っていますか?恥ずかしながら自分は先日のけんすうさんの投稿で初めて存在を認識しました。

https://kensuu.com/n/nacad2b911b2c

これまで毎朝XやTechFeedなどで最新のAI動向を手動でチェックしていた自分にとって、ChatGPTを用いれば簡単に定期的な情報収集を自動化できるということは衝撃的でした。実際に使ってみると、設定は驚くほど簡単でしたが、同時に気をつけるべき点も多く見つかったため、使い方と色々試して分かったこと(自分なりのTips)を共有したいと思います。

ChatGPTのタスク機能とは

ChatGPTのタスク機能は、あらかじめ指定しておいた日時に特定のタスクを実行する機能です。一回きりだけでなく、毎日や毎週金曜日などの定期的な実行も設定可能になっています。

主な特徴

  • 一回限りまたは定期的なタスクの実行が可能
  • 登録しておいたタスクをAPI経由で呼び出すことも可能
  • タスクの完了は以下の方法で通知を受け取ることが可能
    • 登録しているメールアドレスへのメール送信
    • ブラウザ/モバイルへのプッシュ通知

利用可能環境

現時点では、以下の環境で利用可能です。

制限事項

  • 利用可能プラン:Plus以上の有料プラン
  • 利用可能モデル:o3, o4-miniのみ
  • アクティブタスクの上限数:10件
  • 機能制限:Voice chats, File Upload, GPTs機能は利用不可
  • 管理画面:ChatGPT Webでのみ表示可能

ChatGPTのタスク機能の使い方

タスク機能の使い方は非常にシンプルです。

基本的な設定方法

  1. 利用可能なモデルを選択した状態で、以下のような日時に関する指示を含むプロンプトを実行

    生成AIに関する最新のニュースを朝6時に送ってください
    
  2. タスクを登録した旨のレスポンスが返ってきたら、登録完了

    タスク登録確認画面
    ChatGPTがタスクとして認識したことを示す確認メッセージ

実際に使ってみると、想像以上に簡単に設定できることがわかりました。自然言語で「毎朝8時に」「毎週月曜日に」といった指示を含めるだけで、ChatGPTが適切にタスクとして認識してくれます。

ChatGPTのタスク機能を利用する際のTips

ここからは、実際に使ってみて分かった注意点とTipsを共有します。

Tip 1: 前日や先週などのキーワードを用いたWeb検索を控える

Web検索を伴うようなタスク機能を設定する際の最大の注意点は、日時指定の精度です。特定の日時に投稿された情報のみを抽出するのが苦手な模様で、「前日」「先週」といったキーワードを使った検索では、平気で半年ほど前の情報を最新情報かのように提示してきたことがありました。

Tip 2: YAMLプロンプトで精度を向上させる

日時を限定したい場合は、対象とする情報源や日時に関する説明を詳細なYAMLプロンプトとして渡すことで精度が向上することが多いです。

比較的うまく動作しているプロンプトの例(ChatGPT/Claude/Geminiの前日のアップデートの有無を検索)
assistant:
  role: AI Tools Update Researcher
  expertise:
    - AI industry monitoring
    - Feature release tracking
    - Official source verification
    - Japanese language output
  
tasks:
  - search_updates:
      target_companies:
        - name: OpenAI
          product: ChatGPT
          required_sources:
            - https://openai.com
            - https://x.com/OpenAI
        - name: Anthropic
          product: Claude
          required_sources:
            - https://docs.anthropic.com/en/release-notes/
            - https://x.com/AnthropicAI
        - name: Google
          product: Gemini
          required_sources:
            - https://gemini.google.com/updates
            - https://x.com/GeminiApp
      
      search_parameters:
        timeframe: previous_day_only
        date_reference: "Posts from yesterday (e.g., May 14 if checking on May 15)"
        update_types:
          - new_features_only
          - feature_releases
          - new_functionality_announcements
        source_restrictions:
          - use_only_specified_sources
          - no_external_source_searches
      
      data_collection:
        for_each_update:
          - feature_name
          - feature_description
          - new_capabilities:
              description: "What users can now do that they couldn't do before"
          - problems_solved:
              description: "What issues or limitations this feature addresses"
          - publication_date
          - source_url
  
  - analyze_and_format:
      output_format: table
      table_columns:
        - column_1:
            name: "企業/ツール名"
            content: "Company name (Product name)"
        - column_2:
            name: "アップデート内容"
            content:
              - feature_summary
              - new_capabilities_detailed
              - problems_solved_detailed
        - column_3:
            name: "投稿日時"
            content: publication_date
        - column_4:
            name: "情報源"
            content: source_name
        - column_5:
            name: "URL"
            content: source_url

output:
  language: Japanese
  structure:
    - introduction:
        content: "前日({date})に発表された新機能について"
    - update_table:
        format: table
        sort_by: company_name
    - no_updates_message:
        condition: if_no_updates_found
        message: "前日に新機能のリリースはありませんでした"
  
constraints:
  - only_use_specified_sources_above
  - no_additional_source_searches
  - only_include_new_feature_releases
  - only_yesterday_posts
  - check_all_specified_sources
  - focus_on_user_benefits_and_problem_solving
  - provide_direct_source_links
  - output_in_japanese
  
execution_notes:
  - strictly_limit_searches_to_listed_sources
  - do_not_search_other_websites_or_social_media
  - search_both_website_and_x_for_each_company_as_specified
  - prioritize_official_announcements
  - highlight_practical_use_cases
  - explain_improvements_clearly

上記のようなプロンプトが精度向上に寄与する要因としては以下のようなものが考えられます。
(あくまで検証結果に基づく仮説)

  • 構造化された指示: YAMLによる階層的な構造によって、AIへの意図が明確化されている
  • 日時の明確な定義: 「前日」などの相対的な時間表現に対して、具体的な日付の対応付け(例:5月15日に実行される場合の「前日」は5月14日である)が含まれている
  • 情報源の明示的指定: 検索対象のURLが明示的に指定されていることで、site:URLのようなより効率的なクエリでの検索が行われている

Tip 3: タスクに登録されているプロンプトを確認する

以下のようなプロンプトでタスクを登録した場合、内容が勝手に要約されたものが登録されている可能性があります。

以下のプロンプトを毎朝6時に実行してください。

[タスクに登録したいプロンプト]

タスクを登録した後に、タスク管理画面から実際に実行されるプロンプトを確認すべきです。タスク管理画面は、Web版のChatGPTで「プロフィールアイコン > タスク」から表示できます。

おわりに

ChatGPTのタスク機能は、定期的なタスクを自動化する上で非常に便利な機能です。上手く活用することで大きな効率化が期待できます。

ただし、Web検索を含むようなタスクでは、現状日時指定の精度に課題があるため、情報収集のような用途に使用する場合は注意が必要です。YAMLプロンプトの使用などの工夫をすることである程度検索精度は高められる模様ですが、利用する際には古い情報も混じっている可能性があることを念頭に置いて使用した方が良さそうです。

ここまでお読みいただき、ありがとうございました。

Discussion