1ex.me/Blog/agentic-obsidian

Obsidianオタクのタスクマネジメント

この記事は何

Obsidianから離れられないオタクが可搬性を盾にObsidianにしがみついてagentとタスク管理をやっている話です。もうちょっとちゃんと言うなら、さしずめセマンティックレイヤーとしてObsidianを活用したマルチエージェント前提のタスクマネジメント、といったあたりでしょうか。

Obsidianとは

ローカルのMarkdownファイルを束ねて動く高機能ノートアプリです。

だいたい以下の目的で使っています:

  • ナレッジベース
  • タスク管理:Obsidian Tasks pluginでタスクを散在
  • デイリーノート:Daily-notes/<YYYY-MM-DD> に毎日テンプレートで生成。日報・Inbox・その日のタスク消化の場として使う

マルチデバイス同期

素のObsidianは同期機能をもたず、公式のObsidian syncほかいくつかの方法がありますが、自分はGitで管理しています。 かつてSelf-hosted Livesyncを使っていましたが、fly.ioの管理が面倒になったのと、スマホからObsidianを操作することがタスク管理以外ほぼないことに気付いたのでやめました。 現在はスマホからはObsidianを開いていません。そもそもUIに限界がありTasks書式の更新も面倒になってしまったためです。

Obsidian Tasksによるタスク管理

Tasksはタスクを - [ ] タスク名 の書式でMDファイルに書き散らし、絵文字メタデータで期限・優先度を管理するプラグイン。2022年頃に使い始め、そのまま習慣になっています。

タスク記法の例:

- [ ] やること ⏫ 📅 2026-06-01 🆔 123
  • → 優先度(urgent)
  • 📅 → 期限
  • 🆔 → Linearのissue番号

みたいな感じですね。

Linearとは

チームのプロジェクト管理・issueトラッキングアプリ。今回の用途は先述したObsidian Vaultへのスマホからのアクセス目的です。 Workspace > team > issueという概念があり、issueが個別のタスクに該当します。

現行構成

元々かなり大規模(~2900ページ、Vault内タスク数7000程度)のVaultが存在していて、これをagentに繋げたいという願望があって始めたので、SSOTがVaultから離れることは想定していませんでした。そもそもどれか一つのエージェントにフルベットするのはリスキーなので、意図的に避けているという側面もあります。

思考実験としてVault以外にデータレイクを置くならNotionやAnytypeあたりになる気はします。 が、Notionで7000ページはパフォーマンス的に厳しいことが予見できていました。サークルのナレッジベースで運用したことがあるのですが、Notion Wikiでatomicにタスクを分割していく運用だと1000ページあたりからビューが重すぎて運用に耐えないなという判断がかつてありました。 Anytypeは相対的に可搬性に優れないので、結局Obsidianから離れる選択肢はないと思っています。

完了タスクを消す択もありますが、個人的にはすべてを残しておくことを重視しました(最悪Gitがあるので消してもよくはあるんですが)。 Affineなどセルフホスト可能な他のサービスは最終的に使い勝手で戦う羽目になるので、慣れたObsidianから動く必然性は現時点で薄かったです。

各層の連携

agent→Obsidian

repoへのアクセスを認めていて、WindsurfやCodexのローカルセッションではPRにするようにAGENTS.mdに書いています。クラウドセッションでも読んでくれますが、そもそもクラウドセッションでは勝手にPRになります。Vault内のタスクはこれまでプロジェクトごとにノートがあって、ノートの中にタスク行がある、といった感じなので、それを遵守するなどのルールを設けています。

タスクチケットの考えに近しい運用をしている場合は最初から1ノート1タスクの前提を敷いて、YAMLフロントマターにタスクのステータスを書き、プロジェクトごとにディレクトリを分けるかタグを使ってMoC管理……といったオペレーションになりましょうか。 このあたりは個々人(個々チーム?)で分かれる気はしますが、個人的にはタスクごとにノートを分けるとナレッジ管理が大変になる(ナレッジもノートにする? MoCノートにひたすら書く? といった管理があり、下手にやるとコウモリ問題が起きる)と思うので、1ノート1タスクは窮屈さを感じて採用しませんでした。

現状Codex, Claude, Windsurf, Devin, Hermes越しにGPTあたりが触っています。

人→Obsidian

普通に編集してpushしてます。自分しか触らないのでmain直pushです。複数人管理だとどうなるんでしょうか。さすがに都度PRはキツいんじゃないんでしょうか……もしくは複数人で管理するVaultならagentにのみ触らせるオペレーションが意外とワークしてしまうかもしれません。

Obsidian→Linear

