Older documentation. Start with the current guides.

Architecture

Go Micro began as a framework for service communication. RPC clients and servers, service discovery, codecs, transports, and pub/sub let applications communicate without tying their business logic to one infrastructure provider. Storage, configuration, and authentication support that same application boundary.

Agents extend this foundation: a service endpoint can also be a tool. The services → agents → workflows lifecycle describes how these components compose; it is not a requirement to adopt all of them or a replacement for RPC.

ComponentResponsibilityPublic entry point
ServiceImplement capabilities and own application datamicro.NewService
ModelAdapt model requests, responses, and tool calls to a providermodel.Model
AgentInterpret a request and use tools, memory, and execution controlsmicro.NewAgent
WorkflowCoordinate predefined steps, with agent decisions where neededmicro.NewFlow
ApplicationCombine these components with users, interfaces, and usable outputsYour program or a runtime such as Mu

Service substrate

Services remain useful without a model or agent:

These are pluggable Go interfaces. Choosing a registry, broker, or store does not change a service’s business methods. Deployments still need to configure their backends, permissions, and persistence; the interfaces do not make a deployment secure or durable automatically.

Agent harness

The AI packages build on those service contracts:

A request arrives through Ask, RPC, or a gateway. The agent presents its tools to the model, executes requested calls, and returns a reply with tool-call and run metadata. The service owns the action and its data; the agent chooses when to use it. Tool selection is not a substitute for service-side authorization.

There is currently a split in execution responsibility: provider adapters can perform repeated tool calls inside Generate when a tool handler is supplied, while the agent adds guardrails, run tracking, and plan-completion logic around those calls. CLI development chat and multi-agent routing use this same agent harness, with memory and plans stored separately for each conversation. Provider-level tool iteration and agent-level execution control remain separate responsibilities.

See AI Integration, guardrails, and durability and recovery.

Workflows

Use flow when the sequence is defined: call a service, validate a result, dispatch to an agent, and save the outcome. Flows can react to broker events or run through their execution APIs. A prompt-driven flow can also let a model choose tools; a workflow does not require every step to use a model.

Flows save checkpoints between steps. Recovery needs persistent storage, and an interrupted step may execute again. An agent’s plan is its working plan; a workflow is the sequence defined by application code. Neither is automatically a user-facing task queue or a guarantee that an external action succeeded.

See Agents and Workflows.

Interop gateways

Gateways derive their service and agent descriptions from registry metadata. An application can expose the same capabilities to Go clients, agents, and a UI.

Services, agents, and flows

Services expose capabilities and own their data. Agents choose capabilities in response to a goal. Flows coordinate explicit steps, calling services and agents where needed. The same service remains usable directly, without a model.

The next development priority is consistent execution across these boundaries: run identity, completion, cancellation, retry budgets, approval, and recovery. Existing checkpoints are useful, but interrupted operations can execute again; external effects require service-level idempotency. See the v7 plan for the implementation sequence and acceptance criteria.

Applications can provide interfaces and store outputs using these components. App generation, rendering, publishing, and product accounts belong to applications and hosts such as Mu. Go Micro does not define a separate app package.

Developer path

  1. Quick Start: develop services through conversation.
  2. Getting Started: create a Go agent and choose its tools.
  3. Your First Agent: run a complete service-backed agent.
  4. Debugging your agent: inspect tools and run history.

For a provider-free walkthrough, use the first-agent example. The 0→hero Reference contains the maintained lifecycle checks. See the API reference for individual interfaces and the CLI reference for project generation and development commands.