Skip to content
Merged
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions website/src/components/Hero.astro
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ const SHOW_HERO_VIDEO = false;
>
<div style="display:flex;flex-direction:column;align-items:center;gap:32px;">
<div style="display:flex;flex-direction:column;align-items:center;gap:28px;">
<a
href="/blog/introducing-agenta-2-0"
style="display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,0.06);box-shadow:0 0 0 1px rgba(255,255,255,0.14);font:var(--text-caption);letter-spacing:0.03em;color:rgba(255,255,255,0.8);text-decoration:none;"
>Agenta 2.0 — read the announcement →</a
>
<h1
class="ag-h1"
style="margin:0;font:var(--text-display-xl);color:#F7F6F4;max-width:920px;text-wrap:pretty;"
Expand Down
110 changes: 110 additions & 0 deletions website/src/content/posts/introducing-agenta-2-0.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
slug: "introducing-agenta-2-0"
title: "Introducing Agenta 2.0"
description: "Agenta 2.0 is the open-source workspace for building and running agents: build them through chat, improve them with feedback, share them with your team."
category: Article
date: 2026-07-22
readingTime: "6 min read"
heroImage: /blog/introducing-agenta-2-0/hero.png
ogImage: /blog/introducing-agenta-2-0/hero.png
author: mahmoud-mabrouk
featured: true
featuredRank: 1
tags: ["Article"]
---

Today, we are introducing Agenta 2.0, an open-source workspace for building and running agents.

Agenta lets you build specialized agents for different areas of work. You can work with them as AI coworkers, share them with your team, and use them to automate recurring tasks.

## Agents are becoming a new building block for work

