文字起こし用のワーキングメモリを育てる
文字起こしモデルは世界のことは知っていても、あなたの身の回りのことは知りません。子どもの名前も、同僚のあだ名も、チームの社内名も、毎日話している個人開発の名前も、一度も聞いたことがないのです。誤変換されるのはまさにそういう言葉で、あとでジャーナルを検索するときに一番正しくあってほしいのもそういう言葉です。
ワーキングメモリファイルは、これを解決するための仕組みです。「最近だれの、何の話をしているか」を書いた短い Markdown ファイルを 1 つ用意します。Gemini のプロファイルが {{file:...}} で毎回の文字起こしプロンプトにこのファイルを取り込み、定期実行の AI エージェントが直近のエントリーをもとに 1 日 1 回書き換えます。全体はこういうループになります。
録音する → Ayumi がエントリーを Markdown で保存する → 毎日のエージェントが直近のエントリーを読んで WORKING_MEMORY.md を書き換える → 次の録音は、そのファイルをプロンプトに入れて文字起こしされる。
このページでは、このループを役に立ち続ける形で組む方法をまとめます。難しいのはファイルを作ることではなく、小さく保ち続けることです。
このファイルの役割と、役割ではないもの
Section titled “このファイルの役割と、役割ではないもの”1 行目を書く前に目的を決めておきます。ファイルの肥大化を止めるのは、この目的です。
| このファイルに書くもの | このファイルに書かないもの |
|---|---|
| 正しい表記の固有名詞の辞書(誤変換を防ぐため) | ジャーナルの要約 |
| いま進行中の話題の最小限のスナップショット(あいまいな語をモデルが判別できるように) | 物事がどう進んだかの年表 |
| めったに変わらない基本情報(家族構成、仕事、よく行く場所) | 引用、エピソード、印象的な言い回しの収集 |
| 未決の問いに対する、いまの自分の立場(各 1〜2 文) | 別の場所に元データがある情報のコピー |
本体は 1 行目、つまり固有名詞の辞書です。それ以外は、モデルが正しい語を選べるだけの文脈を与えるためにあります。
小さく保たなければならない理由
Section titled “小さく保たなければならない理由”上限のないワーキングメモリは毎日大きくなります。更新のたびに細部が 1 つ足され、何も削られないからです。数週間で数万字になり、そうなると次のことが起きます。
- 役に立たなくなる。 大事な語が文章の中に埋もれ、毎日口にする名前と先週の出来事の段落が同じ重みで扱われます。
- Ayumi が途中で切る。
{{file:...}}が埋め込むのは最大 8,000 字までで、それ以降は捨てられます。上限を超えたファイルは、末尾のセクションを黙って失います。 - 録音のたびにコストがかかる。 ファイル全体が文字起こしリクエストごとに送られるので、肥大したファイルは毎回トークンと待ち時間を消費します。
そのため、ファイルにはハードな上限が必要です。そして保守するエージェントには、削ることを足すことと同じくらい当たり前にするルールが必要です。
推奨する構成
Section titled “推奨する構成”日付と上限をエージェントが読めるようにフロントマターを使い、エージェント向けのルールはファイル自体の中に書きます。こうしておけば、どのエージェントも、手で編集するあなた自身も、何かに触れる前に必ずルールを目にします。
---title: WORKING_MEMORYupdated: 2026-10-17max_chars: 6000---
# ワーキングメモリ
## 更新する人へのルール1. 全文 6,000 字以内。足したら同じだけ削る。2. 上書きする。日付付きの経過を追記しない。3. 1 項目 1〜2 文。引用・エピソードは書かない。...
## 固有名詞辞書**人**: <名前>(<読み>)=<続柄> / ...**場所**: ...**仕事**: <チーム名>(「<よくある誤変換>」と誤変換されがち) / ...**自作物・ツール**: ...**自分の造語**: ...
## 基本情報- ...
## 今の状況(2026-10-17)- **家庭**: ...- **仕事**: ...
## 今の結論- **<未決の問い>**: <いまの立場を 1〜2 文で>。
関連: [[ノート]] / [[ノート]]固有名詞辞書は上のほうに置きます。一番働くのはこの部分で、万一ファイルが 8,000 字を超えたときに切られるのは末尾だからです。
プラクティス
Section titled “プラクティス”- 上限は、埋め込み上限の 8,000 字より十分小さく決める。 6,000 字程度にしておくと、プロンプトのほかの部分の余地と、うっかり超えた日の余裕が残ります。上限はフロントマターに書き、エージェントが確認できるようにします。
- 更新のたびに文字数を数える。 エージェントの最後の手順として全文の文字数を測り、超えていれば終わる前に削らせます。エージェントが確認しないルールは、ただの努力目標です。
- 削る順番を決めておく。 たとえば「冗長な結論」→「今の状況の重複」のように、先に削るものを決めておきます。辞書は最後まで残します。
- 詳細は残さずリンクにする。 2 文で収まらない内容は別のノートに書き、ここにはリンクだけを置きます。
更新は「追記」ではなく「置き換え」
Section titled “更新は「追記」ではなく「置き換え」”- 古い記述を新しい記述で上書きする。 「3 日に X を開始… 5 日に X は順調… 7 日に X 完了」という形は避けます。ファイルに書くのは、いま正しいことだけです。
- 1 つ足したら 1 つ落とす。 新しい未決の問いを入れたら、決着した問いを 1 つ外します。
- 「今の状況」は毎回まるごと書き直す。 見出しの日付も今日にします。部分的に直していると、古い行が生き残ります。
- 「今の結論」は、立場が実際に変わったときだけ書き換える。 同じ立場の言い換えを毎日繰り返すのはノイズです。
- 「基本情報」は、明確な変化があったときだけ直す。 家族が増えた、転職した、引っ越した、などです。
- 変化の少ない日は何もしない。 記録が少なければ、日付と 1〜2 行だけ直して終えます。埋めなければと思うエージェントが、ファイルを太らせます。
- 更新ログを作らない。 ファイルは常に最新のスナップショットです。履歴はジャーナル本体と、使っていればバージョン管理に残ります。
固有名詞辞書
Section titled “固有名詞辞書”- 加えるのは、実際に話した語か、誤変換を確認した語だけにする。 AI が書いたノート(要約、レポート、エージェントの分析)にしか出てこない語は、あなたが話す語ではありません。入れると、本当に必要な語を押し出してしまいます。
- 表示してほしい表記で書く。 それがこの項目の目的そのものです。
- 役立つときだけ、読みや既知の誤変換を括弧で添える。 たとえば
<名前>(「<よくある単語>」と誤変換されがち)のように書きます。それ以外の説明は付けません。 - 種類ごとにまとめる。 人、場所、仕事、自作物・ツール、お金・手続き、自分の語彙などに分けると、重複に気づきやすくなります。
- 話さなくなった語は消す。 一時的なプロジェクトや一度きりの場所は、会話から消えたらここからも外します。
- 1 項目 1〜2 文。 それ以上必要なら、独立したノートにする合図です。
- 引用や言い回しを集めない。 あなた自身の言葉は、このファイルの元になったエントリーにすでにあります。
- 別の場所に元データがあるものは書かない。 食べたもの、天気、行った場所、買ったもの、トレーニングの数値などです。日時・場所・天気は Ayumi が各エントリーにすでに記録していて、残りはほかのノートにあります。
- 数値には計測日を付ける。
<値>(<日付> 計測)なら役立つ文脈ですが、日付のない数値はいつの間にか古くなります。日付を付けられないなら書きません。 - 図は入れない。 モデルが読むのはテキストです。Mermaid のブロックは文字数を食うだけで役に立ちません。
プライバシー
Section titled “プライバシー”- このファイルは、録音のたびに文字起こしプロバイダーへ送られる。 毎回のリクエストの一部として書いてください。実際にそうなっています。
- 秘密情報は絶対に書かない。 パスワード、鍵、口座番号、プロバイダーに送りたくない健康情報などです。文字起こしの役に立つ文脈に、これらが必要になることはほとんどありません。
- エージェントに新しい機微情報を持ち込ませない。 ルールのセクションに明記し、毎回の実行で目に入るようにします。
Ayumi に組み込む
Section titled “Ayumi に組み込む”-
エージェントからも各デバイスからも届く場所にファイルを置きます。たとえば同期しているノートのフォルダです。
-
設定 → 文字起こし で、いちばんよく使う Gemini プロファイルを開き、プロンプトに
{{file:WORKING_MEMORY.md}}を加えます。ファイルは 変数を挿入 → Markdown ファイル… から選びます。ジャーナルフォルダの外にあっても、Ayumi はファイルへのアクセスを安全に保持します。 -
同じプロンプトに、このファイルの使い方も書いておきます。たとえば次のように書きます。
以下は、私がよく使う人名・地名・用語の参照リストです。名前や用語を正しく表記し、あいまいな語を判別するためだけに使ってください。リストについて言及したり、私が話していない内容をリストから付け加えたりしないでください。{{file:WORKING_MEMORY.md}} -
辞書の語をいくつか含めて録音し、文字起こし結果を確認します。
定期実行のエージェントで最新に保つ
Section titled “定期実行のエージェントで最新に保つ”ファイルの書き換えは、1 日 1 回エージェントに任せます。Claude Code や Codex などで、再利用できるスキル(または保存したプロンプト)を定期実行タスクから呼ぶ形がうまくいきます。ルールがスキルと一緒に持ち運ばれ、毎回の実行が同じようにそれに従うからです。
スキルには、次の順番で作業させます。
- 既存のファイルを必ず先に読む。 セクションごとに、その場で更新します。ゼロから作り直してはいけません。作り直すと、育ててきた辞書が失われます。
- ローカルのタイムゾーンで今日の日付を取得する。
updatedと「今の状況」の見出しに使います。 - 直近の活動を集める。 直近 3〜5 日分のジャーナルエントリーと、最近更新したノートを読みます。Ayumi の日付フォルダは UTC なので、フォルダ名ではなくフロントマターの
created_atを読みます。 - セクションごとのルールで更新する。 辞書: 新しく話されるようになった語を足し、出てこなくなった語を消す。今の状況: まるごと書き直す。今の結論: 変わったところだけ直す。基本情報: 明確な変化があったときだけ直す。関連リンク: 件数を一定に保ち、古いものと入れ替える。
- 数えて、削る。 全文の文字数を測り、上限を超えていれば、決めておいた順番で収まるまで削ります。
- 短く報告する。 主な変化点と最終的な文字数を 2〜3 文で報告させます。報告が短ければ、ずれに気づきやすくなります。
スキルの指示のたたき台です。
直近のジャーナルの活動をもとに WORKING_MEMORY.md を更新してください。
目的: このファイルは音声日記の文字起こしプロンプトに注入されます。主な役割は固有名詞を正しく表記させること、次の役割はいまどの話題の中にいるかを示すことです。要約でも年表でも引用集でもありません。
ルール(ファイル内のルールのセクションが優先):- 全文をフロントマターの max_chars 以内に収める。- 先にファイルを読み、その場で更新する。上書きし、日付付きの経過を追記しない。 1 項目 1〜2 文。- 辞書: エントリーで実際に話された語か、誤変換された語だけを加える。正しい 表記で、読みは任意で括弧書き、説明は付けない。出てこなくなった語は消す。- 今の状況: 今日の日付でまるごと書き直す。- 今の結論: 実際に変わった立場だけ書き換える。新しい問いを足したら、決着した 問いを 1 つ落とす。- 別の場所に元データがあるもの(献立・天気・場所・トレーニング)は書かない。 数値には日付を付け、付けられないものは書かない。秘密情報は書かない。- 変化が乏しければ、日付と 1〜2 行だけ直して終える。
最後に全文の文字数を数え、上限を超えていたら、冗長な結論 → 今の状況の重複の順に削って収める。主な変化点と最終的な文字数を 2〜3 文で報告する。チェックリスト
Section titled “チェックリスト”| 確認すること | 理由 |
|---|---|
フロントマターに updated と max_chars がある | エージェントが日付とサイズを推測せずに確認できる |
| ルールのセクションがファイル内にある | どのエージェントも、どの実行も同じルールを見る |
| 辞書が上のほうにある | 一番働く部分で、切り詰められても残る |
| 全文が 8,000 字より十分小さい | Ayumi は上限を超えた部分を捨てる |
| 日付付きの経過、引用、更新ログがない | ファイルが太る原因はこれら |
| すべての数値に日付がある | 日付のない数値は気づかないうちに古くなる |
| 秘密情報がない | ファイルは録音のたびに送られる |
| エージェントが終わる前に文字数を数えている | 確認されない上限は上限ではない |
同じ開発元のアプリ: 鍛 Kitae(シンプルな筋トレ記録)
Ayumi Journal 編集部: note · X (@AyumiJournalApp)