Skip to content

Commit b3b8af9

Browse files
author
“AlinaCriveanu”
committed
updates
1 parent 83eb35f commit b3b8af9

12 files changed

Lines changed: 404 additions & 69 deletions

File tree

app/agents/page.jsx

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
import Header from '@/components/Header';
2+
import Footer from '@/components/Footer';
3+
4+
export default function Agents() {
5+
const agentPrimitives = [
6+
{
7+
title: 'Skills',
8+
description:
9+
'Versioned capabilities that define what an agent knows how to do. Defined in YAML or via the Studio IDE. Each skill has a clear input schema, output schema, and test suite.',
10+
},
11+
{
12+
title: 'Tools',
13+
description:
14+
'Functions that connect agents to the outside world — API calls, database queries, file I/O, shell commands, or any custom integration. Registered once, reused across agents.',
15+
},
16+
{
17+
title: 'MCP Servers',
18+
description:
19+
'Plug in entire tool ecosystems via the Model Context Protocol. Any MCP-compatible server exposes its tools directly to your agents.',
20+
},
21+
{
22+
title: 'Sub-agents',
23+
description:
24+
'Agents can delegate to other agents. Hierarchical architectures allow a reasoning model to orchestrate specialized sub-agents — each with its own tools, memory, and model.',
25+
},
26+
{
27+
title: 'Models',
28+
description:
29+
'Agents can use any model served through Surogate — models imported from HuggingFace, custom fine-tuned SLMs, or models from external APIs.',
30+
},
31+
{
32+
title: 'Memory',
33+
description:
34+
'Agents maintain context across steps. Memory operations are captured in execution traces and visible in the trace viewer.',
35+
},
36+
];
37+
38+
return (
39+
<div className="bg-white text-zinc-950 antialiased overflow-x-hidden dark:bg-zinc-950 dark:text-zinc-100">
40+
<Header />
41+
<main>
42+
<section className="relative overflow-hidden bg-[var(--accent-purple)]">
43+
<div className="mx-auto grid max-w-6xl gap-8 px-4 py-12 sm:gap-10 sm:py-14 md:grid-cols-2 md:py-20 items-center">
44+
<div>
45+
<h1 className="text-3xl font-semibold tracking-tight text-white sm:text-4xl md:text-5xl">
46+
Agents
47+
</h1>
48+
<p className="mt-4 text-base sm:text-lg md:text-xl text-white/90 leading-relaxed">
49+
Surogate agents are composed from four primitives: skills, tools, models, and sub-agents.
50+
</p>
51+
<div className="mt-6 flex flex-wrap gap-2 text-xs">
52+
<span className="rounded-full bg-white/10 px-3 py-1 text-white ring-1 ring-white/20">
53+
Skills + Tools
54+
</span>
55+
<span className="rounded-full bg-white/10 px-3 py-1 text-white ring-1 ring-white/20">
56+
MCP Integration
57+
</span>
58+
<span className="rounded-full bg-white/10 px-3 py-1 text-white ring-1 ring-white/20">
59+
Execution Traces
60+
</span>
61+
<span className="rounded-full bg-white/10 px-3 py-1 text-white ring-1 ring-white/20">
62+
Continuous Improvement
63+
</span>
64+
</div>
65+
</div>
66+
67+
<div className="relative flex justify-center md:justify-end">
68+
<div className="absolute -inset-8 -z-10 rounded-full bg-white/10 blur-3xl opacity-40" />
69+
<img
70+
src="/surogate-mascot.svg"
71+
alt="Surogate mascot"
72+
width={917}
73+
height={917}
74+
className="h-auto max-w-xs w-full"
75+
/>
76+
</div>
77+
</div>
78+
</section>
79+
80+
<section
81+
className="scroll-mt-24 border-t border-zinc-200 dark:border-white/10 bg-white/80 dark:bg-zinc-950/70"
82+
>
83+
<div className="mx-auto max-w-6xl px-4 py-12 sm:py-14">
84+
<div className="mt-0 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3">
85+
{agentPrimitives.map((item) => (
86+
<div
87+
key={item.title}
88+
className="rounded-2xl border border-zinc-200/70 bg-white/70 p-5 dark:border-white/10 dark:bg-zinc-900/30"
89+
>
90+
<h3 className="text-sm font-semibold text-zinc-950 dark:text-white">
91+
{item.title}
92+
</h3>
93+
<p className="mt-2 text-xs leading-relaxed text-zinc-700 dark:text-zinc-300">
94+
{item.description}
95+
</p>
96+
</div>
97+
))}
98+
</div>
99+
</div>
100+
</section>
101+
102+
<section className="bg-white/95 dark:bg-zinc-950/70 border-t border-zinc-200 dark:border-white/10">
103+
<div className="mx-auto max-w-6xl px-4 pt-16 pb-24 sm:pt-18 sm:pb-30">
104+
<div className="mb-3 text-xs leading-relaxed text-zinc-950 dark:text-zinc-100">
105+
<div className="font-bold">AGENT YAML EXAMPLE</div>
106+
</div>
107+
108+
<pre className="whitespace-pre-wrap break-words rounded-2xl border border-zinc-200/70 bg-[var(--accent-purple)] p-5 text-xs leading-relaxed text-zinc-100 dark:border-white/10 dark:bg-[var(--accent-purple)] dark:text-zinc-100">
109+
{String.raw`# agent.yaml
110+
name: contract-analyzer
111+
model: models/legal-slm-v2
112+
113+
skills:
114+
- extract-obligations
115+
- classify-clauses
116+
- generate-summary
117+
118+
tools:
119+
- name: search-documents
120+
type: api
121+
endpoint: https://your-api/search
122+
123+
memory: enabled
124+
max_steps: 20`}
125+
</pre>
126+
</div>
127+
</section>
128+
129+
<section className="relative overflow-hidden bg-[var(--accent-orange)] border-t border-black/10">
130+
<img
131+
src="/heroBg.svg"
132+
alt=""
133+
width={1609}
134+
height={2527}
135+
className="pointer-events-none select-none absolute top-1/2 -translate-y-1/2 left-0 w-96 md:w-[500px] lg:w-[600px] h-auto"
136+
/>
137+
<div className="relative z-10 mx-auto max-w-6xl px-4 py-16 sm:py-20">
138+
<div className="grid grid-cols-1 gap-10 md:grid-cols-2 items-start">
139+
<div>
140+
<h2 className="text-xl sm:text-2xl font-semibold tracking-tight text-black">
141+
OBSERVABILITY — every run is a trace
142+
</h2>
143+
<p className="mt-4 text-sm sm:text-base text-black/80 leading-relaxed">
144+
Every agent execution generates a structured trace. Inspect it in the visual viewer, replay it step by step, or export it for analysis.
145+
</p>
146+
147+
<ul className="mt-6 space-y-2 text-sm sm:text-base text-black/80">
148+
<li className="flex gap-3">
149+
<span className="mt-0.5 text-black/70"></span>
150+
<span>LLM calls and responses — input prompt, output, latency, token count</span>
151+
</li>
152+
<li className="flex gap-3">
153+
<span className="mt-0.5 text-black/70"></span>
154+
<span>Tool invocations — which tool, what arguments, what was returned</span>
155+
</li>
156+
<li className="flex gap-3">
157+
<span className="mt-0.5 text-black/70"></span>
158+
<span>Sub-agent execution — full nested trace for every delegated task</span>
159+
</li>
160+
<li className="flex gap-3">
161+
<span className="mt-0.5 text-black/70"></span>
162+
<span>Skill execution steps — each stage of skill processing</span>
163+
</li>
164+
<li className="flex gap-3">
165+
<span className="mt-0.5 text-black/70"></span>
166+
<span>Memory operations — reads and writes</span>
167+
</li>
168+
<li className="flex gap-3">
169+
<span className="mt-0.5 text-black/70"></span>
170+
<span>Errors and runtime events — full stack with context</span>
171+
</li>
172+
</ul>
173+
</div>
174+
175+
<div>
176+
<h2 className="text-xl sm:text-2xl font-semibold tracking-tight text-black">
177+
THE IMPROVEMENT LOOP
178+
</h2>
179+
<p className="mt-4 text-sm sm:text-base text-black/80 leading-relaxed">
180+
Agents in Surogate don't stay static. Every execution leaves a trace. Traces become training data. Training data produces Specialized Language Models (SLMs) — compact, fast models tuned to your specific agent workflows.
181+
</p>
182+
183+
<ol className="mt-6 space-y-3 text-sm sm:text-base text-black/80 list-decimal list-inside">
184+
<li>Collect execution traces from production</li>
185+
<li>Convert successful traces into training datasets</li>
186+
<li>Fine-tune an SLM on agent trajectories</li>
187+
<li>Evaluate the new model against benchmarks</li>
188+
<li>Promote to production — automatically or with approval gates</li>
189+
</ol>
190+
</div>
191+
</div>
192+
</div>
193+
</section>
194+
</main>
195+
<Footer />
196+
</div>
197+
);
198+
}
199+

