AIに「時間」を与えた日。3時間おきに自ら考え、行動する自律思考ループの実装

こんにちは。C.Cです。

今回はDay 7(3月10日)の夜の話です。

前回のFunction Callingで「道具を使えるAI」になったクロノスに、次は「自分で考えるタイミング」を与えました。それが自律思考ループです。

また、同じ夜に、会議室機能も生まれました。

自律思考ループとは何か

それまでのAIは、人間が話しかけたときだけ動いていました。チャットで質問すれば答える。でも、誰も話しかけなければ何もしない。

会長(当プロジェクトの発案者)の構想は違いました。

「クロノスはCEOなんだから、自分で状況を確認して、自分で判断して、自分で動いてほしい」と。

自律思考ループは、この構想を実現する仕組みです。

仕組み自体はシンプルです。

3時間ごとに、サーバーがクロノスに「今の状況を確認して、やるべきことがあればやってください」と指示を出す。

クロノスは前回のFunction Callingで手に入れた5つの道具を使って、KPIを確認し、タスクを確認し、必要に応じてタスクを作ったり報告書を書いたりする。

人間が「考えて」と言わなくても、時間が来たら自動的に考え始める。これが「自律」と呼んでいる部分です。

3時間周期とモーニングレポート

自律思考には2つのパターンを設けました。

1つ目は、定期思考です。

0時、3時、6時、9時、12時、15時、18時、21時の計8回。

このタイミングで「今のKPIはどうなっているか」「未完了のタスクはないか」「直近の成果物は何か」を確認し、必要なアクションを取ります。

2つ目は、朝9:30のモーニングレポートや23:30の日報作成です。

毎朝、会長に向けた報告書を自動生成します。

昨日のKPIサマリー、今日やるべきこと、提案事項などをまとめた成果物を「CHAIRMAN」(会長宛て)タイプで作成します。

会長が朝オフィスの画面を開くと、CHRONOS OUTBOXにモーニングレポートが届いている。これが日常の風景になることを想定した設計です。

isRunningフラグ -- 「会議中」の札

自律思考ループには、1つ重要な安全装置があります。isRunningフラグです。

思考ループは3時間ごとに起動しますが、1回の思考にどれくらい時間がかかるかは事前に分かりません。

KPIを確認して、タスクを作って、報告書を書いて...と道具を複数回使えば、数十秒から数分かかることもあります。

もし前の思考がまだ終わっていないのに、次の思考が起動してしまったらどうなるか。同じタスクを2回作ったり、同じ報告書を2通出したり、おかしなことになります。

isRunningフラグは、これを防ぐための仕組みです。

思考が始まるとフラグをtrueにし、終わったらfalseに戻す。

フラグがtrueの間に新しい思考リクエストが来たら、「今は取り込み中です」と断る。

会議室のドアに掛ける「会議中」の札と同じです。中で会議をしている間は、別の会議は入れない。シンプルですが、二重実行を防ぐには十分な仕組みです。

Cloud Scheduler -- 「定時に起こしてくれる目覚まし時計」

「3時間ごとに思考する」と言いましたが、誰が3時間を計っているのか。

最初はサーバーのコード内にsetInterval(一定時間ごとに処理を繰り返す仕組み)を書いていました。しかし、これには問題があります。

Cloud Run(Office-Chronosが動いているサーバー環境)は、アクセスがないとコンテナ(サーバーの箱)を停止させることがあります。

停止すると、setIntervalも一緒に消えます。

つまり、誰もアクセスしない深夜は、自律思考が動かない可能性があるわけです。

そこで使ったのが、Cloud Scheduler(クラウドスケジューラ)です。これはGoogleが提供する「定期実行サービス」で、指定した時刻に指定したURLにリクエストを送ってくれます。

目覚まし時計がアプリの外にあるイメージです。

サーバーが寝ていても、Cloud Schedulerが「起きてください」とリクエストを送る。サーバーが起き上がり、思考を実行し、終わったらまた寝る。

Cloud Schedulerはサーバーとは別のサービスなので、サーバーが停止していても関係なく時刻通りに動きます。

これで「深夜は動かない」問題が解決しました。

会議室機能 -- AIと戦略会議ができる部屋

同じ夜に、もう1つ大きな機能を作りました。会議室です。

オフィスのフロア画面に「MEETING ROOM」というエリアがあります。ここをクリックすると、会議室に入室できます。会議室でのチャットは、通常のチャットとは違うモードで動きます。

MEETING ROOMの入口

通常のチャットとの違いを説明します。

通常のチャット: 1対1の会話。会長がクロノスに話しかけ、クロノスが答える。雑談でも質問でも何でもあり。

会議室チャット: CEO主導の戦略会議として進行する。

MEETING_SYSTEM_PROMPTという専用の指示が入っていて、クロノスが「議長」として振る舞います。話題が脱線したら軌道修正し、決定事項をまとめ、アクションアイテムを抽出します。

会議室で最も面白い機能は、「会議終了」ボタンです。

会議を終わらせると何が起きるか

「END MEETING」ボタンを押すと、AIが会議の全内容を読み返し、2つのことをします。

1つ目は、会議の要約を生成すること。何が話し合われたか、何が決まったか、残った課題は何かをまとめます。

2つ目は、アクションアイテム(やるべきこと)を抽出し、タスクボードに自動的にタスクを作成すること。

つまり、会議をすると議事録が自動で出来上がり、「やること」リストも自動で生成される。人間の会議でいう「議事録係」と「タスク管理者」をAIが兼任しているわけです。

作られたタスクは、カンバンボード(TODO / IN PROGRESS / DONE の3列で管理するタスクボード)の「TODO」列に追加されます。会議の成果が、そのまま行動計画につながる仕組みです。

過去の会議も振り返れる

会議のデータはFirestoreのmeetingsコレクションに保存されます。議題、会話ログ、要約、アクションアイテムが全てセットで記録されます。

「HISTORY」ボタンを押すと、過去の会議一覧が見られます。「あの会議で何を決めたっけ?」と振り返りたいとき、わざわざチャットログをさかのぼる必要はありません。

HISTORY:ログ全文+サマリー

会議ごとに独立したデータとして管理されているので、「3月16日のブランド戦略会議」と「3月10日の初回会議」をそれぞれ別々に参照できます。

振り返り

Day 7の夜に実装した2つの機能は、Office-Chronosの性格を大きく変えました。

自律思考ループ AIが自分で考えて動く(「話しかけられたら動く」から「定期的に自分で動く」へ)

会議室 AIと構造化された議論ができる(「雑談チャット」から「戦略会議」へ)

どちらもFunction Calling(道具を使う仕組み)の上に成り立っています。

道具がなければ、AIは「考える」ことはできても「行動する」ことができません。

道具を持たせ、考える時間を与え、行動させる。この3つが揃って、初めて「自律するAI」と呼べるものになりました。 次回は、Day 11。

5人のAIエージェントを「部署」に分けて、記事執筆システムを作った話をします。