# Agent specs The published agent definitions this deployment ships, one file each, as §7 describes: *"Adding an agent is a data change."* Nothing in `internal/runtime` knows any of these files exist. ## Where these came from They are the nine agents in `krow-demo/src/agents/`, which is where the product authored them and where they still live for the frontend's registry. These are not copies — they are the same definitions with two blocks the frontend has no field for: - **`tools:`** — the registry names this agent may call. The frontend has no tool layer, so its specs carry none; the backend has seventeen tools and an agent that names none of them can only talk. - **`sources:`** — the knowledge corpora it may retrieve from. Named `sources` rather than `knowledge` because the shipped product already uses `knowledge:` for an author's notes. See the note on `runtime.Agent.KnowledgeSources`; the collision is flagged, not settled. An unknown frontmatter key is ignored by both parsers, so these files still load in the frontend registry unchanged. ## Publishing make import-agents ORG= Idempotent: re-running updates the definitions in place rather than duplicating them. ## The rule these files exist to keep If adding an agent here ever requires editing code in `internal/runtime`, that is a missing platform capability, not a special case. §7 and I6 both say so, and the loop has no branch that asks which agent it is running.