2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AI に週の予定を操作させる前に、読み取り・対象確認・書き込みを分ける

2
Posted at

AI に「今日のタスクを確認して」と頼む操作と、「このタスクを完了にして」と頼む操作は、分けて設計できます。前者は予定の読み取り、後者は保存済みデータの変更です。ツールが同じ接続から呼べても、操作の意味は同じではありません。

ここでは、私が開発している WeekOrbit の MCP ツールを例に、対象を取り違えないための流れを整理します。WeekOrbit は Today、Week、Month、Group の各ビューを持つ個人向けプランナーで、外部アシスタントは MCP または API から同じタスクを扱えます。

  1. 最初は必要な範囲だけ読む

list_tasks に date を渡すと、指定日のタスクに絞れます。例として {"date":"2026-10-29"} は一日分の取得です。日付は利用者のタイムゾーンで決めます。返ってくる title は説明用、id は操作対象を識別するために使います。画面で振った「4番」のような連番は、その一覧でだけ有効な選択番号です。

  1. 選択番号を、そのとき取得した id に結び付ける

ユーザーが番号を選んだら、同じ一覧の対応関係から id を取り出します。タイトルで全件を再検索して先頭を選ぶと、同名タスクや繰り返し予定を取り違えるおそれがあります。実行前に get_task({"task_id":"実際に取得したid"}) でタイトル、日付、完了状態を確認します。これは実際の id を必要とする説明例であり、この文字列をそのまま実行するものではありません。

  1. 書き込みは、依頼された操作に限定する

一覧を確認しただけで完了状態は変更しません。完了の指示がある場合に限り、対象の update_task へ completed=true を渡す設計にします。一つの繰り返し予定を完了にすることと、シリーズのルールを変えることも分けます。外部サイトへの投稿や支払いは、タスクの取得・更新とは別の操作です。

  1. 保存結果を読み直す

更新 API の応答だけで説明を終えず、元の task_id を get_task で取得し、completed など変更した項目を確認します。ツールが通信エラーになった場合は、まず同じ id の現在値を読んで、成功済みか未変更かを確認します。同じ変更要求を何度も送ることを既定の対処にしないためです。

この流れは WeekOrbit だけの最適化ではありません。AI が扱う対象の識別子、ユーザーの指示が認めた操作、保存後の状態を別々に確認する、という設計です。先に読み取りで対象を絞り、必要なときだけ書き込み、最後に読み直す。これだけでも、実装とユーザーへの説明を整理できます。

製品情報: https://weekorbit.com

この記事は開発者本人による説明です。上の JSON はインターフェースの説明例です。本記事では未実施の書き込みを実行済みと主張せず、性能向上率や安全性の保証も示していません。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?