pushかPR closedで走ってdiffをさらってLinearにissueを起こします。IDがあれば対応IDのissueをupdateする感じです。Obsidian Tasksの書式をLinearのAPIに翻訳して乗っけるだけのものを走らせてます。 今は2週間くらい走らせてActionsトータルで100minくらいのオーダーなので、無料枠で余裕で足りています。足りなくなってきたらちゃんとスクリプト見るかもしれない。

Linear→Obsidian

Linearのupdateを掴んでObsidianに投げるものですね。こちらはIDが存在しないことがないのでObsidian側でタスクラインを探します。今はインデックスを作っていませんが、必要になれば作るかもしれないし、Obsidian CLIで検索を回したほうが早いかもしれません。どのみち解決策はあるだろうとかなり楽観視しています。Linearで新規issueを作ってObsidian側にタスクがない時はdaily noteに投下する運用にしています。

具体的な使い方

  • 予定の連絡が来たらスクショしたりテキストコピーしてHermesやCodexに頼む(PCでもスマホでも)
  • 朝夕でタスクの優先度ごとにこれを先にやれだののリマインドをCodexの定期実行に乗せて、Discord webhookで放り投げている(Hermesにしていない理由はあまりない。単にHermes入れる前にこっちのオートメーションを作っただけ)
  • 直して欲しいことがあったらそのままメモしておいて、後でLinear側でDevinをラベルしておく。DevinもVaultへPRを送れるので修正内容のメモをナレッジで上げる

今後やりたい使い方

  • web clipper
  • めんどくさがってやっていないZoteroの連携をやって文献サーベイにもしてしまいたい

この構成をチーム運用するのなら

最初に

大前提としてVaultの運用ルールを決めるべきだと思います。

僕は

/Assets      ......画像やPDFなど
/Blog        ......ブログ記事
/Contents    ......ノートたち
/Daily-notes ......デイリーノート
/Embodiment  ......テンプレート

くらいしかフォルダを作っておらず、あとは.githubとかがある程度で、ノートたちは基本的にリンクかタグで繋がっている感じです。 人によっては徹底的にフォルダを分ける人もいますが、僕はとてもズボラなのでフォルダの掃除すら面倒だったためやめました。 仕事用でプロジェクト単位や部署単位の切り分けがスムーズにいくのなら、そういうフォルダ分けをしてもいいかもしれません。

いずれにせよ、最初からagentとVaultを作っていくのなら、かなり運用ルールは明文化すべきだと考えています。人が守ってもagentが守らないので、pull_request_template.mdでチェックシート化できるくらいには骨を折るべきだと思います。そこそこVaultが育ってからならagentは空気を読んでくれるかもしれませんが。

進捗管理ビュー

今回のケースは進捗管理ビューにLinearを使っており、Linearのwebhook eventsを拾うのにCloudflare Workersを使っています。webhookを受ける際には署名検証を入れている感じです。こちらも全然freeプランで足りていますが、コンピュートリソースがあるのなら他の選択肢もあると思います。Workersを使ったのは単にWranglerが楽だからってくらいです。もしかしたらNotionを使ってもいいかもしれません。

コラボレーション

Notionでもいいかもな〜なんて言いましたが、Notionで進捗管理ができていてわざわざObsidianに手を出したい場合って純粋なナレッジベースとしての用途だとそこまで嬉しさがないと思っていて、ナレッジベースの可搬性くらいしかないんじゃないかな……? とも思います。あとはPATさえ出せば他のrepoからActionで記録が読み書きできるとか……?

個人的にはNotionロックインは好ましいと思いませんが、やはりコラボレーションツールとしてのNotionは強力だと思っています。

ここにナレッジベースの一部をブログにしたい(mdビューを事実上のCMSにしたい)とか、単なるナレッジベース以上の役割をさせたいというのが絡んでくると、確かにObsidianはとても魅力的な選択肢になると思います。というか僕がやっているし。 任意のagentからアクセシブルであることも、Notionくらいの知名度があるならだいたいプラグインがあるだろうし、正直そこまで比較優位ではない(確実に、の枕詞がつくくらい)と思います。

それよりも、ナレッジを蓄積することも重要ですが、アイデアを溜め込んでおいて思いついた時に容易に実装まで持っていける、といったシチュエーションの方が強みを発揮すると思います。CursorやsurfでVaultをそのまま開いてplanまで持っていってもいいし……スピードはそれ単体で価値になるので、個人的にチームでVaultを使う明確な利点はこういった時に発揮されると考えています。 そして、そのためにメンバーが使いやすいようなVaultの運用ルールを決めておくべきなのではないかと考えています。