[未遂]生成AIニュースを知らせてくれる自律型AIエージェントを作ろうとした

Generative AI Test の出題範囲で「最近の生成AI関連ニュースを常にチェックしてください、そこから出題することもあります」なんて怖い事言ってたので、ニュースを見てみようと思う。

うーん…なんか、思ってたんと違うなぁ

というわけで、生成AIニュースを僕のためだけに届けてくれる自律型AIエージェントを作ってみようと思いました。

今回の相棒は gpt-4o-mini(あとはGenSparkのサポート)です。

生成AIのAPIを使う(gpt-3.5)ため、コストがまず気になったんですが、毎月600円くらいらしいです。ホントかよ…ぼったくりバーに入っていく気分だわ

まぁ疑っても、議論で勝ち目なんて無いので、しょうがなく(?)言われたまま実装しようと思います。

まずはpythonが入っているかと、プロジェクト用フォルダの作成ね。まぁこれくらいは余裕ですわ。

ターミナル(macOS/Linux)や PowerShell(Windows)で以下を実行し、バージョンが表示されればOK。

ステップ0:準備編

1. Python のインストール確認

  • Python はプログラミング言語です。
  • ターミナル(macOS/Linux)や PowerShell(Windows)で以下を実行し、バージョンが表示されればOK。
python3 --version
例)Python 3.10.4

用語解説:

  • ターミナル/PowerShell:コマンドを文字で入力してコンピュータに指示を出すツールです。
  • バージョン:ソフトウェアの「型番」のようなもので、新しいほど機能・安定性が向上します。

2. プロジェクト用フォルダの作成

  1. 好きな場所(デスクトップやドキュメントなど)に新しいフォルダを作ります。
  2. フォルダ名は分かりやすく ai_news_agent としましょう。
  3. ターミナル/PowerShell でそのフォルダに移動します:
cd パス/ai_news_agent
例)
macOS/Linux: cd ~/Desktop/ai_news_agent
Windows: cd C:\Users\あなたのユーザー名\Desktop\ai_news_agent

3. 仮想環境(venv)の作成と有効化

仮想環境とは?

  • venv(ブイ・イー・エヌ・ブイ):Python のライブラリ(パッケージ)をプロジェクトごとに独立して管理する仕組み。
  • これを使うと、他のプロジェクトとライブラリのバージョンがぶつからず安心です。

作成手順

  1. 仮想環境を作るコマンドを実行
python3 -m venv venv

これでフォルダ venv/ が生成され、中に仮想環境が入ります。

2. 仮想環境を有効化(Activate)する:

macOS/Linux:

source venv/bin/activate

Windows (PowerShell):

.\venv\Scripts\Activate

・成功すると、ターミナルの先頭に (venv) と表示されます。

用語解説:

  • Activate(有効化):仮想環境を「今使うよ」と宣言する操作です。
  • deactivate(ディアクティベート):仮想環境を終わらせるときに使います。

ってやったらエラーが出てきた。エラー文をgptに投げると、PowerShellの実行ポリシーを緩和白とのこと。なんか怖いけどやってみるか。

PowerShell の実行ポリシーを緩和する

注意:実行ポリシーを緩和すると、他のスクリプトも実行可能になります。社内ポリシーやセキュリティ要件に注意してください。

  1. PowerShell を 管理者として起動
  2. 実行ポリシーを「RemoteSigned」に変更(現在のユーザーのみ):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

これで出来るらしい(なんか変だったらその都度gptへ相談したらなんか解決する)

気を取り直して、自分のプロジェクトフォルダに cd コマンドで移動し、venvをアクティブ化させる。

cd パス/ai_news_agent
.\venv\Scripts\Activate

Step0-4:pip のアップグレード

目的

  • Python のパッケージ管理ツールである pip を最新バージョンに更新し、インストールや依存関係のトラブルを防ぐ。
pip install --upgrade pip

これやったらエラーが出たので、gptに聞いたら「仮想環境下なら別のコマンドだよ」とのこと(あんたが仮想環境を薦めたんちゃうんか)

# 仮想環境が有効な状態で
python -m pip install --upgrade pip

なんかうまくいったらしい(gptにコードを投げたら「Good!!」って来たから大丈夫やろ)

Step0-5:必要なライブラリのインストール

使うライブラリと役割

ライブラリ役割
requestsWeb ページの HTML を取得する(HTTP リクエスト用ライブラリ)
beautifulsoup4取得した HTML から記事本文を抽出する(HTMLパーサー)
tiktokenOpenAI モデルのトークン数を数える(トークナイザー)
openaiChatGPT(gpt-3.5-turbo など)API を呼び出すクライアントライブラリ
pip install requests beautifulsoup4 tiktoken openai

解説

  1. スペース区切り で複数のパッケージを一度に指定できます。
  2. インストール中に各ライブラリの依存関係も自動で解決・取得してくれます。
  3. 成功後に Successfully installed ... と出れば使用準備完了です。