Agents have reached a point where they can help with a [large share of tasks across a company](https://www.anthropic.com/research/labor-market-impacts).

Give an agent a goal, clear instructions, the right context, and access to tools, and it can complete many tasks autonomously. It can inspect information, use applications, write scripts, and adapt when the situation changes.

Until now, automating work often meant defining every step in advance. You designed a deterministic workflow and specified what should happen at each branch. This remains the right approach in high-governance settings where every step must be predictable.

But much of our work is not like that. Research, product decisions, customer support, sales, and company operations require context and judgment. The right next step depends on what the system finds. Agents have become much better at handling this kind of work.

An agent can become the basic unit that performs this work. At a technical level, we think of the agent as a new compute primitive. In practical terms, you describe the job, provide the context and tools, and let the agent reason through the problem.

People still provide direction, feedback, and judgment. They do not need to encode every path. Agents take on more of the execution.

## Building useful agents still requires too much work

Most companies are not yet using agents to their full potential.

A useful agent needs company context. It needs instructions, files, skills, tools, and access to the applications where work happens. People need a way to improve it, share it, run it again, and understand what happened when it makes a mistake.

Most importantly, the people doing the work need to be able to create their own agents. They understand the work best.

Today, this capability is spread across several kinds of products.

Coding agents such as Claude Code and Codex are very powerful, but still require technical skills. Closed AI workspaces provide a polished experience, but limit how much users can inspect, change, or move and lock them into one provider. Visual workflow builders work well when users can define the process in advance, but they do not fully use what this new agent paradigm makes possible.

The result is an awkward choice between agency, ease of use, automation, and control.

We think teams need an open workspace where every team member can build agents by working with them, give them lasting context, share them with the team, automate suitable work, and control how they run.

## A workspace for you and your agents

Agenta provides that workspace.

You start with a real job and describe it in chat. The agent works with you, uses the context you provide, and helps create the setup it needs.

Each agent has a persistent workspace. It can maintain research, documents, plans, reports, and other artifacts instead of starting every conversation without context.

You improve the agent through real work and feedback, then share it with your team. For recurring work, you can create loops that run on a schedule or when an event occurs in a connected application.

In other words, the AI coworker and the automation are not separate systems. They are two ways to use the same agent. You can work with it directly when the job needs discussion, then let it handle understood parts of the work in the background.

## Using open standards

The agent itself remains simple and portable. An Agenta agent is built from standard components: `AGENTS.md`, skills, tools, and MCP servers. You can see and change how it works.

This means three things. First, you can reuse compatible MCP servers and skills from the broader agent ecosystem.

Second, you can switch supported models or harnesses without rebuilding the agent. You can choose the right setup for each task without being locked into one provider.

We already work this way inside Agenta. Our go-to-market work uses [pi](https://pi.dev) with GPT-5.6. We use Claude Code with Opus 4.8 for engineering. For day-to-day tasks, where speed matters, we use [GLM 5.2 Nitro](https://openrouter.ai/z-ai/glm-5.2:nitro) through [OpenRouter](https://openrouter.ai/). In our personal local self-hosted setup, our personal agents use our existing Claude Code and ChatGPT subscriptions.

Last, open standards allow you to run your agents almost anywhere. Right now we support Agenta Cloud, local in docker containers or through [Daytona](https://daytona.io/) sandboxes. Over time, we plan to support more environments, including [E2B](https://e2b.dev/), [Vercel sandboxes](https://vercel.com/docs/sandbox), and [Modal](https://modal.com/).

## A go-to-market agent in practice

We built the new Agenta from our own need to work this way.

As a technical founder, I work across product, engineering, research, positioning, content, and launch planning. These areas affect one another, but their context is usually spread across conversations and documents.

My go-to-market agent works with a persistent workspace containing our product context, research, positioning, decisions, launch plans, and drafts. I use it in chat to research questions, compare new information with earlier decisions, update documents, and prepare assets. This announcement is one output from that ongoing work.

I also use agents for recurring work. One, for instance, helps operate our social listening through [Octolens](https://octolens.com/), where it manages research vocabulary, monitoring feeds, and the decisions behind them.

The agent does not make decisions for me. It gathers and structures information, records context, and helps perform the work. Over time, I give it feedback and refine it to fit the way I work. It gives me immense leverage.

## Reliability and continuous improvement

The first version of Agenta focused on helping teams build, evaluate, and observe applications powered by LLMs. That foundation remains important because reliability is still a major challenge when building agents.

When we started Agenta, LLMs were poor at following instructions and understanding what users meant. Much of our users' time went into prompt engineering and building complex workflows designed to compensate. Today, agents are far better at following instructions. Most workflows can now be expressed as instructions to an agent instead of being defined step by step.

Reliability today is about explaining the job clearly. Say you are building an agent to reach out to prospects. How do you define your ideal customer profile? What style should the agent follow? What should it focus on when researching a prospect, and what should it ignore?

You cannot build a reliable agent that performs a job successfully without answering these questions. To achieve that, there is no shortcut; you need to review the agent results, give feedback, and iterate.

Agenta provides the tools to improve agents continuously. Every run is logged and traced with its inputs and outputs. Every agent configuration is versioned. A user can give feedback, and the agent can inspect what happened, identify why it made a mistake, and propose configuration changes.

Over time, you build more capable agents that become part of your company's operating DNA and differentiation. They encode your best practices, standard operating procedures, and your ways of working.

The second layer of reliability comes from permissions and human approval. We built Agenta with a detailed permission system and human-in-the-loop controls. Teams can decide which actions an agent may perform, which require approval, and which remain blocked.

## Getting started

Agenta 2.0 is today available through Agenta Cloud and as an open-source, self-hosted product.

Start with a template. Ask an agent to customize it, then give it the context and access to the tools it needs. Improve it through use. Over time, you can automate parts of the work and build a system that gives your whole team far more leverage.

Get started for free in [Agenta Cloud](https://cloud.agenta.ai), or copy the prompt in the [self-hosting guide](https://agenta.ai/docs/self-host/overview) to run it yourself in minutes.

We believe the people who understand the work should be able to build the agents that do it. We want to help them build the next million agents.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ heroImage: /blog/the-definitive-guide-to-prompt-management-systems/hero.webp
ogImage: /blog/the-definitive-guide-to-prompt-management-systems/hero.webp
author: mahmoud-mabrouk
featured: true
featuredRank: 1
featuredRank: 3
tags: ["Article"]
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ readingTime: "15 min read"
heroImage: /blog/the-ultimate-guide-for-chunking-strategies/hero.webp
ogImage: /blog/the-ultimate-guide-for-chunking-strategies/hero.webp
author: ilyes-rezgui
featured: true
featuredRank: 3
featured: false
tags: ["Article"]
---

Expand Down
88 changes: 45 additions & 43 deletions website/src/pages/blog/[slug].astro
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export const getStaticPaths = (async () => {
}) satisfies GetStaticPaths;

const { post } = Astro.props;
const { title, description, category, date, heroImage, ogImage, readingTime } =
const { title, description, date, heroImage, ogImage, readingTime } =
post.data;

// Resolve every contributor (primary first, then co-authors) for the byline.
Expand Down Expand Up @@ -87,8 +87,8 @@ const sectionBorder = "border:1px solid rgba(255,255,255,0.07);margin-top:-1px;"
<article style={`background:#0E0D0F;${sectionBorder}padding:0 0 24px;`}>
<!-- header -->
<div
class="ag-pad"
style="max-width:760px;margin:0 auto;padding:56px 24px 36px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px;"
class="ag-pad ag-post-head"
style="max-width:760px;margin:0 auto;padding:56px 24px 44px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px;"
>
<a
href="/blog"
Expand All @@ -103,74 +103,68 @@ const sectionBorder = "border:1px solid rgba(255,255,255,0.07);margin-top:-1px;"
stroke-linejoin="round"></path></svg
>All blogs
</a>
<span
style="display:inline-flex;align-items:center;height:24px;padding:0 13px;border-radius:999px;background:rgba(242,242,92,0.12);box-shadow:inset 0 0 0 1px rgba(242,242,92,0.3);font:var(--text-caption);letter-spacing:0.04em;color:var(--yellow-400);"
>{category}</span
>
<h1
class="ag-h1"
style="margin:0;font:300 52px/1.08 var(--font-display);color:#F7F6F4;text-wrap:pretty;"
>
{title}
</h1>
<p
style="margin:0;font:var(--text-body-md);color:rgba(255,255,255,0.6);max-width:600px;text-wrap:pretty;"
style="margin:0;font:400 19px/1.5 var(--font-sans);letter-spacing:-0.011em;color:rgba(255,255,255,0.62);max-width:600px;text-wrap:pretty;"
>
{description}
</p>

<!-- byline: stacked avatars · author name(s) · role · date · reading time -->
<!-- date · reading time: quiet single line directly below the subtitle -->
<div
style="display:flex;align-items:center;justify-content:center;gap:9px;margin-top:-8px;font:var(--text-caption);letter-spacing:0.03em;color:rgba(255,255,255,0.45);"
>
<span>{dateLabel}</span>
{readingTime && (
<>
<span style="width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,0.3);" />
<span>{readingTime}</span>
</>
)}
</div>

<!-- byline: stacked avatars · author name(s), vertically centered -->
{
primaryAuthor && (
<div
class="ag-author"
style="display:flex;align-items:center;justify-content:center;gap:14px;margin-top:4px;"
style="display:flex;align-items:center;justify-content:center;gap:12px;margin-top:4px;"
>
<div style="flex:0 0 auto;display:flex;align-items:center;">
{authors.map((a, i) => (
<a
href={`/authors/${a.id}`}
aria-label={a.data.name}
style={`display:block;${i > 0 ? "margin-left:-14px;" : ""}`}
style={`display:block;${i > 0 ? "margin-left:-12px;" : ""}`}
>
<img
src={a.data.avatar}
alt={a.data.name}
width="56"
height="56"
style="display:block;width:56px;height:56px;border-radius:50%;object-fit:cover;box-shadow:inset 0 0 0 2px #0E0D0F,inset 0 0 0 3px rgba(255,255,255,0.1);"
width="40"
height="40"
style="display:block;width:40px;height:40px;border-radius:50%;object-fit:cover;box-shadow:inset 0 0 0 2px #0E0D0F,inset 0 0 0 3px rgba(255,255,255,0.1);"
/>
</a>
))}
</div>
<div style="display:flex;flex-direction:column;gap:3px;text-align:left;">
<span style="font:var(--text-label);color:#F7F6F4;">
{authors.map((a, i) => (
<>
{i > 0 && <span style="color:rgba(255,255,255,0.45);"> & </span>}
<a
href={`/authors/${a.id}`}
style="color:#F7F6F4;text-decoration:none;"
>
{a.data.name}
</a>
</>
))}
</span>
<div
style="display:flex;align-items:center;gap:9px;flex-wrap:wrap;font:var(--text-caption);letter-spacing:0.03em;color:rgba(255,255,255,0.45);"
>
<span>{primaryAuthor.data.role}</span>
<span style="width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,0.3);" />
<span>{dateLabel}</span>
{readingTime && (
<>
<span style="width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,0.3);" />
<span>{readingTime}</span>
</>
)}
</div>
</div>
<span style="font:var(--text-label);color:#F7F6F4;">
{authors.map((a, i) => (
<>
{i > 0 && <span style="color:rgba(255,255,255,0.45);"> & </span>}
<a
href={`/authors/${a.id}`}
style="color:#F7F6F4;text-decoration:none;"
>
{a.data.name}
</a>
</>
))}
</span>
</div>
)
}
Expand Down Expand Up @@ -200,7 +194,7 @@ const sectionBorder = "border:1px solid rgba(255,255,255,0.07);margin-top:-1px;"

<!-- body -->
<div
class="ag-prose ag-pad"
class="ag-prose ag-pad ag-post-body"
style="max-width:720px;margin:0 auto;padding:48px 24px 8px;"
>
<Content components={{ InlineCTA, img: BlogImage }} />
Expand Down Expand Up @@ -267,6 +261,14 @@ const sectionBorder = "border:1px solid rgba(255,255,255,0.07);margin-top:-1px;"
padding-left: 20px !important;
padding-right: 20px !important;
}
/* Hero image breathes proportionally less on phones. */
.ag-post-head {
padding-top: 44px !important;
padding-bottom: 30px !important;
}
.ag-post-body {
padding-top: 32px !important;
}
}
</style>
</Site>
30 changes: 20 additions & 10 deletions website/src/styles/global.css
Original file line number Diff line number Diff line change
Expand Up @@ -562,40 +562,50 @@ html,
Body is a muted warm white for comfortable reading; headings brighter; links
carry the brand accent; code sits on a subtle raised surface.
============================================================================ */
/* Body scale tuned against Linear's blog (linear.app/now): 15–16px regular 400
with a slight negative tracking reads far lighter than a heavier 17px block.
We keep Inter for body and GT Alpina for headings — only size/weight/leading
and tracking follow Linear. */
.ag-prose {
color: rgba(255, 255, 255, 0.72);
font-family: var(--font-sans);
font-size: 17px;
line-height: 1.75;
font-size: 16px;
font-weight: 400;
line-height: 1.65;
letter-spacing: -0.011em;
}
.ag-prose > :first-child {
margin-top: 0;
}
.ag-prose p {
margin: 0 0 1.15em;
margin: 0 0 1.25em;
}
.ag-prose h2 {
margin: 2em 0 0.6em;
font: 400 30px/1.2 var(--font-display);
margin: 2em 0 0.55em;
font: 400 26px/1.25 var(--font-display);
letter-spacing: -0.015em;
color: var(--text-on-dark-heading);
text-wrap: pretty;
}
.ag-prose h3 {
margin: 1.6em 0 0.5em;
font: 400 23px/1.3 var(--font-display);
margin: 1.7em 0 0.5em;
font: 400 20px/1.3 var(--font-display);
letter-spacing: -0.012em;
color: var(--text-on-dark-heading);
text-wrap: pretty;
}
.ag-prose h4 {
margin: 1.4em 0 0.4em;
font: 600 17px/1.4 var(--font-sans);
margin: 1.5em 0 0.4em;
font: 600 16px/1.4 var(--font-sans);
letter-spacing: -0.006em;
color: var(--text-on-dark-heading);
}
.ag-prose a {
color: var(--yellow-400);
font-weight: 400;
text-decoration: underline;
text-underline-offset: 2px;
text-decoration-color: rgba(242, 242, 92, 0.4);
text-decoration-color: rgba(242, 242, 92, 0.55);
}
.ag-prose a:hover {
text-decoration-color: var(--yellow-400);
Expand Down
Loading