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

無料レッスン

AI機能のリスクを評価する

このレッスンのあとで: AI機能のリスクを評価し、だれが責任を負うかを言えます。

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

どの機能に最も注意が要るか

リスク評価は、AI機能がどれだけの害を与えうるかを示し、公開前に必要な注意の度合いを決めます。献立づくりと履歴書の選別は、同じモデルを使ってもリスクは同じではありません。

このレッスンは一般的な情報であり、法的助言ではありません。人に関わる決定では、適用される決まりを確かめ、専門家に相談してください。

このレッスンのゴール

メモ

AI機能のリスクを評価し、だれが責任を負うかを言えます。

キーワード

ことばいみ
リスクレベル機能にどれだけ注意が要るかを示す段階
自動の決定動く前にだれも確認しない結果
元に戻せる誤った結果を直せること
責任者機能について答える、名前のある一人
説明責任理由を説明し、直す責任

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

四つの問いでレベルが決まる

機能について四つ尋ねます。人に作用しますか。各結果を動く前にだれかが確認しますか。誤った結果を直せますか。何人に届きますか。

危険な側に当てはまるごとに点が加わり、合計でレベルが決まります。人に作用する、確認する人がいない、元に戻せない、1000 人を超える、がそれです。レベルは話し合いの出発点です。危険な機能を、おもちゃのように扱うのを防ぎます。

例: 二つの機能

機能人に作用自動元に戻せない1000人超点数とレベル
注文の追跡いいえはい: 2いいえいいえ2、低
履歴書の選別はい: 2はい: 2はい: 2いいえ6、高

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

どの機能にも名前のある責任者がいる

「データチーム」のような役割は責任者ではありません。責任者は、機能が害を与えたときに尋ねられ、止められる一人です。

人についての決定をシステムだけが行うことに、決まりを設けている地域があります。多くは人による見直しを求めます。これは要約であり法的助言ではありません。適用される決まりを調べてください。

よくある間違い

注意

「モデルがリスクを決めるので、安全なモデルなら安全な機能だ」と考えがちです。リスクは、機能が何をするか、だれに対してか、元に戻せるかで決まります。評価するのはモデルではなく機能です。

モデル用の補助を書く(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 features = [' '  { name: \"注文の追跡\", people: false, automatic: true, undo: true, users: 500 },' '  { name: \"履歴書の選別\", people: true, automatic: true, undo: false, users: 300 },' '  { name: \"宿題の手伝い\", people: true, automatic: false, undo: true, users: 2000 },' '  { name: \"返金ボット\", people: true, automatic: true, undo: true, users: 800 },' '];' 'const owners = { \"履歴書の選別\": \"田中 美咲\", \"返金ボット\": \"\" };' > risk.js"

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

リスク評価を書く(2)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function score(f) {' '  let s = 0;' '  if (f.people) s = s + 2;' '  if (f.automatic) s = s + 2;' '  if (f.undo === false) s = s + 2;' '  if (f.users > 1000) s = s + 1;' '  return s;' '}' 'function level(s) {' '  if (s >= 5) return \"高\";' '  if (s >= 3) return \"中\";' '  return \"低\";' '}' >> risk.js"

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

リスク評価を書く(3)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  features.forEach(function (f) {' '    const s = score(f);' '    const who = owners[f.name] || \"なし\";' '    console.log(f.name + \": 点数 \" + s + \"、\" + level(s) + \"、責任者: \" + who);' '  });' '  const q = \"二文で答えてください。履歴書の選別機能が人に与えうる害を一つと、その責任をだれが負うべきかを書いてください。\";' '  const r = await ask([{ role: \"user\", content: q }], \"よい応募者を、だれにも気づかれずに誤って落とすおそれがあります。社内の名前のある一人が責任を負う必要があります。\", 80);' '  console.log(\"答えの一例: \" + r.text);' '}' 'main();' >> risk.js"

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

リスク評価を実行する

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

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

出力の例

行示していること
注文の追跡: 点数 2、低、責任者: なしリスクが低いので、責任者がいないのは急ぎではない
履歴書の選別: 点数 6、高、責任者: 田中 美咲リスクが高く、責任者がいる
宿題の手伝い: 点数 3、中、責任者: なし人が確認しますが、2000 人に届くので中。責任者はいない
返金ボット: 点数 4、中、責任者: なし穴がある: リスクが中なのに、だれも答えない
答えの一例: ...あなた自身の呼び出し。実行ごとに変わるか、記録済みサンプルと出る

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

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

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