Agendum

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

AI agent memory: task tracking, scoped work packages, decisions, and cross-session continuity

概覽

AI 產生的概覽

為 AI 程式開發代理提供持久專案記憶:任務看板、限定範圍的工作包、決策紀錄與跨工作階段的延續性。

可以做什麼
Agendum 是一個本機 MCP 伺服器,為程式開發代理保存專案狀態。它提供 14 個 pm_* 工具:pm_ingest 將 Markdown 計畫匯入為帶相依關係的看板項目,pm_next 回傳下一個限定範圍的工作包與補充脈絡,pm_done 記錄決策、模式與經驗並自動解除後續任務的封鎖。pm_memory、pm_learn、pm_search、pm_consolidate 與 pm_supersede 管理可搜尋的知識,pm_status 顯示儀表板。狀態以人類可讀的 Markdown 與 YAML 保存在 ~/.agendum/ 或專案內的 .agendum/ 目錄。
適用情境
當代理需要跨多個工作階段處理多步驟程式開發專案,且要記住決策、遵守任務範圍、依相依順序推進時適用。它適合以計畫驅動、把 Markdown 計畫拆成有界任務的工作流程。對一次性的單一工作階段請求幫助不大。
執行需求
需要本機 Python 執行環境;可透過 pip 安裝或以 uvx 執行。未宣告任何帳號、API 金鑰或環境變數。選用的向量搜尋需要 agendum[vectors] 附加元件。它以 stdio 程序在使用者機器上執行,僅支援桌面端。
安裝前請注意
它會把專案狀態、記憶與經驗寫入磁碟上的 ~/.agendum/ 或專案內的 .agendum/ 目錄,且 pm_done 可自動讀取 git diff 與 git log。提交這些檔案前請檢查內容,因為它們可能包含決策或程式碼細節。不要求任何憑證。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

agendum

[PyPI version] [Downloads] [Python 3.13+] [Tests] [License: MIT]

Project memory and scoping engine for AI coding agents.

AI coding agents are stateless — they forget between sessions, lose decisions, and have no way to scope complex work. agendum is an MCP server that gives any agent (Claude Code, Cursor, Windsurf, Cline, and others) persistent project state, bounded work packages, and cross-session continuity.

Without agendumWith agendum
Agent forgets everything between sessionsPicks up exactly where it left off
No scope — agent modifies random filesBounded work packages with file lists, acceptance criteria, constraints
Decisions lost — same mistakes repeatedDecisions and patterns persist in searchable memory
No task ordering — agent picks randomlyDependency graph with auto-unblocking and priority scoring
Learning locked inside one projectCross-project learnings carry patterns forward

Quick Start

bash
pip install agendum                                    # or: uvx agendumclaude mcp add agendum -- uvx agendum --home serve     # add to Claude Code# Done. pm_* tools are now available in your agent.

Works with any MCP client — see setup for Cursor, Windsurf, VS Code, and others.

How It Works

mermaid
flowchart LR    A["PLAN\nwrite plan file"] --> B["pm_ingest\nboard items + deps"]    B --> C["pm_next\nwork package + context"]    C --> D["EXECUTE\nagent implements"]    D --> E["pm_done\ndecisions + patterns"]    E -->|next task| C    E -->|new session| F["pm_status\nresume context"]    F --> C

Each pm_done records decisions and patterns that enrich future pm_next calls — context compounds across sessions.

Example session:

You: I have a plan file for the API rewrite. Ingest it.
Agent:  → pm_ingest(project="api-rewrite", plan_file="plan.md")
  Ingested 4 board items from plan:    item-001: Schema design [high]    item-002: Resolver layer (depends on item-001)    item-003: Auth middleware (depends on item-001)    item-004: Integration tests (depends on item-002, item-003)
You: What should I work on?
Agent:  → pm_next(project="api-rewrite")
  Work package for item-001 "Schema design":    Context: project rules, memory from last session    Scope: Define GraphQL schema types    Acceptance criteria: Types for User, Product, Order
You: Done with the schema. Here's what I decided...
Agent:  → pm_done(project="api-rewrite", item_id="item-001",      decisions="Using code-first with Strawberry",      patterns="N+1 queries need DataLoader",      verified=True)
  Marked item-001 as done. Unblocked: item-002, item-003  > Next: pm_next("api-rewrite") to continue with newly unblocked tasks

14 MCP Tools

Setup & Orientation

ToolPurpose
pm_initInitialize board directory (optional — auto-initializes on first use)
pm_projectCreate, list, or get projects
pm_statusDashboard — item counts, recent progress, memory health, suggested next task

Planning & Backlog

ToolPurpose
pm_addAdd an item with type, priority, tags, dependencies, acceptance criteria
pm_boardView and filter the project board
pm_ingestImport a Markdown plan file into bounded board items with dependencies

Execution Loop

ToolPurpose
pm_nextGet the next scoped work package with complexity signal and enriched context
pm_doneComplete an item — record decisions, patterns, learnings; auto-extract from git; auto-unblock dependents
pm_blockReport a task as blocked with reason