なんかダラダラと処理が流れているけど、なんか大丈夫らしい。

Step0-6:動作確認

目的

  • ライブラリが正しくインストールされているか、自前のスクリプトが動くかをチェックする。

手順

  1. プロジェクトフォルダ直下に main.py を作成
  2. 以下のコードを貼り付けて保存
import requests
from bs4 import BeautifulSoup

def fetch_full_text(url: str) -> str:
    res = requests.get(url)
    res.raise_for_status()
    soup = BeautifulSoup(res.text, 'html.parser')
    paragraphs = soup.find_all('p')
    return "\n".join(p.get_text() for p in paragraphs)

if __name__ == "__main__":
    example = fetch_full_text("https://ja.wikipedia.org/wiki/機械学習")
    print(example[:200], "…")

ターミナル(または PowerShell / cmd)で実行
(僕は Visual Studio code の実行ボタンからやっちゃいました)

python main.py

で、できちゃった….

と、ここまで来て「ノーコードで作れる自律型AIマルチエージェントを作れるサービスってあるよな」と思って聞いたところ、あるとのこと。

あるいは少しの「つなぎ書き」だけで自律型エージェントを組めるノーコード/ローコードのサービスがいくつも登場しています。代表的なものをいくつかご紹介します。

サービス名種別特徴向いているケース注意点
Zapierノーコード各種 API(OpenAI、RSS、メール、Slack…)の連携テンプレートが豊富。トリガー→アクションでワークフロー構築シンプルな「毎日RSSを取って要約してSlack通知」複雑な分岐やステート管理には向かない
Make (旧 Integromat)ローコードビジュアルフローでノードをつなげる。条件分岐やループも用意されており、少しコードを書く余地もある複雑なデータ加工やマルチステップ処理無料プランの実行回数制限、学習コストがやや高め
Microsoft Power AutomateノーコードOffice 365 や Teams、SharePoint との親和性抜群。Azure OpenAI もコネクタで利用可社内 Microsoft 環境での自動化ライセンス体系が複雑。細かいチューニングには開発者が必要
n8nローコードオープンソースのワークフロー自動化ツール。自前ホスティング可。REST API 呼び出し自由度が高いセルフホストでコストを抑えたい、カスタム連携を多用したいUI が少しとっつきにくい。プラグイン管理が必要
Bubble + API Connectorローコード → ノーコードWeb アプリ開発プラットフォーム。OpenAI プラグインや API Connector を通じた高度なチャットフロー構築が可能Web フロントを伴うユーザー向けエージェントアプリ全体の設計が必要。細かなワークフローには慣れが必要
AgentGPT / Autogen Playgroundノーコードすでに “自律エージェント” の概念が組み込まれた Web サービス。プロンプトやスコアリングをブラウザ上で定義手早く試作したい、アイデア検証データ保持や独自拡張は困難。無料プランでは実行制限あり
PipedreamローコードJavaScript/Python をブロック単位で挟める。300以上のプリセットアクション+自前スクリプトで柔軟に連携ちょっとしたコードを混ぜつつ高度な API ワークフローを組みたいプログラム不要とはいえ、ある程度のスクリプト理解が必要

どうしてこれらで「自律型エージェント」を作れるのか?

  • 定期実行 (Scheduler)
    → 毎日○時に RSS/ニュース API を叩くトリガー
  • 取得 → 分析 → 要約
    → OpenAI(または Azure OpenAI)コネクタを呼び出してテキストを要約
  • 重複チェックや状態管理
    → Airtable や Google Sheets、内部データストアで「過去取得済みURL」を管理
  • 通知・配信
    → Slack/メール/Teams/LINE など、さまざまなチャネルに送信

これらを「ノードをつなぐだけ」「GUI 上で設定するだけ」で組めてしまうのがノーコード/ローコードの強みです。


ただしプログラミングと比べたときの制約

  1. 柔軟性の上限
    → 複雑な条件分岐や大量データ処理、独自アルゴリズムには限界があります。
  2. コスト構造
    → 実行回数やステップ数で課金されるため、長期稼働では意外とコスト高に。
  3. デバッグやテスト
    → GUI 上でのログ確認はできますが、「ソース管理」「ユニットテスト」はコードより難しい。
  4. ベンダーロックイン
    → 一度作ると、そのサービスを使い続ける前提になります。

まとめ

  • シンプルな自律型AIエージェント(毎日ニュース取得→要約→Slack通知程度)なら、Zapier や Make で十分に実装可能です。
  • 社内での堅牢性や大量データ処理, 高度なカスタマイズ性 が必要なら、やはりコードによる実装(Python+ライブラリ)が安心です。

まずはノーコード/ローコードでプロトタイプを作り、要件が固まったらコード実装に移行するというハイブリッド戦略がおすすめですよ。

あ、なんとなくこっちの方が現実的な気がしてきた。
次回、ノーコード(ローコード)での自律AIエージェント作成編!?

コメント

タイトルとURLをコピーしました