Skip to content

docs: add a library-first documentation set for the v1 interface - #159

Merged
David Koleczek (DavidKoleczek) merged 1 commit into
mainfrom
docs/library-interface-v1
Aug 28, 2026
Merged

docs: add a library-first documentation set for the v1 interface#159
David Koleczek (DavidKoleczek) merged 1 commit into
mainfrom
docs/library-interface-v1

Conversation

@DavidKoleczek

Copy link
Copy Markdown
Collaborator

Adds docs_v1/, documenting amplifier-agent as a library that hosts embed, with the CLI, HTTP face, and TypeScript SDK as surfaces built on it rather than as peers.

docs/ is unchanged.

The organizing rule

The library is the product. Every surface adds transport and presentation and no capability, in both directions: a surface that quietly resolves approvals, or drops an event it cannot render, is a weaker product rather than a thinner path to the same one.

CLI commands are documented next to the library calls that produce them, which makes the rule checkable. A command with no library equivalent is visible as a defect instead of passing as a convenience.

Structure

00-index                what it is, and how it differs from Amplifier App CLI
01-install              library first, then the CLI and SDK
02-quickstart           config in, agent out, one reply
03-configuration        every AgentConfig field
04-context-intelligence session recording and forwarding
05-interface            the complete public surface, one page per area
06-providers            per-provider credentials and models
07-surfaces             CLI, HTTP, TypeScript
08-development          end-to-end tests and evaluations

Interface decisions captured here

No capability negotiation. It presupposes divergence the wrapper rule forbids, and under exact protocol-version equality the two sides cannot differ. Forward-compatible parsing replaces it: wrappers ignore unknown fields and forward unknown event types unchanged. That is what lets the agent gain an event without every wrapper needing a release first.

Turn ids are outbound only. The agent assigns them. cancel() takes no argument, because a session runs one turn at a time and there is never ambiguity about which turn it applies to.

Version information is module-level, readable without a constructed agent. The reason to check a version is usually that create_agent is failing.

Session storage keeps the context-intelligence/ layout, so existing tooling reads a session directory without adaptation. The two record files carry distinct format identities so each reader refuses the file that is not its own.

Reviewing

05-interface/index.md lists every public name in one place and is the fastest way to see the whole surface. 00-index.md carries the boundary: what is deliberately excluded and why.

Per-provider detail pages under 06-providers/ are scaffolded and empty.

Adds docs_v1/, documenting amplifier-agent as a library that hosts embed,
with the CLI, HTTP face, and TypeScript SDK as surfaces built on it rather
than as peers.

The organizing rule is that the library is the product. Every surface adds
transport and presentation and no capability, in both directions: a surface
that quietly resolves approvals or drops an event it cannot render is a
weaker product, not a thinner path to the same one. CLI commands are
therefore documented next to the library calls that produce them, so a
command with no library equivalent is visible as a defect.

Structure:

  00-index                what it is, and how it differs from Amplifier App CLI
  01-install              library first, then the CLI and SDK
  02-quickstart           config in, agent out, one reply
  03-configuration        every AgentConfig field
  04-context-intelligence session recording and forwarding
  05-interface            the complete public surface, one page per area
  06-providers            per-provider credentials and models
  07-surfaces             CLI, HTTP, TypeScript
  08-development          end-to-end tests and evaluations

Notable interface decisions captured here:

- No capability negotiation. It presupposes divergence the wrapper rule
  forbids, and under exact protocol-version equality the two sides cannot
  differ. Forward-compatible parsing replaces it: wrappers ignore unknown
  fields and forward unknown event types unchanged.
- Turn ids are outbound only. The agent assigns them; cancel() takes no
  argument because a session runs one turn at a time.
- Version information is module-level, so it is readable without a
  constructed agent. The reason to check a version is usually that
  create_agent is failing.
- Session storage keeps the context-intelligence/ layout, so existing
  tooling reads a session directory without adaptation. The two record
  files carry distinct format identities so each reader refuses the file
  that is not its own.

docs/ is unchanged. Per-provider detail pages are scaffolded and empty.

🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier)

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@DavidKoleczek
David Koleczek (DavidKoleczek) merged commit 66d5896 into main Aug 28, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant