Skip to content

Documentation

The FastAgent documentation map: quickstart, configuration, embedding, channels, deployment, and reference for serving agent directories as live services.

FastAgent is the serving layer for local agent directories. It takes a directory out of the terminal and serves it as a live service: embedded in your app, connected to Telegram or Slack, handling GitHub/webhook events, exposed as an API endpoint, or running behind your own channel. persona.md is recommended for identity (an AGENTS.md is project context the agent reads), but the directory is the unit.

  1. Read the Overview to understand the shape.
  2. Run the Quickstart to create and serve a workspace.
  3. Use Configuration when choosing models, auth, ports, sessions, tools, and channels.
  4. Pick the integration path you need: Embedding or Channels.
  5. Ship the directory with Deploy when the agent should run on a host.

Using a coding agent? Give it the repository’s ai-start.md for an AI-guided setup path.

Guides

Goal Read
Understand what FastAgent is Overview
Understand the design choices and non-goals Design principles
Scaffold, run locally, add a tool, and start Quickstart
Configure model, auth, ports, sessions, tools, and channels Configuration
Embed an agent in an existing app or route Embedding
Connect GitHub, Telegram, Slack, or another channel Channels
Run the agent on a cron, or let it wake itself Quickstart §8, API reference
Ship the agent to a host Deploy

Channel guides

Goal Read
Use GitHub webhooks GitHub channel
Use a Telegram bot Telegram channel
Use a Slack app Slack channel
Use Feishu or its Lark compatibility profile Feishu channel (Lark compatibility)
Build a custom channel adapter Channel development

Reference

Goal Read
Use the CLI CLI reference
Look up TypeScript exports API reference
Understand the event stream contract Agent Handler SPEC
Fix common setup/runtime issues Troubleshooting

Core concepts

  • The directory is the agent. Runtime behavior comes from the workspace: optional persona.md (identity), skills/, tools/, channels/, schedules/, AGENTS.md (project context), and markdown context.
  • invoke is the contract. Every channel or host drives an Agent through invoke(scope, prompt) => AsyncIterable<AgentEvent>.
  • Channels are adapters. A channel receives external events (HTTP, GitHub, Telegram, Slack, …), maps them to one or more agent turns, and returns host-specific responses.
  • Hosts own runtime state. Sessions, credentials, execution environment, and locking are runtime concerns, not part of the agent definition.
  • Small core, typed edges. FastAgent uses a small callable contract, app-level composition, and validation at the boundaries.

Maintainer notes

These are not required to use FastAgent, but they explain public architecture decisions and tradeoffs:

Document Purpose
Design notes What belongs in public design docs
Core design pi reference implementation, assembly ladder, sessions, auth, and deployment model
Session control plane Serving extension beside invoke: observation plane shipped; control plane (dispatch) proposed

For contribution workflow, see ../CONTRIBUTING.md.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close