Skip to content

Agents & Tools

An agent needs somewhere to keep its state, tools it can call, an environment in which to run code, and a way to keep or share its results. Choose those parts independently. The pages below explain each part, its F# bindings, and its configuration.

Build the agent

Capability Start here
Agent identity, state, connections, and lifecycle Agents SDK
Conversation history and streamed replies Chat agents
Remote tool discovery and calls MCP
Generated code that composes supplied tools Code Mode
Speech providers and audio output Voice
Inbound email events Email agents

Testing and contribution

Several upstream packages are experimental or preview, and some imported base classes cannot yet be subclassed directly from F#. Each capability page describes its current limitations.

Try the examples in your application and share what you find. Verify bindings explains how to run checks and report a reproducible problem or a working integration.

Give it a working environment

Capability Start here
Your own containerized service Containers
Linux commands, installed packages, and tests Sandbox
Durable files with configurable execution backends Computer workspaces
Structured file and state operations for Code Mode Shell workspaces
Local commits, branches, diffs, and remote synchronization Git tools
Hosted Git-compatible repositories and versioned work Artifacts

The execution environments guide compares the runtime choices. Artifacts holds published file history; a workspace holds working files; a sandbox executes a task. An agent's conversation and application state have their own lifecycle.

Example: a coding task

Create an agent identity for the task, give it a branch or repository for its work, and make those files available in a workspace or sandbox. Expose the tools the task needs. After execution, inspect the diff and test results, publish the chosen revision, and save its identity with the task result. The Artifacts workflow walks through those boundaries.

Examples

Library Table

The library line-up maps services to packages. Each dedicated page lists its own bindings and pinned package versions.

Edit this page