westmere-recsys
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WESTMERE_SEED | No | Seed for the random number generator. | |
| WESTMERE_MAX_K | No | Maximum allowed value of the recommend request's k parameter. | |
| WESTMERE_PROVIDER | No | Scoring provider to use: 'stub' (offline deterministic) or 'real' (OpenAI-compatible). | stub |
| WESTMERE_LOG_LEVEL | No | Logging level (e.g., DEBUG, INFO). | |
| WESTMERE_PRIOR_BETA | No | Beta parameter for the Beta-Bernoulli prior. | |
| WESTMERE_LLM_API_KEY | No | API key for the OpenAI-compatible LLM endpoint. Required when WESTMERE_PROVIDER=real. | |
| WESTMERE_PRIOR_ALPHA | No | Alpha parameter for the Beta-Bernoulli prior. | |
| WESTMERE_LLM_BASE_URL | No | Base URL for the OpenAI-compatible LLM endpoint. Optional; defaults to the provider's default. | |
| WESTMERE_EXPLORE_WEIGHT | No | Fixed weight for blending exploration with the Thompson sample. | |
| WESTMERE_MAX_CANDIDATES | No | Maximum number of candidates allowed per recommend request. | |
| WESTMERE_MAX_PRICE_CENTS | No | Maximum candidate price in cents. | |
| WESTMERE_PER_TENANT_CAPS | No | JSON object mapping tenant IDs to their monthly spending cap in cents. | |
| WESTMERE_REQUIRE_IN_STOCK | No | 'true' to require candidates to be in stock. | |
| WESTMERE_DEFAULT_CAP_CENTS | No | Default monthly spend cap per tenant in cents. Used when no --config is given. | |
| WESTMERE_EXCLUDE_CATEGORIES | No | JSON array of category names to exclude from recommendations. | |
| WESTMERE_PROVIDER_COST_CENTS | No | Cost per provider call in cents. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| recommendC | Rank candidate items for a tenant under the monthly spend cap. |
| record_feedbackC | Record an observed reward in [0,1] for an arm. |
| budget_statusC | Report a tenant's monthly spend and remaining cap. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: recommend generates candidate rankings under budget, record_feedback logs observed rewards, and budget_status reports spend/remaining cap. There is no meaningful overlap between them.
The names are readable but not fully consistent: 'record_feedback' follows a verb_noun pattern, 'recommend' is a bare verb, and 'budget_status' is noun_noun without an action verb. A consistent set like 'recommend_items', 'record_feedback', and 'get_budget_status' would improve predictability.
Three tools is a well-scoped size for a focused recommendation/bandit service. Each tool covers a necessary part of the core workflow: recommending, recording feedback, and checking budget.
The core loop of recommend -> record_feedback -> check budget is covered, and there are no dead ends in that workflow. However, there is no tool for managing tenants, candidate items, or budget configuration, which are minor gaps if the server is expected to handle those resources.