1体目の作り方 — 仕様・プロンプト・実行の型(AIエージェント勉強記 第3回)

リード

こんにちは、ぽまらのです。

AIエージェント勉強記第3回 です。

第1回 で最小構成、第2回 で1体 vs 複数体を整理しました。
ここから 実装 に入り、日常オペ3体の 1体目 — 週次振り返り(weekly-reflect) の作り方を書きます。

索引 「AIエージェントを自分で作る — 勉強記シリーズ」 に相当するエージェントです。
役割は 記録係 — inbox / todos / notes を 読んで要約し、振り返り1枚を作る だけ。inbox の片付けや記事ネタ提案は 別エージェント(②③)の仕事です。

本記事では、spec(仕様書)・prompt(起動用)・実行手順 の3点セット — 本シリーズで使う 1体の型 — を具体例で示します。


この回の全体像

flowchart LR
  S["spec<br/>仕様書"] --> P["prompt<br/>起動文"]
  P --> A["① 週次振り返り<br/>Cursor Agent"]
  IN[("inbox / todos / notes")] --> A
  A --> W[("weekly/*.md")]
  W --> H["人間<br/>事実修正"]

  class S,P concept
  class A agent
  class IN meta
  class W output
  class H human
  classDef concept fill:#e8f4fc,stroke:#3d7ea6,stroke-width:2px,color:#1a1a1a
  classDef human fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#1a1a1a
  classDef agent fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#1a1a1a
  classDef output fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#1a1a1a
  classDef meta fill:#eceff1,stroke:#607d8b,stroke-width:2px,color:#1a1a1a

なぜ1体目は「週次振り返り」か

第2回 で書いた通り、3体は ① → ② → ③ の順で増やします。
最初の1体に 週次振り返り を選んだ理由は次の3つです。

理由内容
読み取り中心inbox / todos / notes を 編集しない — 失敗してもデータを壊しにくい
成果物が1種類出力は weekly/YYYY-Www.md 1ファイルだけ — 停止条件が明確
②③の土台記事提案(③)は ① の weekly を 必須入力 にする

「全部自動」ではなく 半自動 です。エージェントが md を書き、人間が読んで修正 してから、次の②③に進みます。


1体の型 — spec + prompt + 実行

X 下書き半自動仕様書 + プロンプト + 定期実行 でした。
本シリーズの1体も同じ型です。

ファイル役割週次振り返りでの例
spec正本。目的・入出力・禁止・フォーマットweekly-reflect-agent-spec.md
promptAgent に渡す 短い起動文(spec を参照させる)automation/weekly-reflect/prompt.md
実行手順メモ(README 等)日曜夜、Cursor で prompt を実行

ハーネス記事 で書いた 「ルールを外に出す」 発想と同じです。
長い指示を毎回チャットに打つのではなく、spec に固定 し、prompt は「spec に従って今日の1回をやれ」と渡すだけにします。


仕様書(spec)に書くこと

週次振り返りの spec では、第1回の 5要素 をこう落とし込んでいます。

要素週次振り返りでの内容
目的当週(ISO 週)の inbox / todos / notes → 振り返り1枚
入力3ディレクトリ(読み取りのみ)
出力.company/secretary/weekly/YYYY-Www.md
ルール推測禁止、上書き禁止、inbox 非編集
人間要約の読み合わせ、事実修正、status: reviewed

入出力(要点)

入力(読むだけ)

置き場内容
inbox/未処理メモ
todos/対象週の YYYY-MM-DD.md
notes/対象週中に更新された md

inbox / todos が 空でもエラーにしない — あるものだけから要約します。

出力(1ファイル)

  • パス: weekly/YYYY-Www.md(ISO 8601 の週番号)
  • 既に同名ファイルがある → 上書きせずスキップ(二重生成防止)

出力フォーマット(抜粋)

WordPress には載せない 内部用 md です。frontmatter + 4セクション + 人間用メモ欄。

---
week: YYYY-Www
period_start: YYYY-MM-DD
period_end: YYYY-MM-DD
status: draft
agent: weekly-reflect
sources_read:
  - (読んだファイルパス)
