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

無料レッスン

AI機能の要件書に書くこと

このレッスンのあとで: 私は、依頼を要件に直し、動いているかを知る方法を決められます。

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

AI機能の要件書を書く

要件書とは、機能が何をするべきか、動いているとどう確かめるかを書いた短い文書です。あいまいな要件書のAI機能は、完成して見えても、お客さんの前で失敗することがあるので大切です。

このモジュールでは、架空のひだまり町立図書館が、ヘルプアシスタントを頼みます。最初のメールには「開館時間と延滞料に答えるチャットボットをお願いします。良いものにしてください」とあります。

このレッスンのゴール

メモ

私は、依頼を要件に直し、動いているかを知る方法を決められます。

キーワード

ことばいみれい
要件書何を作るかを書いた短い文書
要件機能が満たすべきこと一つ
上限機能が超えてはいけない数字40 文字まで
指標答えがどれだけ良いかを表す数字
代替手段機能が答えられないとき、利用者が受け取るもの

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

依頼は要件書ではない

依頼は、誰かの望みを伝えます。誰が使うのか、してはいけないことは何か、いつ完成なのかは伝えません。

依頼が残した問いを立てると、要件書になります。問いは作る前に立ててください。答えしだいで、作るものが変わるからです。

例: 図書館の依頼

依頼の言葉残された問い
チャットボット誰が、どのページで聞くのか
開館時間と延滞料ほかにどんな質問が来るのか
良いものにする何件の間違いなら許せるのか
大きさの話がない答えはどれだけ長くてよいのか
お金の話がない1日の利用にいくらまで使えるのか

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

「良い」には数字が要る

「良い」は感想です。「10件中9件の答えに正しい数字がある」は指標です。二人が確かめて、同じ結論になります。

指標には、テスト用の質問と、答えを採点する規則が要ります。次のレッスンで作ります。今は、要件書に数字が何になるかを書くだけです。

上限、費用、個人情報、代替手段

抜けやすい項目が、あと4つあります。上限。たとえば40語です。1日の費用の上限。何を保存しないかを決める個人情報の規則。モデルが答えない日のための代替手段です。

数字が守られないときに判断する責任者も、決めておきます。

よくある間違い

注意

あいまいな要件書も、モデルがはっきりさせてくれると考える人が多いです。そうはなりません。どの答えが間違いか誰も言えなければ、いつ動いているかも誰も言えません。作る前に数字を書きます。

要件書の検査を書く(1)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' '// 図書館から届いた依頼を、項目に分けたもの。' 'const brief = {' '  users: \"開館時間と延滞料を尋ねる利用者\",' '  tasks: \"ファクトシートをもとに質問に答える\",' '  limits: \"答えは短くしてほしい\",' '  measure: \"答えは良いものにしてほしい\",' '  cost: \"\",' '};' 'fs.writeFileSync(\"brief.json\", JSON.stringify(brief, null, 1));' > brief.js"

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

要件書の検査を書く(2)

コマンド
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const REQUIRED = [\"users\", \"tasks\", \"limits\", \"measure\", \"cost\", \"privacy\", \"fallback\", \"owner\"];' 'const NEEDS_NUMBER = [\"limits\", \"measure\", \"cost\"];' 'const missing = [];' 'const vague = [];' 'for (const part of REQUIRED) {' '  const text = (brief[part] || \"\").trim();' '  if (text === \"\") missing.push(part);' '  else if (NEEDS_NUMBER.includes(part) && /[0-9]/.test(text) === false) vague.push(part);' '}' 'console.log(\"足りない項目:\", missing.join(\", \"));' 'console.log(\"数字のない項目:\", vague.join(\", \"));' 'console.log(missing.length + vague.length === 0 ? \"要件書は完成しています。\" : \"要件書はまだ完成していません。\");' >> brief.js"

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

図書館の要件書を検査する

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

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

Run の表示

行意味
足りない項目cost, privacy, fallback, owner
数字のない項目limits, measure
最後の行要件書はまだ完成していません。

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

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

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