Files
wehub-resource-sync e071084ebe
govulncheck / govulncheck (push) Waiting to run
Harness (E2E) / Harnesses (mock LLM) (push) Waiting to run
Harness (E2E) / Provider harnesses (live LLM conformance) (push) Waiting to run
Lint / golangci-lint (push) Waiting to run
Run Tests / Unit Tests (push) Waiting to run
Run Tests / Etcd Integration Tests (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 12:40:33 +08:00

296 lines
13 KiB
HTML

---
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Go Micro - An agent harness and service framework for Go." />
<meta name="go-import" content="go-micro.dev/v6 git https://github.com/micro/go-micro">
<meta name="go-import" content="go-micro.dev/v5 git https://github.com/micro/go-micro">
<meta name="go-source" content="go-micro.dev/v6 https://github.com/micro/go-micro https://github.com/micro/go-micro/tree/master{/dir} https://github.com/micro/go-micro/blob/master{/dir}/{file}#L{line}">
<title>Go Micro - Agent Harness for Go</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
html { overflow-x: hidden; }
body {
font-family: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
line-height: 1.6;
color: #1a1a1a;
background: #fff;
overflow-x: hidden;
}
a { color: #0366d6; text-decoration: none; }
a:hover { text-decoration: underline; }
/* Nav */
.nav {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1100px;
margin: 0 auto;
padding: 1rem 1.5rem;
}
.nav-brand {
display: flex;
align-items: center;
gap: 0.5rem;
font-weight: 700;
font-size: 1.1rem;
color: #1a1a1a;
text-decoration: none;
}
.nav-brand img { height: 32px; }
.nav-links { display: flex; gap: 1.5rem; font-size: 0.9rem; }
.nav-links a { color: #555; font-weight: 500; }
.nav-links a:hover { color: #0366d6; text-decoration: none; }
/* Hero */
.hero {
background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 100%);
padding: 4rem 1.5rem;
text-align: center;
}
.hero-inner { max-width: 800px; margin: 0 auto; }
.hero h1 { font-size: 2.5rem; margin-bottom: 0.75rem; color: #0d1117; }
.hero .tagline { font-size: 1.2rem; color: #555; margin-bottom: 2rem; }
.hero pre {
display: inline-block;
background: #0d1117;
color: #58a6ff;
padding: 0.75rem 1.5rem;
border-radius: 8px;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 0.95rem;
margin-bottom: 1.5rem;
max-width: 100%;
overflow-x: auto;
}
.hero-buttons { display: flex; gap: 0.75rem; justify-content: center; flex-wrap: wrap; }
.btn {
display: inline-block;
padding: 0.7rem 1.5rem;
font-weight: 600;
border-radius: 8px;
font-size: 0.95rem;
transition: all 0.2s;
text-decoration: none;
}
.btn-primary { background: #0366d6; color: #fff; }
.btn-primary:hover { background: #0256c5; text-decoration: none; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(3,102,214,0.3); }
.btn-secondary { background: #fff; color: #0366d6; border: 1px solid #d0d7de; }
.btn-secondary:hover { background: #f6f8fa; border-color: #0366d6; text-decoration: none; }
/* Sections */
.section { max-width: 1100px; margin: 0 auto; padding: 4rem 1.5rem; }
.section-alt { background: #f8f9fa; }
.section h2 { font-size: 1.75rem; margin-bottom: 0.5rem; color: #0d1117; }
.section .subtitle { color: #555; font-size: 1.05rem; margin-bottom: 2rem; }
.section img {
width: 100%;
max-width: 100%;
height: auto;
border-radius: 12px;
box-shadow: 0 4px 24px rgba(0,0,0,0.08);
}
/* Features grid */
.features {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.25rem;
margin-top: 2rem;
}
.feature {
background: #fff;
border: 1px solid #e5e5e5;
padding: 1.25rem;
border-radius: 10px;
transition: border-color 0.2s;
}
.feature:hover { border-color: #0366d6; }
.feature strong { display: block; color: #0366d6; margin-bottom: 0.25rem; font-size: 0.95rem; }
.feature p { font-size: 0.85rem; color: #555; }
/* Two-column layout */
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; overflow: hidden; }
.two-col > * { min-width: 0; } /* let grid items shrink so wide <pre> can't blow out the row */
.two-col img { width: 100%; max-width: 100%; height: auto; border-radius: 12px; box-shadow: 0 4px 24px rgba(0,0,0,0.08); }
.two-col-text h2 { font-size: 1.5rem; margin-bottom: 0.5rem; }
.two-col-text p { color: #555; line-height: 1.7; }
.two-col-text pre {
background: #0d1117;
color: #e6edf3;
padding: 1rem;
border-radius: 8px;
font-size: 0.85rem;
margin-top: 1rem;
overflow-x: auto;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.two-col-text pre .kw { color: #ff7b72; }
.two-col-text pre .str { color: #a5d6ff; }
.two-col-text pre .fn { color: #d2a8ff; }
/* Footer */
.footer {
max-width: 1100px;
margin: 0 auto;
padding: 2rem 1.5rem;
border-top: 1px solid #e5e5e5;
font-size: 0.85rem;
color: #666;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
gap: 1rem;
}
.footer a { color: #0366d6; }
/* Responsive */
@media (max-width: 768px) {
.hero h1 { font-size: 1.75rem; }
.hero .tagline { font-size: 1rem; }
.hero pre { font-size: 0.8rem; padding: 0.6rem 1rem; }
.section { padding: 2.5rem 1rem; }
.features { grid-template-columns: 1fr; }
.two-col { grid-template-columns: 1fr; gap: 1.5rem; }
.two-col-text pre { font-size: 0.75rem; }
.nav-links { gap: 0.75rem; font-size: 0.8rem; }
.footer { flex-direction: column; text-align: center; }
/* wrap code blocks instead of overflowing/scrolling, so they fit the viewport */
.hero pre, .two-col-text pre { white-space: pre-wrap; overflow-wrap: anywhere; overflow-x: visible; }
}
</style>
</head>
<body>
{% include marketing-nav.html %}
<section class="hero">
<div class="hero-inner">
<h1>An Agent Harness for Go</h1>
<p class="tagline">Build agents, services, and workflows on one runtime.</p>
<img src="/images/generated/hero.jpg" alt="Go Micro — an agent orchestrating services" style="width: 100%; max-width: 600px; height: auto; border-radius: 12px; box-shadow: 0 4px 24px rgba(0,0,0,0.08); margin: 0.5rem auto 1.5rem;" />
<pre>curl -fsSL https://go-micro.dev/install.sh | sh</pre>
<div class="hero-buttons">
<a href="/docs/getting-started.html" class="btn btn-primary">Get Started</a>
<a href="https://github.com/micro/go-micro" class="btn btn-secondary">View on GitHub</a>
</div>
</div>
</section>
<section class="section-alt">
<div class="section">
<h2>Features</h2>
<p class="subtitle">An agent harness and a service framework in one — agents, services, and flows on the same runtime, with the production pieces agents need.</p>
<div class="features">
<div class="feature">
<strong>Agent Harness</strong>
<p>A model, memory, tools, plan/delegate, guardrails, and execution middleware around every agent.</p>
</div>
<div class="feature">
<strong>Services as Tools</strong>
<p>Build services in Go or generate them from a prompt. Their endpoints become typed tools automatically.</p>
</div>
<div class="feature">
<strong>Durable Workflows</strong>
<p>Use fixed, checkpointed code paths for deterministic work; hand off to agents when the path is dynamic.</p>
</div>
<div class="feature">
<strong>MCP Gateway</strong>
<p>Every service endpoint is automatically an AI-callable tool via the Model Context Protocol.</p>
</div>
<div class="feature">
<strong>A2A Gateway</strong>
<p>Every agent is reachable over the Agent2Agent protocol — discovered and called by agents on any framework.</p>
</div>
<div class="feature">
<strong>Pluggable Everything</strong>
<p>All abstractions are Go interfaces. Swap any component without changing your code.</p>
</div>
</div>
</div>
</section>
<section class="section">
<div class="two-col">
<div>
<img src="/images/generated/mcp-agent.jpg" alt="AI agent calling microservices via MCP" />
</div>
<div class="two-col-text">
<h2>From Prompt Loop to Operating Harness</h2>
<p>Tell it what you need. The AI designs services, generates an agent, and drops you into an interactive console. The harness gives that agent tools, memory, guardrails, and workflows so it can operate across services.</p>
<pre><span class="kw">$</span> <span class="fn">micro run</span> <span class="str">--prompt "task management system"</span>
<span class="kw">&gt;</span> Create a project called Launch, add tasks, assign to Alice</pre>
<p><a href="/blog/16" class="btn btn-primary" style="margin-top: 0.75rem; display: inline-block;">Learn About Agents</a></p>
</div>
</div>
</section>
<section class="section-alt">
<div class="section">
<div class="two-col">
<div class="two-col-text">
<h2>Distributed Systems for Agents</h2>
<p>Agents need the same substrate services do: discovery, RPC, events, state, auth, observability, and deployment. Swap any component without changing your code — go from mDNS to Consul, or HTTP to gRPC, with a single option.</p>
</div>
<div>
<img src="/images/generated/architecture.jpg" alt="Go Micro architecture diagram" />
</div>
</div>
</div>
</section>
<section class="section">
<div class="two-col">
<div class="two-col-text">
<h2>Developer Experience</h2>
<p><code>micro new</code> scaffolds a service or an agent — every endpoint is automatically an MCP tool. <code>micro run</code> starts everything with hot reload, an API gateway, and an interactive console, and <code>micro chat</code> talks to your agents and services from the terminal.</p>
</div>
<div>
<img src="/images/generated/developer-experience.jpg" alt="Terminal showing micro run and micro chat" />
</div>
</div>
</section>
<section class="section" style="text-align: center;">
<h2>Sponsors</h2>
<p class="subtitle">Go Micro is supported by companies building the future of AI infrastructure.</p>
<div style="display: flex; align-items: center; justify-content: center; gap: 3rem; flex-wrap: wrap; margin-top: 1.5rem;">
<a href="/blog/3" style="text-decoration: none;">
<img src="https://upload.wikimedia.org/wikipedia/commons/7/78/Anthropic_logo.svg" alt="Anthropic" style="height: 28px; opacity: 0.7; transition: opacity 0.2s; box-shadow: none;" onmouseover="this.style.opacity='1'" onmouseout="this.style.opacity='0.7'" />
</a>
<a href="/blog/29" style="text-decoration: none;">
<img src="https://upload.wikimedia.org/wikipedia/commons/4/4d/OpenAI_Logo.svg" alt="OpenAI" style="height: 28px; opacity: 0.7; transition: opacity 0.2s; box-shadow: none;" onmouseover="this.style.opacity='1'" onmouseout="this.style.opacity='0.7'" />
</a>
<a href="/blog/8" style="text-decoration: none;">
<img src="https://www.atlascloud.ai/logo.svg" alt="Atlas Cloud" style="height: 28px; opacity: 0.7; transition: opacity 0.2s; box-shadow: none;" onmouseover="this.style.opacity='1'" onmouseout="this.style.opacity='0.7'" />
</a>
</div>
<p class="subtitle" style="margin-top: 2.25rem;">Want to support Go Micro and put your logo here? Or running it in production and need a hand?</p>
<div class="hero-buttons">
<a href="https://discord.gg/G8Gk5j3uXr" class="btn btn-secondary">Become a sponsor</a>
<a href="/support" class="btn btn-primary">Commercial support</a>
</div>
</section>
<section class="section-alt">
<div class="section" style="text-align: center;">
<h2>Trusted by Developers</h2>
<p class="subtitle">23,000+ stars on GitHub. Production-ready. Apache 2.0 licensed.</p>
<div class="hero-buttons">
<a href="/docs/getting-started.html" class="btn btn-primary">Get Started</a>
<a href="/docs/" class="btn btn-secondary">Read the Docs</a>
<a href="https://discord.gg/G8Gk5j3uXr" class="btn btn-secondary">Join Discord</a>
<a href="/blog/" class="btn btn-secondary">Blog</a>
</div>
</div>
</section>
{% include marketing-footer.html %}
</body>
</html>