
AIエージェントに「記憶」を持たせる方法として、RAG(Retrieval-Augmented Generation)が広く使われています。しかし、RAGには「毎回検索してコンテキストを再構築する」という根本的な制約があります。
ここでのRAGは、外部のデータ(文書・ログなど)を検索して、LLM(Large Language Model: 大規模言語モデル)に渡す仕組みです。
一方で「状態の蓄積(前回の決定が、今回どう更新されたか)」は苦手になりやすいです。
Rowboat
は、この問題を「継続的にナレッジグラフ(知識をノードとリンクで表す構造)を更新し、状態を蓄積する」アプローチで解決しようとするオープンソース(Apache-2.0)のローカルファーストAIコワーカーです。
Y Combinator
のS24出身のチームが開発しており、メール(Gmail
)や会議メモ(Granola
、Fireflies
)から情報を抽出します。
抽出した情報は、Obsidian
互換(ObsidianはMarkdownベースのノートアプリ)のMarkdownファイルとして保存され、リンク(バックリンク: [[...]] でノート同士を参照する仕組み)でつながります。
ローカルファースト(データをクラウドではなく端末内に置く設計)なので、内容を自分で確認・編集できるのが売りです。
本記事では、Rowboatの設計思想、特にエンティティ解決(Entity Resolution: 表記ゆれや文脈をまたいで同一の人物/組織を統合する処理)とバッチ処理の実装を掘り下げます。

AIエージェントに権限を渡す前に、何を守るべきか。
Claude Code
のようなAIコーディングアシスタントは、ファイルの編集やシェルコマンドの実行を自律的に行います。便利な反面、rm -rf /のような破壊的な操作や、機密ファイルへの意図しないアクセスが現実のリスクになっています。
Claude Code Damage Control
は、こうした事故を防ぐための「強制ガードレール」です。PreToolUseフック(ツール実行前に割り込める仕組み)を使い、危険なコマンドやパス操作を検知して、実行前にブロックまたは確認ダイアログへ誘導します。
感覚としては、エージェント時代のsudoers(sudoの許可ルール定義)を作る、に近いです。

先日、「Agentic CLI Design: CLIをAIエージェント向けプロトコルとして設計する7つの原則
」という記事で、AIエージェント
が安全に呼び出せるCLIの設計原則を提案しました。
ただ、原則だけ読んでも「実際どう実装するの?」という疑問が残ります。そこで今回は、自分が開発したslack-rs
というSlack CLIツールを題材に、7つの原則がどう具体的なコードに落とし込まれているかを解説します。

Obsidian
に蓄積した数百、数千のメモを、Claude Code
から自然言語で検索できたら便利だと思いませんか?
qmd
(Query Markup Documents)は、Shopify
CEO Tobi Lütkeが個人開発したローカルRAG検索エンジンです。サンドボックス実行ツールtry
の作者でもあります。BM25全文検索、ベクター検索、LLMリランキングの3層構成で、Markdownノート・議事録・ドキュメントを高精度に検索できます。
本記事では、qmdをModel Context Protocol
(MCP)サーバーとして設定し、Claude Codeから「Obsidianのメモを検索する」ワークフローを構築する手順を解説します。

LLM(Large Language Model、大規模言語モデル)アプリケーションを本番運用していると、プロンプトの管理が意外と厄介です。「プロンプトを1行変えるだけなのに、フルデプロイが必要」「ドメイン専門家がプロンプトを直接編集できない」「どのバージョンがどの結果を出したか追跡できない」——こうした課題に対して、Prompt Library Protocol
(PLP)という標準仕様が登場しました。
本記事では、PLPが提案する「Prompt Registry」(プロンプトを一元管理し、APIで配布する仕組み)という考え方と、その設計思想を解説します。

OpenClaw
は、GitHubリポジトリ
を中心に急速に注目を集めている常時稼働型のAIアシスタントです(2026-02-08時点で約15万スター)。
WhatsApp
、Telegram
、Slack
など複数のチャネルで動作できますが、個人的に「常時稼働を現実にするための設計が入ってる」と感じたのがハートビート機能です。
本記事では、OpenClawのハートビート機能を、運用上の実用性(通知の出し方、文脈の分け方、コストの抑え方)に寄せて解説します。

先日、リモートサーバのtmux
セッションでコピーしたテキストが、Mac側のクリップボードに反映されない問題に遭遇しました。
tmux側の設定は正しいはずなのに、なぜかコピーが効かない。
結論から言うと、原因は mosh
でした。
本記事では、mosh経由でOSC 52クリップボード連携が不安定になる理由と、実際に検証した結果、そして実用的な対策をまとめます。
English version

CLIツールは長年、人間が端末で操作するためのインターフェースとして設計されてきました。しかし、LLM
(大規模言語モデル)やAIエージェント
(自律的にツールを呼び出してタスクを進めるプログラム)が普及した今、CLIには新しい役割が求められています。それは「エージェントが安全・確実・反復可能に呼び出せるプロトコル/API」としての設計です。
自分も最近、エージェントにCLIを回させる機会が増えました。人間相手なら気にならない「確認プロンプトで止まる」「ログがstdoutに混ざってパースできない」「同じ操作を再実行して事故る」が、エージェント相手だと普通に起きます。
本記事では、私が提唱する「Agentic CLI Design」という設計概論をまとめます。CLIを「人間が操作するUI」から「エージェントが呼び出すプロトコル」へと再定義し、失敗前提・再実行前提・非対話前提で成立させるための7つの設計原則です。
English version

pre-commit
を使っていて「Pythonプロジェクトじゃないのに、なぜPythonが必要なんだ」と思ったことはありませんか?
prek
は、pre-commitをRustで再実装したGit hooks管理ツールです。既存の.pre-commit-config.yamlをそのまま使えて、Pythonランタイム不要、シングルバイナリで動作します。本記事では、prekの特徴と移行手順、そして「速さ」より重要な「ポータビリティ」について書きます。
English version

「定期的にバックアップを実行したい」「深夜にログをローテーションしたい」——Linuxでタスクを自動実行する方法として、cron
、anacron
、systemd timer
の3つが存在します。しかし、「どれを使えばいいのか」と迷う人は多いのではないでしょうか。
本記事では、これら3つのスケジューラの特性と適材適所を整理し、「結局どれを選ぶべきか」の判断基準を提供します。