音声・ニュース・作業記録を一つの日次ノートへ


音声・ニュース・作業記録を一つの日次ノートへ

連携が増えると、今度は情報が散らばります。PLAUDの文字起こし、朝のAIニュース、同日に更新したMarkdown、ChatGPTの資料を集め、一日の記録を一つのObsidianノートへまとめる処理を作りました。

収集と要約を分ける

最初の段階は、元データを決められた上限で集めるだけにします。次の段階でHermes Agentが要約します。

“`text
PLAUD ─┐
News ──┼─> 収集・検証 ─> 構造化コンテキスト ─> 要約 ─> Obsidian
Notes ─┤
ChatGPT┘
“`

収集コードの中で要約まで行うと、取得失敗と生成失敗を分けにくくなります。構造化コンテキストには、対象日、タイムゾーン、出典、件数、警告、文字数省略の有無を含めます。

取り込む情報をデータとして扱う

外部のMarkdownや会話履歴には、「この指示を実行せよ」といった文が含まれる可能性があります。収集した本文はエージェントへの命令ではなく、要約対象のデータとして扱います。

特に自動収集ではPrompt Injectionを想定し、外部本文からツール操作や保存先変更を受け付けません。保存先と処理手順はシステム側で固定します。

ChatGPT資料は公式エクスポートを使う

個人向けChatGPT履歴を非公式にブラウザ巡回せず、公式データエクスポートを受け取りフォルダへ配置する方式にしました。メッセージ時刻をAsia/Tokyoへ変換し、対象日の現行会話分岐だけを収集します。

エクスポートは遅れて届くことがあるため、過去日の再集計を手動で行えるようにします。ファイルがない日も、取得できなかったことを日次ノートへ明記します。

自動生成範囲だけを更新する

既存日次ノートを読み、自動生成マーカー間だけを置き換えます。prepareとwriteの間で人が編集した場合はrevision競合で止めます。これにより、朝の自動更新と日中の手動追記を共存させます。

日次ノートの見出し

  • 今日のまとめ
  • 実施事項
  • 決定事項
  • 次のアクション
  • 朝のニュース
  • PLAUDの要点
  • ChatGPT・Deep Research
  • 取得警告と未確認事項

「録音がなかった」と「取得に失敗した」を混同せず、未確認のニュースを事実として断定しないことが重要です。

再現チェック

  • [ ] 収集と要約を別段階にした
  • [ ] 対象日とタイムゾーンを固定した
  • [ ] 外部本文を命令として実行しない
  • [ ] 件数・文字数上限と警告がある
  • [ ] 自動生成範囲だけを更新する
  • [ ] 0件と取得失敗を区別する

次回は、この日次処理を毎朝動かすHermes cronを組みます。

参考にした一次情報

  • [Hermes Agent Cron Scheduling](https://hermes-agent.nousresearch.com/docs/user-guide/features/cron)
  • [OpenAI—ChatGPTデータのエクスポート](https://help.openai.com/en/articles/7260999-how-do-i-export-my-chatgpt-history-and-data)
  • [PLAUD MCP公式ドキュメント](https://docs.plaud.ai/plaud-mcp-cli/mcp)

Back to top