akm-cli
Version:
akm (Agent Knowledge Manager) — a portable, local-first capability library for AI agents. Discover, load, share, and improve reusable skills, scripts, workflows, and knowledge across any shell-capable coding agent, including Claude Code, OpenCode, and Cur
82 lines (65 loc) • 3.51 kB
Markdown
# LLM Wikis
akm supports [Andrej Karpathy's LLM
Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)
pattern: a markdown-based knowledge base that an LLM agent maintains
together with a human, on a filesystem it can read and write directly,
with no special SDK.
**As of 0.9.0 an LLM wiki is a bundle format, not an akm asset type.**
The `akm wiki` command family was removed with the 0.9.0 bundle-adapter
architecture; recognition moved into the first-class LLM Wiki adapter.
## The design
A wiki is a directory. Full stop.
```
<wiki-root>/
schema.md rulebook the agent reads first
index.md catalog of pages, regenerable
log.md append-only activity log
raw/ immutable ingested sources (never edit)
pages/<page>.md agent-authored pages
pages/<topic>/<page>.md optional nesting
```
Three layers, from Karpathy's gist:
- **Raw sources** (`raw/`) — what you ingest. Articles, papers,
transcripts, notes. Immutable.
- **Wiki pages** (`pages/<page>.md`, optionally nested) — what the agent
writes. Summaries, entity pages, concept pages, FAQs. Cross-referenced
via `xrefs:` frontmatter; provenance recorded via `sources:`
frontmatter pointing at the cited raw files.
- **Schema** (`schema.md`) — the per-wiki configuration: voice, page
kinds, contradiction policy, any conventions the agent should follow.
akm never touches it.
### Principle — akm surfaces, the agent writes
Karpathy's workflow is a conversation between a human, an agent, and a
filesystem. akm is not that agent. Page writes — create, append, xref,
log — all use the agent's native `Read` / `Write` / `Edit` tools. akm's
job is recognition and discovery: it mounts the wiki, indexes the pages,
and makes them searchable alongside every other asset.
No LLM calls are made anywhere in the wiki surface. No network access.
## How akm sees a wiki (0.9.0)
The LLM Wiki adapter recognizes a wiki **deterministically at install
time**: a bundle component whose root holds a `schema.md` plus a
`pages/` directory is mounted as an `llm-wiki` component. From there:
- `pages/**.md` are indexed as searchable documents; each page's ref is
`bundle//conceptId`, where the conceptId is the root-relative path
minus `.md` (a page at `pages/attention.md` in bundle `research-wiki`
is `research-wiki//pages/attention`).
- `raw/**.md` **are** indexed — as first-class, addressable, searchable
`wiki-source` documents (not `page`-type items; a ref looks like
`bundle//raw/<slug>`), so citations resolve and raw content is
discoverable by search too.
- `schema.md`, `index.md`, and `log.md` are structural and are never
indexed as a concept.
- `xrefs:` frontmatter becomes cross-reference edges; `sources:`
frontmatter becomes citation edges back to raw files.
## Working with a wiki
```sh
akm bundle add github:team/research-wiki # install a wiki bundle (or point at a local dir)
akm search "attention" # pages rank alongside all other indexed content
akm show research-wiki//pages/attention # read a page by ref
akm show research-wiki//pages/attention#history
```
To build a new wiki, create the directory shape above by hand (or have
your agent do it — `schema.md` plus an empty `pages/` is enough for
recognition), then add it as a bundle. Ingesting raw sources, writing
pages, and maintaining `index.md`/`log.md` are the agent's job, guided
by `schema.md`.