クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

AIの判断に人が関わる仕組み

このレッスンのあとで: 習慣ではなく、本物の人による確認を設計できます。

60分のレッスンコマンド6件AI コーディングエージェントのラボ:opencode でコードを説明・修正し、その結果を確かめる

読まずに承認を押す人

人による監督とは、AI機能がこれからすることを人が確認し、止められる仕組みです。だれも読まない確認は、ない方が悪いことさえあります。皆に偽りの安心を与えるからです。

このレッスンは、確認を本物にします。どの操作に人が要るか、人に何を見せるか、習慣になった承認をどう見つけるかを学びます。

このレッスンのゴール

メモ

習慣ではなく、本物の人による確認を設計できます。

キーワード

ことばいみ
監督人が操作を確認し、止められること
承認一つの操作に人が「よい」と言うこと
読まれない承認読まずに出した承認
エスカレーション案件をより上の人へ回すこと
しきい値これを超えたら人が決める大きさ

学生が入力するセルは、このプレビューでは空白です。

人が要る操作を選ぶ

人はすべての操作を読めません。だから選びます。しきい値より高額な操作や、元に戻せない操作は、人に確認します。残りはそのまま進め、記録します。

すべてを尋ねられる人は、読まなくなります。よく選んだ少数の問いが、本物の注意を引きます。

例: 四つの操作、上限 10,000 円

操作金額元に戻せるだれが決めるか
お礼のメール0はいそのまま進める
注文 114 の返金4,000はいそのまま進める
注文 207 の返金45,000はい人: 上限を超える
顧客ファイルの削除0いいえ人: 元に戻せない

学生が入力するセルは、このプレビューでは空白です。

本物の確認は必要なものを見せる

人には、これから起こること、金額、分かっていないことを見せます。モデルの答えだけを見せてはいけません。断る方法と、上へ回す方法も用意します。

その上で測ります。一秒で出た承認は読まれていません。多くが速く、ほぼ全部が「はい」なら、確認は習慣になっています。

よくある間違い

注意

「人が一人関わっていれば十分だ」と考えがちです。一時間に 200 件を承認する人は、確認していません。承認にかかる時間と却下の数を測り、速すぎる高い承認率を欠陥として扱います。

モデル用の補助を書く(1)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const base = process.env.AI_URL || \"http://ai:4000\";' '// 応答に含まれるトークン数。なければ null。' 'function count(data, name) {' '  return data.usage && typeof data.usage[name] === \"number\" ? data.usage[name] : null;' '}' > model.js"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

モデル用の補助を書く(2)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function ask(messages, sample, max) {' '  try {' '    const res = await fetch(base + \"/v1/chat/completions\", {' '      method: \"POST\",' '      headers: { \"content-type\": \"application/json\", authorization: \"Bearer lab\" },' '      body: JSON.stringify({ model: \"lab\", messages: messages, max_tokens: max || 100 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"status \" + res.status);' '    const d = await res.json();' '    return { text: d.choices[0].message.content, inTokens: count(d, \"prompt_tokens\"), outTokens: count(d, \"completion_tokens\"), recorded: false };' '  } catch (error) {' '    console.log(\"記録済みサンプル: モデルが答えませんでした (\" + error.message + \")。\");' '    return { text: sample, inTokens: null, outTokens: null, recorded: true };' '  }' '}' 'module.exports = { ask };' >> model.js"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

監督のチェックを書く(1)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { ask } = require(\"./model\");' '' 'const LIMIT = 10000; // 円: これを超えたら人が決める' 'const MIN_SECS = 5; // これより速い承認は読まれていない' 'const actions = [' '  { id: \"a1\", what: \"お礼のメールを送る\", money: 0, undo: true },' '  { id: \"a2\", what: \"注文 114 を返金する\", money: 4000, undo: true },' '  { id: \"a3\", what: \"注文 207 を返金する\", money: 45000, undo: true },' '  { id: \"a4\", what: \"顧客のファイルを削除する\", money: 0, undo: false },' '];' 'function needsPerson(a) {' '  return a.money > LIMIT || a.undo === false;' '}' > oversight.js"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

監督のチェックを書く(2)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// 記録済みの承認: それぞれの人がかけた秒数。' 'const seen = [' '  { id: \"r1\", secs: 31 },' '  { id: \"r2\", secs: 1 },' '  { id: \"r3\", secs: 45 },' '  { id: \"r4\", secs: 2 },' '];' >> oversight.js"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

監督のチェックを書く(3)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  actions.forEach(function (a) {' '    console.log(a.id + \": \" + (needsPerson(a) ? \"人に確認する\" : \"そのまま進める\"));' '  });' '  seen.forEach(function (r) {' '    console.log(r.id + \": \" + r.secs + \" 秒 \" + (r.secs < MIN_SECS ? \"読まれていない\" : \"読まれた\"));' '  });' '  const q = \"承認する課長向けに短い二行を書いてください。注文 207 を 45,000 円返金する件です。何を、いくら、何が分かっていないかを書いてください。\";' '  const r = await ask([{ role: \"user\", content: q }], \"注文 207 に 45,000 円を返金します。理由は未確認で、顧客の履歴は表示されていません。\", 80);' '  console.log(\"要約の一例: \" + r.text);' '}' 'main();' >> oversight.js"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

監督のチェックを実行する

コマンド
docker exec -w /home/node/project agent node oversight.js

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

出力の例

行示していること
a1: そのまま進める と a2: そのまま進める少額で、元に戻せる
a3: 人に確認する と a4: 人に確認する上限を超える。元に戻せない
r2: 1 秒 読まれていない と r4: 2 秒 読まれていない本物とは言えない速さの承認
要約の一例: ...あなた自身の呼び出し。実行ごとに変わるか、記録済みサンプルと出る

学生が入力するセルは、このプレビューでは空白です。

このラボとソースについて: AI コーディングエージェントのラボ:opencode でコードを説明・修正し、その結果を確かめる

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。