Skip to the content.

Foragent

An A2A-native browser agent for .NET. Other agents delegate browser work to Foragent rather than reasoning about DOM selectors, login flows, or session management themselves.

Foragent is built on the RockBot framework and uses Microsoft.Playwright for browser automation. It speaks the Agent2Agent (A2A) protocol over RabbitMQ and HTTP.

⚠️ Early development. APIs change without notice. External contributions are not yet open — see Contributing below.


Why Foragent exists

Agents that need to “just use a website” — read a page, fill a form, post an update — usually end up re-inventing a brittle mix of HTTP scraping, selector heuristics, and credential handling. Foragent centralizes that work behind a small A2A surface so the rest of your agent fleet can stay focused on their own jobs.

The design principles are laid out in the specification:


Usage scenarios

Foragent is aimed at other agents, not end users. Typical callers:

The current advertised capabilities are:

Capability What it does
browser-task LLM-planned, multi-step browser work against an allowlist of hosts
learn-form-schema Scan a form and persist a typed schema for later reuse
execute-form-batch Submit a batch of rows against a learned (or inline) form schema

See capabilities for the full contract, inputs, and examples.


Getting started

The fastest path is the end-to-end dev harness at the repo root:

git clone https://github.com/MarimerLLC/foragent.git
cd foragent
docker compose up --build

That brings up RabbitMQ, Foragent (HTTP A2A on http://localhost:5210), and a RockBot agent seeded to know about Foragent as an A2A peer. The agent-card is published at http://localhost:5210/.well-known/agent-card.json; the authenticated JSON-RPC endpoint is POST http://localhost:5210/ with header X-Api-Key: rockbot-calls-foragent. A curl-based smoke test is at the top of docker-compose.yml.

For local builds without Docker:

dotnet restore
dotnet build --configuration Release
dotnet test  --configuration Release

Target framework is .NET 10. Foragent requires an LLM — configure ForagentLlm:Endpoint, ModelId, and ApiKey (see architecture for the full configuration surface).


Resources

In this repo:

On GitHub:


Contributing

Foragent is in early development and is not yet accepting external code contributions — see CONTRIBUTING.md.

In the meantime, the most useful things outside contributors can do are:


License

MIT — see LICENSE.