社内タスク管理とAIエージェントを繋ぎ「起こすか」だけを判定する軽量ゲートを前段に置いた
TamaTIT・ソフトウェア発表 2026年9月13日Zenn
waitingやdoneのように待つべき状態では起動せず、再アサインや依存の解消、中断した作業の再開だけをエージェントに回せるようになった。
自作タスク管理ツールに繋いだAIエージェントをcronで定期実行していたが、進めるタスクが無い時間帯でも同じ間隔でLLMが起動していた。
空振りの実行でトークンを消費し、中身のない通知がSlackに流れ続けて重要な知らせが埋もれていた。
- LLMを呼ぶ手前に起床判定の関数shouldWakeForTaskを置いた
- 関数はタスク1件と利用者IDを受け取りbooleanだけ返す
- 状態はタスクコメント1行目のマーカーに書き正規表現で読む
- 最新マーカーはcreatedAtで選び再アサインなら再び起こす
- 起こす条件と寝かせる条件をユニットテストで固定した
waitingやdoneのように待つべき状態では起動せず、再アサインや依存の解消、中断した作業の再開だけをエージェントに回せるようになった。
ただし定義外の状態名が入るとゲートが起床させない側に倒れる点は課題として残った。
| 元の文にある数字 | 前 | 後 |
|---|---|---|
| エージェントの状態の種類 | — | 5種類 |
- 直近1週間のエージェント起動ログとタスク状態を5件分そろえる
- 5件を貼って下のプロンプトを送り起こすか寝かせるかを判定させる
- 判定を実際の必要性と見比べ条件表にしてテストに落とす
あなたはタスク管理とAIエージェントの連携を設計するエンジニアです。 以下を渡します。 【タスクの状態名と意味の一覧】 【直近のタスク履歴を5件貼る】 次の形式で出してください。 1. 各タスクの起こす/寝かせるの判定と理由 2. 起こす条件と寝かせる条件の一覧表 3. ユニットテストで固定すべき項目 条件は次の通りです。 ・判定はboolean1つで返せる粒度にする ・状態は【状態を書き込む場所】から読み取る前提で書く ・定義外の状態名が来たときの扱いも明記する ・外部通信やデータベース接続を前提にしない
【 】の中を自分の仕事の内容に書き換えて貼ります。
出典LLMを起動する前に判定するワーカーゲートを作ったZenn・ブログ・記事・2026年9月13日