Skip to content

Astromesh Prisma

Astromesh Prisma in development takes an agent you wrote for Astromesh and turns it into the target cloud’s own native agent, running on that cloud’s base resources. The YAML the runtime loads (kind: Agent, kind: RAGPipeline) stays the source of truth, and a reconcile loop drives the cloud toward it, the way a Kubernetes operator does.

On GCP, the native agent is an ADK agent config that Agent Engine deploys declaratively. Prisma does not generate agent code: it writes that config and wires it to Agent Engine Sessions, Memory Bank, a RAG Engine corpus and a Model Armor template.

Whatever the native agent cannot do the way Astromesh does is reported, section by section, with the reason. Three mechanisms keep that honest:

  • The coverage matrix is generated from the same registry that does the translation, so it cannot drift from the code. See Coverage.
  • A contract test walks every key of the core’s agent.schema.json and fails when the core adds one that Prisma has not decided on, either by mapping it or by naming the gap.
  • A test runs the generated agent inside ADK with a recording model in place of Gemini and checks the request it would send.

The GCP surface was read from the aiplatform v1 discovery document (revision 20260920) and the google-adk 2.10.0 source, not from memory.

In your YAMLOn GCPHow the native agent uses it
prompts.system, model, sampling settingsThe ADK configinstruction (or static_instruction), model, generate_content_config
memory.conversationalAgent Engine SessionsBuilt into the engine
memory.semanticThe engine’s Memory Bankpreload_memory reads it; a callback writes every turn
knowledge.pipelineThe RAG Engine corpus of that pipeline’s manifestA retrieval tool bound to the corpus
pii_detection guardrailA Model Armor templatemodel_armor_config, on the side the rule is declared
type: client tools—A long-running tool: the model asks, your app answers
builtin web_searchGoogle Search groundingADK’s GoogleSearchTool
orchestration.pattern: pipeline—A SequentialAgent with one sub-agent per stage

Model routing and fallback, episodic memory, integration/api/mcp tools, agent tools, and the parallel_fan_out, supervisor, swarm and glyph patterns do not translate. Each appears as a gap with its reason. The full mapping is in Translation to GCP.

Both put an Astromesh workload on GCP. They disagree about who runs it.

OrbitPrisma
What runs your agentThe Astromesh runtime, on infrastructure you ownThe cloud’s own managed agent service
What it producesTerraform you can eject to and keepNative cloud resources, reconciled continuously
You getThe whole runtime: every pattern, every tool typeWhat that cloud’s primitives can express
You give upNothing about the runtime; you operate itRuntime features the cloud has no home for
StatusReleased (v0.4.4)In development

Choose Orbit to run the runtime on GCP today. Prisma is for handing the workload to the cloud’s managed service, accepting a smaller surface — which is why the coverage matrix exists.

astromesh_prisma/
spec/ the manifest as pydantic models (Agent, RAGPipeline)
mapping/ HomologMappingRegistry (section → mapper), ManifestRouter (by kind),
coverage generator
providers/ CloudProvider protocol; gcp/ and an in-memory fake
gcp/adk.py Agent → ADK agent config + bindings
gcp/runtime/ prisma_tools.py, shipped with the config to Agent Engine
reconcile/ observe → diff → apply, per (kind, name)
state/ submitted manifests, keyed by (kind, name)
api/ the FastAPI surface

Identity is (kind, name), not name: an Agent and a RAGPipeline with the same name are two things, and a single-key store used to lose one of them.

  • Nothing is provisioned for real. Every run goes through the in-memory gateway. The real GCP gateway is designed and parked.
  • Bindings are not resolved. Turning prisma:// references into real resource names, building the engine’s source archive and waiting on long-running operations are the real gateway’s job.
  • Submitted manifests live in memory and are lost when the process stops.
  • Marketplace distribution is a plan, not a capability.
Run it locally and translate an agentQuick Start
What each section becomes on GCPTranslation to GCP
Every section and its statusCoverage
The HTTP routesAPI Reference
Run the runtime itself on GCP, todayAstromesh Orbit