{"adoption": {"forks": 2418, "observed_at": "2026-08-28T04:11:34.359833+00:00", "stars": 23043}, "canonical_url": "https://ross.abutalabs.com/products/go-micro", "card": {"archived": false, "artifact_type": "framework", "description": "A Go agent harness and service framework", "domain": ["microservices", "large-language-models", "backend", "developer-tools", "apis"], "enriched": true, "function": ["agent-framework", "rpc", "mcp", "web-framework", "workflow-automation", "chatbot", "llm-inference", "middleware", "service-discovery", "cli"], "health_score": 100, "homepage": "https://go-micro.dev", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["micro/go-micro"], "name": "micro/go-micro", "platform": ["go", "windows", "cli", "self-hosted"], "pushed_at": "2026-08-25T06:03:58+00:00", "repo": "micro/go-micro", "stars": 23043, "tags": ["agent-harness", "a2a-protocol", "mcp-gateway", "services-as-tools", "durable-workflows", "code-generation", "microservices-framework", "pluggable-architecture", "ai-agents", "automation", "linux", "macos", "docker"], "topics": ["go", "golang", "micro", "microservices", "distributed-systems", "ai", "ai-agents", "mcp"], "urls": [], "use_cases": ["build AI agents in Go with tools and memory", "expose microservice endpoints as MCP tools for LLMs", "generate services from a natural language prompt", "orchestrate multi-agent workflows with durable flows", "make agents discoverable via the A2A protocol", "scaffold and hot-reload microservices locally with a CLI", "build a chatbot that talks to backend services"], "what_it_is": "Go Micro is a Go framework and CLI that combines an AI agent harness with a microservices framework, giving agents tools, memory, guardrails, planning, and service discovery on one runtime. Service endpoints automatically become AI-callable tools via MCP, agents are reachable over the A2A protocol, and deterministic work is orchestrated with durable, checkpointed flows.", "when_to_avoid": ["you need a lightweight agent library without a full service framework", "your stack is Python or TypeScript rather than Go", "you want a minimal HTTP framework without AI/agent features", "you need a very mature, conservative framework — the agent features are new and evolving"], "when_to_choose": ["you're building agents or agent-backed services in Go", "you want MCP/A2A interoperability out of the box", "you need a batteries-included microservices runtime with pluggable discovery, RPC, and pub/sub", "you want deterministic workflows that hand off to LLM agents"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/go-micro", "repo": "micro/go-micro", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:56:48.927780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae6ee06153d91b4220b8ef2dcfa62eaa7cb543eb11b8872c4469ca1504022d80", "fetched_at": "2026-08-28T04:11:34.359833+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micro/go-micro"}, {"content_hash": "5139b4350f5cf3bb99e89ad4d9d5b3b3d0019ec1694279ef5466970cba16efda", "fetched_at": "2026-08-29T07:54:49.386747+00:00", "kind": "homepage", "missing": false, "url": "https://go-micro.dev"}, {"content_hash": "143bcdcf8f9609b0ea2bdbac0a9c4ef8d6b3bad238dc5a0decd668ab714caa4f", "fetched_at": "2026-08-29T07:54:49.396069+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/index.html"}, {"content_hash": "3654a2179d55630b151d1f85261d90b2046294942a8c409de359404fb58c61c5", "fetched_at": "2026-08-29T07:54:49.398697+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs"}, {"content_hash": "4b1e88b82a12e68500f67cfed9d879b561a8c46457db99552bf2ef0fe8a07480", "fetched_at": "2026-08-29T07:54:49.402548+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/getting-started.html"}, {"content_hash": "efeb29f55ae208247bb82b7f26b24d1061abea187bda2289fa3e46bfbe4e7ec5", "fetched_at": "2026-08-29T07:54:49.400623+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:56:48.927780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae6ee06153d91b4220b8ef2dcfa62eaa7cb543eb11b8872c4469ca1504022d80", "fetched_at": "2026-08-28T04:11:34.359833+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micro/go-micro"}, {"content_hash": "5139b4350f5cf3bb99e89ad4d9d5b3b3d0019ec1694279ef5466970cba16efda", "fetched_at": "2026-08-29T07:54:49.386747+00:00", "kind": "homepage", "missing": false, "url": "https://go-micro.dev"}, {"content_hash": "143bcdcf8f9609b0ea2bdbac0a9c4ef8d6b3bad238dc5a0decd668ab714caa4f", "fetched_at": "2026-08-29T07:54:49.396069+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/index.html"}, {"content_hash": "3654a2179d55630b151d1f85261d90b2046294942a8c409de359404fb58c61c5", "fetched_at": "2026-08-29T07:54:49.398697+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs"}, {"content_hash": "4b1e88b82a12e68500f67cfed9d879b561a8c46457db99552bf2ef0fe8a07480", "fetched_at": "2026-08-29T07:54:49.402548+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/getting-started.html"}, {"content_hash": "efeb29f55ae208247bb82b7f26b24d1061abea187bda2289fa3e46bfbe4e7ec5", "fetched_at": "2026-08-29T07:54:49.400623+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:56:48.927780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae6ee06153d91b4220b8ef2dcfa62eaa7cb543eb11b8872c4469ca1504022d80", "fetched_at": "2026-08-28T04:11:34.359833+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micro/go-micro"}, {"content_hash": "5139b4350f5cf3bb99e89ad4d9d5b3b3d0019ec1694279ef5466970cba16efda", "fetched_at": "2026-08-29T07:54:49.386747+00:00", "kind": "homepage", "missing": false, "url": "https://go-micro.dev"}, {"content_hash": "143bcdcf8f9609b0ea2bdbac0a9c4ef8d6b3bad238dc5a0decd668ab714caa4f", "fetched_at": "2026-08-29T07:54:49.396069+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/index.html"}, {"content_hash": "3654a2179d55630b151d1f85261d90b2046294942a8c409de359404fb58c61c5", "fetched_at": "2026-08-29T07:54:49.398697+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs"}, {"content_hash": "4b1e88b82a12e68500f67cfed9d879b561a8c46457db99552bf2ef0fe8a07480", "fetched_at": "2026-08-29T07:54:49.402548+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/getting-started.html"}, {"content_hash": "efeb29f55ae208247bb82b7f26b24d1061abea187bda2289fa3e46bfbe4e7ec5", "fetched_at": "2026-08-29T07:54:49.400623+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:56:48.927780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae6ee06153d91b4220b8ef2dcfa62eaa7cb543eb11b8872c4469ca1504022d80", "fetched_at": "2026-08-28T04:11:34.359833+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micro/go-micro"}, {"content_hash": "5139b4350f5cf3bb99e89ad4d9d5b3b3d0019ec1694279ef5466970cba16efda", "fetched_at": "2026-08-29T07:54:49.386747+00:00", "kind": "homepage", "missing": false, "url": "https://go-micro.dev"}, {"content_hash": "143bcdcf8f9609b0ea2bdbac0a9c4ef8d6b3bad238dc5a0decd668ab714caa4f", "fetched_at": "2026-08-29T07:54:49.396069+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/index.html"}, {"content_hash": "3654a2179d55630b151d1f85261d90b2046294942a8c409de359404fb58c61c5", "fetched_at": "2026-08-29T07:54:49.398697+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs"}, {"content_hash": "4b1e88b82a12e68500f67cfed9d879b561a8c46457db99552bf2ef0fe8a07480", "fetched_at": "2026-08-29T07:54:49.402548+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/getting-started.html"}, {"content_hash": "efeb29f55ae208247bb82b7f26b24d1061abea187bda2289fa3e46bfbe4e7ec5", "fetched_at": "2026-08-29T07:54:49.400623+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:56:48.927780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae6ee06153d91b4220b8ef2dcfa62eaa7cb543eb11b8872c4469ca1504022d80", "fetched_at": "2026-08-28T04:11:34.359833+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micro/go-micro"}, {"content_hash": "5139b4350f5cf3bb99e89ad4d9d5b3b3d0019ec1694279ef5466970cba16efda", "fetched_at": "2026-08-29T07:54:49.386747+00:00", "kind": "homepage", "missing": false, "url": "https://go-micro.dev"}, {"content_hash": "143bcdcf8f9609b0ea2bdbac0a9c4ef8d6b3bad238dc5a0decd668ab714caa4f", "fetched_at": "2026-08-29T07:54:49.396069+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/index.html"}, {"content_hash": "3654a2179d55630b151d1f85261d90b2046294942a8c409de359404fb58c61c5", "fetched_at": "2026-08-29T07:54:49.398697+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs"}, {"content_hash": "4b1e88b82a12e68500f67cfed9d879b561a8c46457db99552bf2ef0fe8a07480", "fetched_at": "2026-08-29T07:54:49.402548+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/getting-started.html"}, {"content_hash": "efeb29f55ae208247bb82b7f26b24d1061abea187bda2289fa3e46bfbe4e7ec5", "fetched_at": "2026-08-29T07:54:49.400623+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:56:48.927780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae6ee06153d91b4220b8ef2dcfa62eaa7cb543eb11b8872c4469ca1504022d80", "fetched_at": "2026-08-28T04:11:34.359833+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micro/go-micro"}, {"content_hash": "5139b4350f5cf3bb99e89ad4d9d5b3b3d0019ec1694279ef5466970cba16efda", "fetched_at": "2026-08-29T07:54:49.386747+00:00", "kind": "homepage", "missing": false, "url": "https://go-micro.dev"}, {"content_hash": "143bcdcf8f9609b0ea2bdbac0a9c4ef8d6b3bad238dc5a0decd668ab714caa4f", "fetched_at": "2026-08-29T07:54:49.396069+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/index.html"}, {"content_hash": "3654a2179d55630b151d1f85261d90b2046294942a8c409de359404fb58c61c5", "fetched_at": "2026-08-29T07:54:49.398697+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs"}, {"content_hash": "4b1e88b82a12e68500f67cfed9d879b561a8c46457db99552bf2ef0fe8a07480", "fetched_at": "2026-08-29T07:54:49.402548+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/getting-started.html"}, {"content_hash": "efeb29f55ae208247bb82b7f26b24d1061abea187bda2289fa3e46bfbe4e7ec5", "fetched_at": "2026-08-29T07:54:49.400623+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.359833+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:56:48.927780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae6ee06153d91b4220b8ef2dcfa62eaa7cb543eb11b8872c4469ca1504022d80", "fetched_at": "2026-08-28T04:11:34.359833+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micro/go-micro"}, {"content_hash": "5139b4350f5cf3bb99e89ad4d9d5b3b3d0019ec1694279ef5466970cba16efda", "fetched_at": "2026-08-29T07:54:49.386747+00:00", "kind": "homepage", "missing": false, "url": "https://go-micro.dev"}, {"content_hash": "143bcdcf8f9609b0ea2bdbac0a9c4ef8d6b3bad238dc5a0decd668ab714caa4f", "fetched_at": "2026-08-29T07:54:49.396069+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/index.html"}, {"content_hash": "3654a2179d55630b151d1f85261d90b2046294942a8c409de359404fb58c61c5", "fetched_at": "2026-08-29T07:54:49.398697+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs"}, {"content_hash": "4b1e88b82a12e68500f67cfed9d879b561a8c46457db99552bf2ef0fe8a07480", "fetched_at": "2026-08-29T07:54:49.402548+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/getting-started.html"}, {"content_hash": "efeb29f55ae208247bb82b7f26b24d1061abea187bda2289fa3e46bfbe4e7ec5", "fetched_at": "2026-08-29T07:54:49.400623+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:56:48.927780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae6ee06153d91b4220b8ef2dcfa62eaa7cb543eb11b8872c4469ca1504022d80", "fetched_at": "2026-08-28T04:11:34.359833+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micro/go-micro"}, {"content_hash": "5139b4350f5cf3bb99e89ad4d9d5b3b3d0019ec1694279ef5466970cba16efda", "fetched_at": "2026-08-29T07:54:49.386747+00:00", "kind": "homepage", "missing": false, "url": "https://go-micro.dev"}, {"content_hash": "143bcdcf8f9609b0ea2bdbac0a9c4ef8d6b3bad238dc5a0decd668ab714caa4f", "fetched_at": "2026-08-29T07:54:49.396069+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/index.html"}, {"content_hash": "3654a2179d55630b151d1f85261d90b2046294942a8c409de359404fb58c61c5", "fetched_at": "2026-08-29T07:54:49.398697+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs"}, {"content_hash": "4b1e88b82a12e68500f67cfed9d879b561a8c46457db99552bf2ef0fe8a07480", "fetched_at": "2026-08-29T07:54:49.402548+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/getting-started.html"}, {"content_hash": "efeb29f55ae208247bb82b7f26b24d1061abea187bda2289fa3e46bfbe4e7ec5", "fetched_at": "2026-08-29T07:54:49.400623+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:56:48.927780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae6ee06153d91b4220b8ef2dcfa62eaa7cb543eb11b8872c4469ca1504022d80", "fetched_at": "2026-08-28T04:11:34.359833+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micro/go-micro"}, {"content_hash": "5139b4350f5cf3bb99e89ad4d9d5b3b3d0019ec1694279ef5466970cba16efda", "fetched_at": "2026-08-29T07:54:49.386747+00:00", "kind": "homepage", "missing": false, "url": "https://go-micro.dev"}, {"content_hash": "143bcdcf8f9609b0ea2bdbac0a9c4ef8d6b3bad238dc5a0decd668ab714caa4f", "fetched_at": "2026-08-29T07:54:49.396069+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/index.html"}, {"content_hash": "3654a2179d55630b151d1f85261d90b2046294942a8c409de359404fb58c61c5", "fetched_at": "2026-08-29T07:54:49.398697+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs"}, {"content_hash": "4b1e88b82a12e68500f67cfed9d879b561a8c46457db99552bf2ef0fe8a07480", "fetched_at": "2026-08-29T07:54:49.402548+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/getting-started.html"}, {"content_hash": "efeb29f55ae208247bb82b7f26b24d1061abea187bda2289fa3e46bfbe4e7ec5", "fetched_at": "2026-08-29T07:54:49.400623+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:56:48.927780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae6ee06153d91b4220b8ef2dcfa62eaa7cb543eb11b8872c4469ca1504022d80", "fetched_at": "2026-08-28T04:11:34.359833+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micro/go-micro"}, {"content_hash": "5139b4350f5cf3bb99e89ad4d9d5b3b3d0019ec1694279ef5466970cba16efda", "fetched_at": "2026-08-29T07:54:49.386747+00:00", "kind": "homepage", "missing": false, "url": "https://go-micro.dev"}, {"content_hash": "143bcdcf8f9609b0ea2bdbac0a9c4ef8d6b3bad238dc5a0decd668ab714caa4f", "fetched_at": "2026-08-29T07:54:49.396069+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/index.html"}, {"content_hash": "3654a2179d55630b151d1f85261d90b2046294942a8c409de359404fb58c61c5", "fetched_at": "2026-08-29T07:54:49.398697+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs"}, {"content_hash": "4b1e88b82a12e68500f67cfed9d879b561a8c46457db99552bf2ef0fe8a07480", "fetched_at": "2026-08-29T07:54:49.402548+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/docs/getting-started.html"}, {"content_hash": "efeb29f55ae208247bb82b7f26b24d1061abea187bda2289fa3e46bfbe4e7ec5", "fetched_at": "2026-08-29T07:54:49.400623+00:00", "kind": "site_page", "missing": false, "url": "https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4250, "days_push": 8, "days_rel": 8, "gap_med": 1.0, "n_releases_24m": 63}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}