{"slug": "agent-net-open-sources-webagent-a-go-harness-that-turns-any-website-into-a-ai", "title": "Agent-net Open Sources Webagent: A Go Harness That Turns Any Website into a Guarded AI Agent", "summary": "Agent-net has open sourced Webagent, an Apache 2.0 Go harness that turns a website into a public-facing AI agent configured through a declarative JSON spec with one provider chosen for each of 9 pluggable slots. The release is labeled v0, and the browser action provider, OAuth-gated MCP, OTel export, and the AgentNet identity and billing layer are listed as not yet built, though live Slack, WhatsApp, and HTTP agents backed by MCP tools run today. Webagent wraps every tool in an action.Guard so the chosen guardrail runs before execution, a design the project's DESIGN.md ties to a cited 85% versus 50% task-success gap on the same models.", "body_md": "[Agent-net](https://agentnet.market/), the team building an agent-to-agent marketplace where AI agents discover, trust, and pay each other, has released [Webagent](https://github.com/TheAgent-net/webagent), an open source harness for standing up public-facing business agents. So, basically you give it your website, get an agent, and let it talk to other agents. Instead of writing orchestration code, a business fills in a declarative JSON spec, picks 1 provider for each of 9 pluggable slots, and runs `webagent serve`.\n\n**Is it deployable?** Yes, with caveats. The repo ships under Apache 2.0, builds green, and runs live Slack, WhatsApp, and HTTP agents backed by MCP tools today. It is still labeled v0, and the browser action provider, OAuth-gated MCP, OTel export, and the AgentNet identity and billing layer are listed as not yet built.\n\n## **Slots, providers, picks**\n\nWebagent is written in Go. An agent is 1 Brain (an LLM plus instruction) over a set of slots defined in [`core/`](https://github.com/TheAgent-net/webagent/blob/main/core/core.go). Each slot is a Service Provider Interface with a registry of providers in [`spi/`](https://github.com/TheAgent-net/webagent/blob/main/spi/spi.go) and a designated default:\n\n| Slot | Built-in providers | Default | \n|---|---|---|\n| Retrieval | live, keyword, hybrid | live | \n| Memory | session | session | \n| Guardrail | basic, off | basic | \n| Channel | a2a, web, slack, whatsapp (telegram stub) | a2a | \n| Secrets | env, file, static | env | \n| Presenter | text, terminal (QR), web | text | \n| Model | echo, openrouter, gateway | echo | \n| Action | none, demo, mcp | none | \n| Observability | none, log, memory | none | \n\nThe design serves 3 audiences on 1 contract: businesses that configure by picking from the menu, businesses that extend by registering a custom provider, and partner companies that ship adapters. Nobody forks the core. Every provider must pass its slot’s [conformance suite](https://github.com/TheAgent-net/webagent/blob/main/conformance/conformance.go) to be certified.\n\n## **Safety is code-enforced, not prompt-enforced**\n\nThe most important architectural decision is `action.Guard`. Every tool the agent holds, whether it comes from the action provider or is injected by the host, is wrapped so the chosen guardrail runs on the action before it executes. The model cannot bypass it. The [DESIGN.md](https://github.com/TheAgent-net/webagent/blob/main/DESIGN.md) frames the whole project around a research finding that architecture, not model capability, decides agent success, citing [arXiv 2511.19477](https://arxiv.org/abs/2511.19477) and an 85% versus 50% task-success gap on the same models.\n\n## **What runs today**\n\nThe default `echo` brain needs no credentials, so `webagent validate` and `webagent serve` work out of the box on the 2 example specs, [`zomato.json`](https://github.com/TheAgent-net/webagent/blob/main/examples/zomato.json) and [`bakery.json`](https://github.com/TheAgent-net/webagent/blob/main/examples/bakery.json). To drive a real model, `webagent keys set openrouter` stores a key in the OS config directory with mode 0600. Keys are never written into a spec, and an exported environment variable always wins. Both `openrouter` and `gateway` are OpenAI-compatible clients with a tool-calling loop.\n\nA business with an existing MCP server becomes an acting agent with 1 spec block. The `mcp` action provider connects over Streamable HTTP (JSON and SSE) with bearer or API-key auth, performs the handshake at build time, and hands each tool to the agent behind the guard, so `validate` reports the real tool count.\n\nThe Slack and WhatsApp channel adapters verify every inbound webhook signature, acknowledge immediately, reply through the platform API, ignore their own messages, and de-duplicate retried deliveries. Slack points at `/slack/events`; Meta’s callback goes to `/whatsapp/webhook`.\n\nSecrets follow a naming rule: any config key ending in `Secret` is a reference resolved through the selected vault at build time, so specs are safe to commit. A reference that cannot be resolved fails the build rather than starting a channel without a credential. Observability emits a per-turn `TurnTrace` aligned to the OpenTelemetry GenAI conventions, and an [`eval/`](https://github.com/TheAgent-net/webagent/blob/main/eval/eval.go) harness runs scenarios with checks.\n\n## **Key Takeaways**\n\n- 1 JSON spec, 9 slots, 1 provider each; `webagent serve` does the rest\n- Every tool call passes through `action.Guard` before execution\n- Live today: OpenRouter or gateway brains, MCP tools, Slack, WhatsApp, HTTP channels\n- Not yet: browser actions, OAuth MCP, OTel export, AgentNet billing\n- Apache 2.0, Go, v0; read the deferred-hardening list before production\n\nCheck out the [**GitHub repo**](https://github.com/TheAgent-net/webagent) and the [** launch post**](https://x.com/TheAgentNet/status/2099187195345330561). All credit goes to the researcher of this project. Also, feel free to follow us on **[Twitter](https://x.com/intent/follow?screen_name=marktechpost)** and don’t forget to join our **[150k+ML SubReddit](https://www.reddit.com/r/machinelearningnews/)** and Subscribe to **[our Newsletter](https://magic.beehiiv.com/v1/f5e63dd4-5653-4f09-83e2-321a8b1ba526?email={{email}})**. Wait! are you on telegram? [now you can join us on telegram as well.](https://t.me/machinelearningresearchnews)\n\nNeed to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? [Connect with us](https://forms.gle/wbash1wF6efRj8G58)\n\nMichal Sutter is a data science professional with a Master of Science in Data Science from the University of Padova. With a solid foundation in statistical analysis, machine learning, and data engineering, Michal excels at transforming complex datasets into actionable insights.", "url": "https://wpnews.pro/news/agent-net-open-sources-webagent-a-go-harness-that-turns-any-website-into-a-ai", "canonical_source": "https://www.marktechpost.com/2026/09/14/agent-net-open-sources-webagent-a-go-harness-that-turns-any-website-into-a-guarded-ai-agent/", "published_at": "2026-09-15 04:03:20+00:00", "updated_at": "2026-09-15 04:32:45.390084+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "ai-products", "developer-tools", "ai-safety"], "entities": ["Agent-net", "Webagent", "Go", "Apache 2.0", "Slack", "WhatsApp", "MCP", "OpenRouter"], "alternates": {"html": "https://wpnews.pro/news/agent-net-open-sources-webagent-a-go-harness-that-turns-any-website-into-a-ai", "markdown": "https://wpnews.pro/news/agent-net-open-sources-webagent-a-go-harness-that-turns-any-website-into-a-ai.md", "text": "https://wpnews.pro/news/agent-net-open-sources-webagent-a-go-harness-that-turns-any-website-into-a-ai.txt", "jsonld": "https://wpnews.pro/news/agent-net-open-sources-webagent-a-go-harness-that-turns-any-website-into-a-ai.jsonld"}}