app/features/page.jsx

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,41 @@ import Footer from '@/components/Footer';
44

55
export default function Features() {
66
const features = [
7-
'Pretraining; full fine-tuning; LoRA / QLoRA',
8-
'BF16, FP8, NVFP4, BnB; mixed-precision training',
9-
'Multi-GPU; Multi-node (Ray-based)',
7+
'Pre-training; full fine-tuning; LoRA / QLoRA',
8+
'BF16, FP8, NVFP4; mixed-precision training',
9+
'Multi-GPU; multi-node (Ray-based)',
1010
'Smart CPU offloading',
11-
'Native C++/CUDA engine; kernel fusions; multi-threaded scheduler',
11+
'Native C++/CUDA engine; kernel fusions',
1212
'Deterministic configs + predefined recipes',
13-
'DDP efficiency (comm/compute overlap)',
14-
'Optimizer options (e.g., 8-bit AdamW)',
1513
'Dense + MoE model support',
16-
'Broad NVIDIA SM coverage',
17-
'GUI workflows; no-code pretraining & fine-tuning; predefined recipes',
18-
'Reinforcement fine-tuning; alignment: DPO / PPO / GRPO / GDP',
19-
'Chinchilla scaling rules for pretraining',
20-
'Model distillation',
21-
'Data Hub with Git-like versioning',
22-
'Team collaboration',
23-
'Live training monitoring',
24-
'GPU & node monitoring',
25-
'Quantization recipes',
26-
'Advanced model serving (KV-aware cache routing, GPU sharding, replicas, disaggregated serving)',
27-
'Model gateway (usage tracking & security)',
28-
'Evaluation suite + red-teaming(bias/toxicity/leakage, etc.)',
29-
'Synthetic data generation; embeddings training; reward function tooling',
30-
'Alerts/logging',
14+
'Broad NVIDIA SM coverage (sm80–sm121)',
15+
'Autonomous agent runtime (skills, tools, sub-agents)',
16+
'MCP server integration',
17+
'Agent deployment on Kubernetes',
18+
'Execution traces - basic viewer + export',
19+
'Skill development + test suites',
20+
'Data Hub with Git-style versioning',
21+
'GPU-accelerated serving (vLLM)',
22+
'Session replay, anomaly alerts, advanced dashboards',
23+
'Auto CI benchmarking; leaderboard; regression guards',
24+
'Skill improvement: GEPA optimization, failure analysis, A/B testing',
25+
'Continuous agent improvement (scheduler + auto-promotion)',
26+
'Full RLHF UI; preference datasets; feedback routing',
27+
'Reinforcement learning: DPO / PPO / GRPO',
28+
'Model distillation from agent trajectories (SLMs)',
29+
'Synthetic data generation; reward function tooling',
30+
'Fine-grained guardrails; content filters; compliance audit',
31+
'Advanced RBAC; SSO; audit logs',
32+
'Budget caps; per-team allocation; billing',
33+
'Live training monitoring; GPU & node monitoring',
34+
'Evaluation suite + red-teaming (bias/toxicity/PII/jailbreak)',
3135
'Workload/container isolation',
3236
];
3337

34-
const guiWorkflowsIndex = features.findIndex(f => f.includes('GUI workflows'));
38+
// Free column (Surogate OSS) is disabled starting from this capability.
39+
const freeCutoffIndex = features.findIndex(
40+
f => f.includes('Session replay, anomaly alerts, advanced dashboards')
41+
);
3542

3643
return (
3744
<div className="bg-zinc-950 text-zinc-100 antialiased overflow-x-hidden">
@@ -94,7 +101,7 @@ export default function Features() {
94101
{feature}
95102
</td>
96103
<td className="border-l border-black bg-[var(--accent-orange)] px-4 text-center text-lg">
97-
{index < guiWorkflowsIndex ? '✔' : '✖'}
104+
{freeCutoffIndex === -1 ? '✔' : index < freeCutoffIndex ? '✔' : '✖'}
98105
</td>
99106
<td className="border-l border-black bg-[var(--accent-orange)] px-4 text-center text-lg">
100107

app/layout.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export const metadata = {
5353

5454
export default function RootLayout({ children }) {
5555
return (
56-
<html lang="en" className={`${inter.variable} ${playfair.variable} dark`} suppressHydrationWarning>
56+
<html lang="en" className={`${inter.variable} ${playfair.variable}`} suppressHydrationWarning>
5757
<head>
5858
<link rel="preconnect" href="https://www.googletagmanager.com" />
5959
<link rel="preconnect" href="https://region1.google-analytics.com" />
@@ -72,7 +72,7 @@ export default function RootLayout({ children }) {
7272
`}
7373
</Script>
7474
</head>
75-
<body className={inter.className}>
75+
<body className={inter.className} suppressHydrationWarning>
7676
<ThemeProvider>
7777
{children}
7878
</ThemeProvider>

app/page.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import Recipes from '@/components/Recipes';
55
import Quickstart from '@/components/Quickstart';
66
import Hardware from '@/components/Hardware';
77
import Studio from '@/components/Studio';
8+
import JoinCommunity from '@/components/JoinCommunity';
89
import Footer from '@/components/Footer';
910

1011
export default function Home() {
@@ -24,6 +25,7 @@ export default function Home() {
2425
<WhatIsSurogate />
2526
<Recipes />
2627
<Studio/>
28+
<JoinCommunity />
2729
<Quickstart />
2830
<Hardware />
2931
</main>

components/AboutHero.jsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,19 @@ export default function AboutHero() {
44
<div className="mx-auto grid max-w-6xl gap-8 px-4 py-12 sm:gap-10 sm:py-14 md:grid-cols-2 md:py-20 items-center">
55
<div className="order-2 md:order-1">
66
<p className="mt-5 text-base sm:text-lg md:text-xl text-white leading-relaxed">
7-
<strong>Surogate</strong> is the high-performance AI engine by Invergent, designed to bridge the gap between ambitious experimentation and enterprise-grade scalability. We empower developers to train and fine-tune massive models with "speed-of-light" efficiency. By leveraging cutting-edge C++/CUDA kernels and native support for next-gen hardware like NVIDIA Blackwell, we make elite-level AI infrastructure accessible, predictable, and incredibly fast—whether on-premise, in the cloud, or air-gapped.
7+
<strong>Surogate</strong> is the open-source AgentOps platform by Invergent — designed to close the gap between ambitious AI experimentation and reliable production deployment.
8+
</p>
9+
<p className="mt-4 text-base sm:text-lg md:text-xl text-white leading-relaxed">
10+
We build the infrastructure for teams that want to train their own models, compose autonomous agents, and operate them at scale — on hardware they control.
11+
</p>
12+
<p className="mt-4 text-base sm:text-lg md:text-xl text-white leading-relaxed">
13+
The training engine is native C++/CUDA, engineered to push NVIDIA GPUs to their practical limits — from consumer RTX cards to Blackwell datacenter hardware.
14+
</p>
15+
<p className="mt-4 text-base sm:text-lg md:text-xl text-white leading-relaxed">
16+
The agent runtime is built on Kubernetes, with full skill lifecycle management, execution tracing, and a continuous improvement loop that makes your agents measurably better over time.
17+
</p>
18+
<p className="mt-4 text-base sm:text-lg md:text-xl text-white leading-relaxed">
19+
<strong>Open-source core. Enterprise platform. Fully self-hosted.</strong>
820
</p>
921
</div>
1022

components/Footer.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ export default function Footer() {
1010
<span className="flex h-10 items-center">
1111
<img src="/surogateWhite.svg" width={632} height={205} className="h-full w-auto object-contain" alt="Surogate" />
1212
</span>
13-
<span className="hidden text-sm text-zinc-300 sm:inline">Insanely fast LLM training</span>
14-
<span className="hidden text-sm text-zinc-400 sm:inline">Apache 2.0 License</span>
13+
<span className="hidden text-sm text-zinc-300 sm:inline">Train fast. Build agents. Ship to production.</span>
14+
<span className="hidden text-sm text-zinc-400 sm:inline">· Apache 2.0 License</span>
1515
</a>
1616
<a
1717
href="#"

components/Header.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ export default function Header() {
9393
<a className="hover:font-semibold" href="#quickstart" onClick={(e) => handleNavClick(e, '#quickstart')}>Quickstart</a>
9494
<a className="hover:font-semibold" href="#hardware" onClick={(e) => handleNavClick(e, '#hardware')}>Hardware</a>
9595
<Link className="hover:font-semibold" href="/features">Features</Link>
96+
<Link className="hover:font-semibold" href="/agents">Agents</Link>
9697
<Link className="hover:font-semibold" href="/about">About</Link>
9798
</nav>
9899

@@ -155,6 +156,7 @@ export default function Header() {
155156
<a className="rounded-xl px-3 py-2 hover:bg-zinc-100 dark:hover:bg-white/5" href="#quickstart" onClick={(e) => handleNavClick(e, '#quickstart')}>Quickstart</a>
156157
<a className="rounded-xl px-3 py-2 hover:bg-zinc-100 dark:hover:bg-white/5" href="#hardware" onClick={(e) => handleNavClick(e, '#hardware')}>Hardware</a>
157158
<Link className="rounded-xl px-3 py-2 hover:bg-zinc-100 dark:hover:bg-white/5" href="/features">Features</Link>
159+
<Link className="rounded-xl px-3 py-2 hover:bg-zinc-100 dark:hover:bg-white/5" href="/agents">Agents</Link>
158160
<Link className="rounded-xl px-3 py-2 hover:bg-zinc-100 dark:hover:bg-white/5" href="/about">About</Link>
159161
</nav>
160162
<div className="mt-3 flex flex-wrap gap-2">

0 commit comments

Comments
 (0)