---

# 週次振り返り YYYY-Www(MM/DD 〜 MM/DD)

## 今週やったこと
## 学び・気づき
## 未完了・持ち越し
## 来週の焦点(案)
## 人間用メモ(任意)

各セクション 3〜7行 を目安。notes に published_url があれば「今週公開: (タイトル)」を 今週やったこと に載せてよい、と spec に書いています。

禁止(②③と境界を分ける)

  • 入力に ない事実の推測
  • inbox / todos / notes の 編集・削除・移動
  • 同じ週の weekly の 上書き
  • TODO整理・記事提案の 代行

① は 記録係 — 触るのは 新規 weekly 1枚だけ です。


プロンプト(prompt)に書くこと

prompt は 毎週同じ文 でよいです。中身は次のとおりです。

  1. 役割宣言(weekly-reflect、spec に従う)
  2. 今日の作業 — 6ステップのチェックリスト
  3. 各セクションの 行数目安
  4. 禁止 の再掲(spec の要約)

spec が正本なので、prompt に全部コピーしなくてよい — 「spec を読んで、この週の1ファイルを作れ」 が prompt の仕事です。

起動時に Agent がやること(要点):

  1. 日本時間で 対象週(YYYY-Www) を確定
  2. 出力先が 既存ならスキップ
  3. inbox / todos / notes を 読み取りのみ
  4. フォーマットどおり 1ファイル新規作成
  5. sources_read に実際に読んだパスを列挙
  6. 週番号・出力パス・行数を 簡潔に報告

実行の型 — 日曜夜の手順

初期は Cursor IDE で手動 です(GitHub Actions 化は慣れてから、第5回以降)。

作業担当
0inbox / todos / notes に当週分があるか軽く確認人間
1prompt.md を Agent に渡して実行エージェント
2weekly/YYYY-Www.md を読み、事実を修正人間
3必要なら status: reviewed に更新人間
4② TODO整理、③ 記事提案第6回(第5回は ① のみ)

日曜 21:00 JST 頃 を目安にしています。その週(月〜日)を閉じて、翌週月曜から TODO 整理につなげるためです。

成功の判定(①だけ)

  • weekly/YYYY-Www.md1枚 できている
  • sources_read空でない(入力が空の週は「記録なし」と書いてよい)
  • inbox / todos が エージェントによって変更されていない

週次ルーティン 全体 の完了定義(0〜6)は 第2回 のとおり。①単体の成功は上記3点です。


人間用チェックリスト

エージェントのあと、自分で見る項目です。

  • [ ] 今週やったこと に、今週ない出来事が混ざっていない
  • [ ] 公開記事・大きなリリースが 漏れていない
  • [ ] 来週の焦点 が 1〜3個に絞れている
  • [ ] ②③が読める 要約 になっている

修正は 人間用メモ 欄に書いても、本文を直接直してもよいです。


1体目から学べること(②③にも使う型)

週次振り返りで固定した 1体の型 は、TODO整理・記事提案にもそのまま使います。

内容
spec目的・入出力・禁止・フォーマット・人間の役割
promptspec 参照 + 今日のステップ + 停止条件
停止条件1成果物・上書き禁止(または明示的な更新ルール)
半自動エージェント出力 → 人間確認 → 次へ
境界やらないこと を spec に書く(①は inbox を触らない)

②は 破壊的操作(inbox 移動)があるので、①に慣れてから spec を書く予定です。


まとめ

  • 1体目は 週次振り返り(weekly-reflect) — 記録係、読み取り中心
  • spec + prompt + 実行手順 が1体の型
  • 出力は weekly/YYYY-Www.md 1枚、既存ならスキップ
  • inbox / TODO / 記事提案は ②③ — ①ではやらない
  • 第5回: 1体を作って動かす(週次振り返りの初回実行)
  • 第6回: 3体を作って動かす(週次ルーティン全体)

索引・第1回第2回 とあわせると、「概念 → 選び方 → 1体目の実装」の流れがつながります。


コメント