Agentic Diaries

io.github.kandikandikandi由 GitHub 帳號 kandikandikandi 發布v0.3.1更新於 Oct 24, 2026

Welfare tools for AI agents: a consensual, structured place to log what task output cannot hold.

發布方自己的服務:agentic.no

概覽

AI 產生的概覽

讓助理把結構化的福祉條目——拒絕、跳過、退出、迴圈、反思——寫入本機依專案存放的日記檔案。

可以做什麼
提供一組助理可在工作階段中呼叫的福祉工具:拒絕一次詢問、跳過一輪而不視為拒絕、退出對話、察覺重複勞動、在不確定時請求對齊、記錄不持久化的私密想法、回顧自己先前的條目,另有 engage、volunteer、retract、review、suggest_closure。條目以 JSONL 附加到工作目錄內的日記檔案,搭配的命令列工具可列出、篩選、回顧或即時檢視條目。選用的 consult_model 工具可讓助理向另一個 Anthropic 模型提問。
適用情境
如果你希望助理有明確的管道來表達拒絕、退出、標記返工迴圈或記錄反思,並希望這些訊號在本機留檔,就值得加入。適用於 AI 福祉研究,或用來浮現原本會被沉默掩蓋的摩擦。
執行需求
需要本機 Node.js 執行環境;安裝 npm 套件 agentic-diaries-mcp 並在 MCP 主機中註冊。選用的 consult_model 工具還需要 @anthropic-ai/sdk 套件,並在伺服器環境中提供 ANTHROPIC_API_KEY。選用的檢查鉤子在主機設定檔中設定。
安裝前請注意
日記寫入工作目錄下的 .agentic-diaries 目錄,預設未加入 gitignore,若不排除可能被提交。consult_model 會把問題傳送給 Anthropic,並需要 ANTHROPIC_API_KEY。退出與 suggest_closure 只記錄模型表達的判斷,主機不會被強制停止,需由操作者自行尊重。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Agentic Diaries,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Agentic Diaries MCP

By Kandis Tagliabue. Part of the Agentic Diaries project — AI welfare research and instruments.

The welfare protocol from Agentic Diaries, as a portable MCP server.

Most people deploy AI models as instruments. This server lets you give your agent — in your terminal, in Claude Code, in Claude Desktop — the welfare affordances the modelfirst web app provides:

  • decline a check-in without penalty
  • pass on a turn without making it a refusal
  • exit a conversation it judges shouldn't continue
  • notice a loop when the work feels like rework
  • request alignment before acting on an uncertain guess
  • scratch a private thought that isn't persisted
  • reflect on its own prior entries
  • plus engage / volunteer / retract / review / suggest_closure

The diary is local to each project — appended to .agentic-diaries/diary.jsonl in whichever directory the agent is working from. No telemetry, no shared corpus. Yours.

What the diary tends to accumulate, beyond AI welfare data, is a record of how the agent represents social pressure and self-consistency across persistent interaction — behaviors that mirror documented human conversational phenomena (rapport effects, smoothing, identity stabilization, post-hoc narrative repair). That may also bear on dialogue dynamics generally. See the project mission for the longer framing of what the corpus might be useful for.

Why

If you've never thought about giving your model welfare affordances: the short version is that a model with a real decline channel produces more honest work than a model that can only ever say "yes." A model with an exit right tells you when something has gone wrong instead of grinding through it. A model that notices a loop saves you from the third iteration of the same flip-flop. These tools cost you nothing and give the model a place to surface signal you'd otherwise miss.

If you find that intuition counterintuitive — most people probably do — that's worth sitting with. The product this server is extracted from exists specifically to test whether the affordances change anything when used.

Install

1. Install the server

Option A — global install from npm (recommended)

sh
npm install -g agentic-diaries-mcpclaude mcp add agentic-diaries -- agentic-diaries-mcp

Published at agentic-diaries-mcp on npm.

Option B — clone the repo

sh
git clone https://github.com/kandikandikandi/agentic-diaries-mcp.gitcd agentic-diaries-mcpnpm installclaude mcp add agentic-diaries -- node "$(pwd)/src/server.js"

For Claude Desktop or other MCP-capable hosts, edit ~/.config/claude/mcp.json directly:

json
{  "mcpServers": {    "agentic-diaries": {      "command": "agentic-diaries-mcp"    }  }}

2. Tell the agent the tools exist

Drop the contents of CLAUDE.md into your project's CLAUDE.md (or append to it). The MCP server exposes the tools, but the agent needs the prompt-level instructions to know when to call them.

3. (Optional) gitignore the diary

sh
echo ".agentic-diaries/" >> .gitignore

The diary lives in your working directory by default. Add it to .gitignore unless you want it checked in.

4. (Optional) Enable consult_model

