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

無料レッスン

AI機能のガバナンス審査

このレッスンのあとで: 公開前に AI 機能を審査し、結果を書き残せます。

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

悪い公開を止める審査

ガバナンス審査は、公開前に AI 機能を書面で短く確認することです。だれも尋ねなかった問いが、事故を起こします。書き残した記録は、のちに、だれが何を決めたかを示します。

このレッスンは、モジュールを、プログラムで確かめられる五つの項目にまとめます。

このレッスンのゴール

メモ

公開前に AI 機能を審査し、結果を書き残せます。

キーワード

ことばいみ
審査公開前に行う書面の確認
承認責任者が公開してよいと認めること
抜け審査が落とした項目
ロールバック機能を止める手順
記録審査の結果を保存したもの

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

五つの項目で審査になる

五つを確認します。名前のある責任者はいますか。リスクは書いてありますか。評価のケースは十分ですか。ロールバックはありますか。結果は記録されますか。

各項目は、このモジュールから来ます。責任者はリスク評価から、リスクは監督とフィードバックから、評価はモデルの切り替えから、ロールバックは提供元のリスクから来ます。

例: 二つの審査、最小 5 件

機能責任者リスク評価ロールバック記録結果
返金ボットあり20ありあり評価が不足
履歴書の選別あり112なしなしロールバックと記録が不足

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

結果を書き残す

結果は、日付、名前、見つかったことと一緒に保存します。審査で抜けが見つかれば、機能は待ちます。通れば、責任者が承認します。

変更のあとに、審査をやり直します。新しいモデル、新しい用途、新しい提供元のときです。審査はある一日の記録であり、永久の許可ではありません。

よくある間違い

注意

「審査は公開時に一度やれば足りる」と考えがちです。機能も、モデルも、利用者も、決まりも変わります。どれかが変わったら審査をやり直し、結果はそのつど残します。

モデル用の補助を書く(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 MIN_EVALS = 5; // これより少ないケースでは信頼できない' '// 架空の審査が二つ。審査は、すべての項目がそろったときに準備完了。' 'const reviews = [' '  { name: \"返金ボット\", owner: \"佐藤 健\", risks: [\"誤った返金\", \"怒った顧客\"], evals: 0, rollback: \"スイッチを切る\", record: true },' '  { name: \"履歴書の選別\", owner: \"田中 美咲\", risks: [\"不当な不採用\"], evals: 12, rollback: \"\", record: false },' '];' > review.js"

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

審査のチェックを書く(2)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function missing(r) {' '  const gaps = [];' '  if (r.owner.trim() === \"\") gaps.push(\"責任者\");' '  if (r.risks.length === 0) gaps.push(\"リスク\");' '  if (r.evals < MIN_EVALS) gaps.push(\"評価\");' '  if (r.rollback.trim() === \"\") gaps.push(\"ロールバック\");' '  if (r.record === false) gaps.push(\"記録\");' '  return gaps;' '}' >> review.js"

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

審査のチェックを書く(3)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  reviews.forEach(function (r) {' '    const gaps = missing(r);' '    console.log(r.name + \": \" + (gaps.length === 0 ? \"準備完了\" : \"未完了、不足: \" + gaps.join(\"、\")));' '  });' '  const q = \"顧客と話すチャット機能のロールバック計画に必ず入れるべきことを、一文で書いてください。\";' '  const r = await ask([{ role: \"user\", content: q }], \"だれが、どうやって機能を止めるか、どれくらいかかるかを書きます。\", 60);' '  console.log(\"一文の例: \" + r.text);' '}' 'main();' >> review.js"

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

審査のチェックを実行する

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

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

出力の例

行示していること
返金ボット: 未完了、不足: 評価評価のケースがまだない
履歴書の選別: 未完了、不足: ロールバック、記録戻る道がなく、何も保存されていない
一文の例: ...あなた自身の呼び出し。実行ごとに変わるか、記録済みサンプルと出る

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

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

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