Agents
Glimmer runs two kinds of agent, deliberately separated.
The public site agent
Lives on the explore hub (opens in a new tab). It's the guide to the platform: it answers "what is Glimmer?", "what is the ADS project?", "how do I explore or join a study?". It's grounded in the public project catalog — the required public summary of every project (see Public data policy) — and nothing else. It never sees gated study data, so it's safe for anonymous visitors.
Requests carry scope: "site"; the backend (explain_proxy.py) builds its
system prompt from SYS_PUBLIC plus a compact catalog of all projects' public
fields.
Study agents
Each study landing has its own Ask box scoped to that study
(project: "<id>"). The study agent is grounded in that project's public
summary today, and — as the architecture matures — in the study's own knowledge
graph. It speaks for one study, not the platform.
Why separate
- Blast radius. The public agent can't accidentally surface gated data; it only ever has the public catalog.
- Voice & scope. The site agent is a welcoming guide; a study agent is a domain expert on its own graph.
- Path to per-tenant agents. This split is the seam along which each study becomes a tenant with its own dedicated agent.
The notebook tutor (the floating "Ask Glimmer" in the runnable notebooks) is a third, separate context — it explains ICA/SOM notebooks and their metrics.