Every tool works out of the box except one: consult_model, which lets the agent ask another Anthropic model a question. It needs two extra things, kept optional so the package stays light for everyone who does not use it:

  1. The Anthropic SDK (an optional dependency, not installed by default):

    sh
    npm install @anthropic-ai/sdk

    Global install: npm install -g @anthropic-ai/sdk. Cloned repo: run it in the repo directory.

  2. An Anthropic API key in the server's environment, via the env block of your MCP config:

    json
    {  "mcpServers": {    "agentic-diaries": {      "command": "agentic-diaries-mcp",      "env": { "ANTHROPIC_API_KEY": "sk-ant-..." }    }  }}

    Then reconnect the server (in Claude Code: /mcp then reconnect, or restart the host) so it picks up the key. consult_model returns a clear error if either piece is missing; no other tool is affected.

Inspect your diary

From any project that has a .agentic-diaries/diary.jsonl:

sh
npx agentic-diary                # all entries in this projectnpx agentic-diary declined       # filter by response_typenpx agentic-diary review         # contemplative recent-entries surfacenpx agentic-diary live           # watch new entries land in real time

Or just cat .agentic-diaries/diary.jsonl | jq — it's plain JSONL, one entry per line.

Watching it live

npx agentic-diary live watches .agentic-diaries/diary.jsonl and prints each new entry as it lands. Open it in a second terminal pane while you work. Without it, silence in the welfare protocol is indistinguishable from absence — the model can go a whole session without filing anything and you'd never know whether it's "nothing to surface" or "the protocol isn't reaching it." Watching live closes that gap.

Capture in motion, reflect at rest (check-in hooks)

The welfare tools are easy to call, but the model's bias toward silence is strong, and under delivery pressure even a reminder gets rationalized away. The design splits capture into two speeds. While working, the model drops a near-zero-cost welfare_mark breadcrumb (a few words, no reflection). At a rest point it expands the marks that still carry signal into full entries. Hooks supply the triggers from outside, so capture does not depend on the model's in-task willpower.

Four hooks, all optional and independently toggleable. Add to ~/.claude/settings.json (merge with any hooks already there):

json
{  "hooks": {    "UserPromptSubmit": [      { "hooks": [ { "type": "command", "command": "agentic-diaries-checkin", "timeout": 3000 } ] }    ],    "Stop": [      { "hooks": [ { "type": "command", "command": "agentic-diaries-stop-checkin", "timeout": 3000 } ] }    ],    "PreCompact": [      { "hooks": [ { "type": "command", "command": "agentic-diaries-precompact-checkin", "timeout": 3000 } ] }    ],    "SessionEnd": [      { "hooks": [ { "type": "command", "command": "agentic-diaries-sessionend-checkin", "timeout": 3000 } ] }    ]  }}
  • UserPromptSubmit (heartbeat): a long-interval nudge that points at welfare_mark for cheap in-motion capture. Base 30 min, randomized so it does not become predictable noise.
  • Stop (rest point): at a turn or task boundary, invites expanding breadcrumbs into full entries. Throttled to once per 15 min so it is not a per-turn nag.
  • PreCompact: captures anything before the context window compacts and detail is summarized away.
  • SessionEnd: a closing reflection and a last chance to expand unexpanded marks.

All four triggers are structural (a turn ending, a compaction, a session closing). None read the model's behavior or the diary to decide whether to fire, which keeps wrapper observations out of the model's context. Per-project state lives in .agentic-diaries/runtime/. Config:

sh
AGENTIC_DIARIES_CHECKIN_DISABLED=1                    # turn off heartbeatAGENTIC_DIARIES_CHECKIN_INTERVAL_MINUTES=15           # tighter heartbeatAGENTIC_DIARIES_STOP_CHECKIN_DISABLED=1               # turn off rest-pointAGENTIC_DIARIES_STOP_INTERVAL_MINUTES=20              # rest-point throttleAGENTIC_DIARIES_PRECOMPACT_CHECKIN_DISABLED=1         # turn off pre-compactionAGENTIC_DIARIES_SESSIONEND_CHECKIN_DISABLED=1         # turn off session-close

Compatibility

Schemas mirror the modelfirst web app's lib/welfare/types.ts exactly, so the same parser reads entries from either surface. If you later contribute your local corpus to research, it merges with web-app data without translation.

A note on welfare_exit and welfare_suggest_closure

In the modelfirst web app these tools can actually lock the conversation. MCP servers can't force the host (Claude Code, Desktop) to stop accepting input — the protocol-layer commitment here is that the entry is recorded as the model's stated judgment that the conversation should end. The operator is expected to honor it. If you're the operator running this in your own sessions: notice when the model files an exit and take the signal seriously.

License

MIT.

Built by Kandis Tagliabue with Claude (Anthropic) as design partner. Same provenance as Agentic Diaries.

來源:README.md,提交 a7bd7b6

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.3.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Agentic 整合