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 分