Skip to content

zettelkasten.coordinator_agents

zettelkasten.coordinator_agents

Grounded-extraction agents contributed to the coordinator.

This module is the zettelkasten capability's contribution to the coordinator's agent roster. It defines the schema-agnostic personas of the grounded extraction pipeline -- the prose trio extractor (planner), scribe (implementer), and auditor (checker), the synthesizer (implementer) that runs last, and the data-grounded pair data-extractor (planner) / data-scribe (implementer) that ground a claim in a re-computable statistic over a stored dataset rather than a verbatim quote (the same auditor audits both channels) -- and the :func:capability entry point the coordinator discovers (see coordinator.contrib and the angelo.coordinator.capabilities entry-point group in pyproject.toml).

The trio is conditional: :func:capability reports enabled=False unless the project opted into the bundle via the ANGELO_ZETTELKASTEN env flag (set on the coordinator's mcp.json entry by angelo init --with-zettelkasten). When disabled the coordinator surfaces none of these agents, the schema task attribute errors, and create_extraction_graph is not registered.

The personas are schema-agnostic: each reads SCHEMA / SOURCE / HUB / SLICE from its task context (the coordinator flows the expanded schema object in, the same way it flows model). They are overridable: a project's agents.yaml redefining extractor shadows the built-in.

capability

capability() -> dict

Coordinator capability contribution for the grounded-extraction bundle.

Returns the contribution dict the coordinator's contrib discovery expects. enabled is gated on the ANGELO_ZETTELKASTEN env flag so the bundle is inert in a coordinator-only project.

Source code in zettelkasten/coordinator_agents.py
def capability() -> dict:
    """Coordinator capability contribution for the grounded-extraction bundle.

    Returns the contribution dict the coordinator's ``contrib`` discovery expects.
    ``enabled`` is gated on the ``ANGELO_ZETTELKASTEN`` env flag so the bundle is
    inert in a coordinator-only project.
    """
    return {
        "name": "zettelkasten",
        "enabled": _env_flag("ANGELO_ZETTELKASTEN"),
        "agents": AGENTS,
        "schemas": {
            "expand": extraction_schemas.expand_schema,
            "list": extraction_schemas.list_schemas,
        },
    }