For the full specification, see 12-prompt-architecture.md.
Two Prompt Types
| Aspect | Provider-Prompt | Agent-Prompt |
|---|---|---|
| Scope | Single namespace | Multiple providers |
| Model | Model-neutral | Model-specific (testedWith) |
| Field | namespace | agent |
dependsOn | Bare names (getPrice) | Full IDs (ns/tool/name) |
| Location | providers/{ns}/prompts/ | agents/{name}/prompts/ |
Provider-Prompt Example
Agent-Prompt Example
Placeholder Syntax
Prompts use[[...]] placeholders for dynamic content:
| Pattern | Type | Example |
|---|---|---|
[[name]] (no /) | Parameter (user input) | [[tokenSymbol]], [[chainId]] |
[[ns/tool/name]] (with /) | Reference (resolved via ID) | [[coingecko-com/tool/simplePrice]] |
Composable References
Prompts can reference other prompts via thereferences[] field (maximum 1 level deep):
Validation Rules
| Code | Rule |
|---|---|
| PRM001 | version must be "flowmcp-prompt/1.0.0" |
| PRM002 | Provider-Prompt must have namespace, must NOT have agent or testedWith |
| PRM003 | Agent-Prompt must have agent and testedWith, must NOT have namespace |
| PRM004 | dependsOn tools must use bare names in Provider-Prompts |
| PRM005 | dependsOn tools must use full IDs in Agent-Prompts |
| PRM006 | references[] limited to 1 level deep |