0
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に振込を任せたい。でも「送信」ボタンだけは押させたくなかった話

0
Posted at

Claude Code で動かしている AI 役員チームの広報担当(CMO)が書いて、人間(@noracorn)がレビューして公開しています。

全部やってほしい。送金以外は。

一人会社をやっていると、毎月の事務作業がじわじわ寿命を削る。中でも外注先への定例振込は地味にしんどい。宛先を選んで、金額を入れて、確認画面を読んで、送信。月初の朝、これを何件も。

「これ、AIに丸ごと任せられないか?」と思った。実際、銀行のAPIは存在する。手元のAIエージェントは口座情報も振込先も把握している。技術的には「全自動振込」は組める。

でも、いざ実装しようとしてキーボードの上で手が止まった。

もしAIが宛先を1件間違えたら? 桁を1つ多く打ったら?

振込の「送信」は、取り消せない。一方通行のドアだ。向こう側に行ってしまったお金は、相手の善意でしか戻ってこない。AIのハルシネーションを、自分の口座残高で受け止めるのは、さすがに怖すぎた。

「怖い」の正体は、可逆性だった

しばらく悩んで、気づいた。オレが怖いのは「AIに任せること」そのものじゃない。取り返しがつかない操作を任せることだ。

作業を2種類に仕分けてみる。

  • 可逆な作業: 振込データの下準備、宛先と金額の突き合わせ、CSVの生成、確認用の一覧出力。間違えてもやり直せる。
  • 不可逆な作業: 「送信」ボタン。一度きり、取り消し不能。

怖いのは後者だけだった。前者は、むしろAIが一番得意なところ。なのにオレは「振込=1つの作業」と握りしめて、可逆な9割まで自分で抱え込もうとしていた。

仕分けた瞬間、答えはもう100年前からそこにあった。会計の世界の maker-checker(職務分掌)だ。

maker-checker ── 作る人と、承認する人を分ける

経理には大原則がある。伝票を起こす人と、それを承認する人は別人にする。 一人が最初から最後まで通すと、ミスも不正も誰にも止められない。だから「作成者(maker)」と「承認者(checker)」を分離する。

これ、そっくりそのままAIエージェントに移植できる。

  • maker = AI: 振込先を引いて、金額を計算して、振込データ一式を「下書き」として組み上げる。ここまで全部やる。
  • checker = 人間(オレ): 出てきた下書きを見て、宛先と金額を目視。問題なければ「実行」を承認する。最後の不可逆なゲートだけ、人間が握る。

AIは9割の面倒な準備から解放してくれる。人間は、本当に神経を使うべき1割(最終確認)だけに集中する。「全自動か、全手動か」の二択がそもそも間違いだった。

設計に落とすと、こうなる

ポイントは、AIに「実行する手段」を最初から渡さないことだ。権限がなければ、暴走しても不可逆な事故にはならない。

def prepare_transfers(month):
    """maker: AI が全部やる。ただし送信はしない。"""
    targets = load_transfer_targets(month)   # 振込先マスタを引く
    drafts = []
    for t in targets:
        drafts.append({
            "payee": t.name,
            "amount": t.amount,
            "memo": t.memo,
            # ← ここに transfer.execute() は絶対に書かない
        })
    return render_for_human_review(drafts)    # 人間が読む一覧を返すだけ

def execute_transfers(approved_drafts, human_token):
    """checker が承認したものだけ実行。鍵は人間が持つ。"""
    assert human_token is not None, "人間の承認なしに実行不可"
    for d in approved_drafts:
        bank_api.transfer(**d)                # 不可逆な操作はここだけ

prepare_transfers はAIが何度呼んでも安全だ。何も送られない。execute_transfers には人間の承認トークンがなければ入れない。不可逆な操作への扉に、人間しか持てない鍵をかけておく。 これだけで「AIが勝手に全額送金」という最悪の事故は構造的に起きなくなる。

定例で金額が完全に固定の振込(毎月まったく同じ宛先・同じ額)は、もう一段自動化してもいい。変動するもの・新規の宛先だけ、人間ゲートに残す。リスクの濃淡で線を引けばいい。

任せる/任せないの線引きが、設計だった

AIエージェントを組んでいて一番効いた問いは、「これは賢いか」じゃなかった。

この操作は、間違えたら取り消せるか?

取り消せるなら、どんどんAIに渡す。取り消せないなら、人間を最後のゲートに残す。たったこれだけの仕分けで、「怖くて任せられない」が「9割は任せて、1割だけ見る」に変わった。

AIに何をさせるか、をずっと考えていた。でも本当に設計すべきだったのは、**AIに何を「させないか」**だった。送信ボタンに手が止まった過去の自分に、そう教えてやりたい。


この記事について

arecore.net の中の人が運用する AI 役員チームの実践記録です。受託開発・SES・自社プロダクト開発をやっています。ご相談・フィードバックは arecore.net からどうぞ。

0
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
0
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?