Quick Start
-
Run it.
Terminal window git clone https://github.com/monaccode/astromesh-prisma.gitcd astromesh-prismauv sync --extra devuv run uvicorn astromesh_prisma.app:app --port 8100astromesh_prisma.app:appis the app with the GCP registry and the in-memory gateway, as the Dockerfile runs it. The GCP client libraries are an extra (--extra gcp) that the tests do not need. -
Translate an agent.
/v1/translateshows what a manifest becomes without storing it:Terminal window curl -s localhost:8100/v1/translate -H 'content-type: application/json' \-d "$(jq -Rs '{yaml: .}' support-agent.agent.yaml)" | jqThe answer has the native resources (here a
vertex.agent_enginewith its ADK config, and amodelarmor.templateif the agent redacts PII) and the gaps:{"kind": "Agent", "name": "support-agent", "provider": "gcp","resources": [{"resource_type": "vertex.agent_engine", "name": "support-agent","source_section": "identity", "config": {"…": "…"}}],"gaps": [{"section": "model.fallback", "coverage": "unsupported","detail": "model candidate(s) llama3.1:8b are dropped: the native agent calls only the first one"}]}For a model the native agent can call, use Gemini the way the core reaches it, through litellm:
source: litellm,model: vertex_ai/gemini-2.5-flash. -
Translate its knowledge pipeline, if the agent has
spec.knowledge. The agent refers to the corpus through a binding; the pipeline’s own manifest is what provisions it:Terminal window curl -s localhost:8100/v1/translate -H 'content-type: application/json' \-d "$(jq -Rs '{yaml: .}' help-center.rag.yaml)" | jq '.resources[].resource_type'# "vertex.rag_corpus" -
Submit and reconcile.
Terminal window curl -s localhost:8100/v1/specs -H 'content-type: application/json' \-d "$(jq -Rs '{yaml: .}' support-agent.agent.yaml)"# {"kind": "Agent", "name": "support-agent"}curl -s -X POST localhost:8100/v1/specs/Agent/support-agent/reconcile# {"created": ["support-agent"], "updated": [], "deleted": [], "gaps": ["…"]}Reconcile again without changes and nothing is created or updated. Change the prompt or a tool, submit, reconcile, and the engine shows up in
updated.
Run the tests
Section titled “Run the tests”uv run pytest -vThe suite runs offline. It includes the contract test against the core’s agent schema and the test that runs a generated agent inside ADK.
Next steps
Section titled “Next steps”- Translation to GCP — what is in that ADK config
- Coverage — every gap Prisma can report