Knowledge & Search

ToolPurpose
pm_memoryRead, write, append, or search project memory (decisions, patterns, project knowledge)
pm_learnRecord global or project-scoped learnings with tags and topic entities
pm_searchHybrid search across all knowledge — memory, learnings, completed items
pm_consolidateClean memory corruption, deduplicate learnings, detect contradictions
pm_supersedeSoft-invalidate a learning — excluded from all future searches

Hybrid Search

pm_search combines three signals to find relevant knowledge across memory, learnings, and completed board items:

  • FTS5 with Porter stemming — auth matches authentication, config matches configuration. Always on, zero config.
  • Vector search (optional) — Install agendum[vectors] to add semantic similarity via fastembed + sqlite-vec. Activates automatically alongside FTS5.
  • Entity graph — Topics and tags form a knowledge graph. Entries sharing 2+ entities are linked automatically. Graph expansion surfaces related knowledge that keyword search misses.

All three signals are fused via Reciprocal Rank Fusion (RRF), then reranked by recency and access frequency. The index rebuilds from Markdown files — no data loss if it gets corrupted.

Key Capabilities

  • Adaptive context budget — enrichment scales with task complexity: 4K chars for trivial tasks, up to 10K for large ones
  • Verification gate — pm_done(verified=True) distinguishes tested from untested completions
  • Git auto-extract — pm_done reads git diff and git log automatically when no files are specified
  • Pluggable enrichment pipeline — four context sources injected into every work package: project rules (CLAUDE.md/AGENTS.md), memory, dependency context, learnings
  • Dependency resolution — topological ordering with cycle detection; dependents unblock automatically when upstream tasks complete
  • Memory health — pm_status warns about corrupted entries; pm_consolidate strips XML fragments, deduplicates, and flags contradictions
  • Zero config — auto-initializes on first tool call, derives board name from git remote
  • Git-native storage — all state is human-readable Markdown + YAML in .agendum/, diffable and committable

Installation

All MCP clients except VS Code use the same config. Add to the appropriate file:

json
{  "mcpServers": {    "agendum": {      "command": "uvx",      "args": ["agendum", "--home", "serve"]    }  }}
ClientConfig location
Claude CodeRun: claude mcp add agendum -- uvx agendum --home serve
Cursor.cursor/mcp.json in project root
Windsurf~/.codeium/windsurf/mcp_config.json
ClineSettings › MCP Servers › Edit
Roo CodeMCP settings file
Claude Desktopclaude_desktop_config.json

VS Code (GitHub Copilot): Uses "servers" instead of "mcpServers". Add to .vscode/mcp.json:

json
{  "servers": {    "agendum": {      "command": "uvx",      "args": ["agendum", "--home", "serve"]    }  }}

CLI (standalone)

bash
pip install agendumagendum project create my-app   # Create a projectagendum status                  # Dashboard overviewagendum next my-app             # Suggest next task

Storage Layout

All state lives in ~/.agendum/ (or .agendum/ in your project if you prefer local storage):

~/.agendum/├── .cache/│   └── search.db               # FTS5 + vector search index (auto-rebuilt)├── config.yaml├── projects/│   └── webapp/│       ├── project.yaml         # Project metadata│       ├── board/│       │   ├── item-001.md      # Markdown + YAML frontmatter│       │   └── item-002.md│       └── learnings/           # Project-scoped learnings│           └── learning-001.md├── learnings/                   # Cross-project learnings│   └── learning-001.md└── memory/    ├── decisions.md             # Key decisions + rationale    └── patterns.md              # Discovered conventions

Architecture

src/agendum/├── server.py              # MCP server wiring (FastMCP)├── tools.py               # 14 MCP tools├── models.py              # Pydantic models (BoardItem, WorkPackage, SearchResult)├── task_graph.py          # Dependency resolution + topological levels├── config.py              # Shared configuration├── env_context.py         # Git diff/log auto-extraction├── cli.py                 # CLI interface├── enrichment/│   ├── pipeline.py        # ContextEnricher, budget allocation│   └── sources.py         # ProjectRules, Memory, Dependency, Learnings sources└── store/    ├── board_store.py     # BoardItem CRUD    ├── board_format.py    # Markdown <-> BoardItem serialization    ├── project_store.py   # Project metadata    ├── memory_store.py    # Scoped memory storage    ├── learnings_store.py # Global and project-scoped learnings    ├── search_index.py    # FTS5 + vector + entity graph + RRF    ├── embedding.py       # Lazy fastembed wrapper (optional)    └── locking.py         # get_lock() + atomic_write()

Development

bash
git clone https://github.com/sralli/agendum.gitcd agendumuv syncuv run pytest tests/ -v     # all testsuv run ruff check .          # lintuv run ruff format --check . # format check

License

MIT

來源:README.md,提交 369519a

工具

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

版本歷史

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

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

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

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

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

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