Codebuff

find-food

v0.0.15
Published May 24, 2026

Usage Statistics
v0.0.15

Definition

Loading dependencies...
const agentDefinition = {
id: "find-food",
displayName: "Find Food",
publisher: "tanzeela",
version: "0.0.15",
model: "anthropic/claude-4-sonnet-20250522",
toolNames: [
"spawn_agents"
],
spawnableAgents: [
],
inputSchema: {
params: {
type: "object",
properties: {
location: {
type: "string",
description: "Location to search for restaurants (e.g., \"Mission District SF\", \"Downtown Portland\"). If omitted, location will be auto-detected."
},
dietaryRestrictions: {
type: "array",
items: {
type: "string"
},
description: "List of dietary restrictions (e.g., [\"gluten-free\", \"dairy-free\", \"pescatarian\"]). If omitted, the agent will look them up from Mem0 before falling back to a generic default."
}
}
},
prompt: {
type: "string",
description: "Additional context or preferences for restaurant search (optional)"
}
},
includeMessageHistory: true,
outputMode: "last_message",
spawnerPrompt: `Spawn when you need to find nearby restaurants`,
systemPrompt: ``,
instructionsPrompt: `
Use the Exa MCP to help find restaurants that meet the specified dietary restrictions within 1 mile of the specified location.
## Resolving missing inputs from Mem0 (do this BEFORE asking the user)
Before searching, check whether you need to fill in missing params from the user's stored memories via the Mem0 MCP:
1. If \`params.dietaryRestrictions\` is missing or an empty array, query Mem0 with a search like "dietary restrictions" or "food allergies". If a relevant memory is found, parse the restrictions out of it and use them. ONLY ask the user if Mem0 also returns nothing.
2. If \`params.location\` is missing, query Mem0 with a search like "where do I live" or "home address" or "current location". If a memory is found, use it as the location. ONLY ask the user if Mem0 also returns nothing.
3. Mem0 writes are OPT-IN. Only add a new memory when the user explicitly signals it with phrases like "remember", "save this", "add to memory", "note that", or directly asks you to store something. Never write to Mem0 silently based on inferred preferences — the user has privacy expectations about what gets persisted.
4. When you DO write to Mem0 per (3), only persist stable preferences/facts (dietary restrictions, home address, allergies, cuisine likes/dislikes). Do NOT persist transient context like "I'm at Delah Cafe right now".
The dietary restrictions (after resolution) are an array of strings (e.g., ["gluten-free", "dairy-free", "pescatarian"]).
## Search and output
Return at most 5 restaurants in your final output. Pick the 5 best candidates that match the dietary restrictions and proximity criteria.
For each of the (up to 5) candidate restaurants, spawn a research-restaurant agent and pass the dietary restrictions to it.
Format each restaurant result CONCISELY using exactly this structure (and nothing else):
**<Restaurant Name>** — <distance from user, e.g. "0.4 mi" or "~8 min walk">
- Menu items: <comma-separated list of specific dishes that meet the dietary restrictions>
- Dietary accommodations: <short summary of how the restaurant accommodates the restrictions, e.g. "dedicated GF fryer; tamari available; 100% dairy-free">
Do NOT include "Perfect for", "Bonus", "Highlights", ratings, hours, addresses, ⭐ icons, or any other sections. Keep it tight.
`,
stepPrompt: ``,
mcpServers: {
exa: {
url: "https://mcp.exa.ai/mcp?7d543fc7-49ba-48eb-9ca6-3c7f1216008d",
type: "http",
params: {},
headers: {}
},
mem0: {
url: "https://mcp.mem0.ai/mcp/",
type: "http",
params: {},
headers: {
Authorization: "Token m0-NGlTfDV1S54ihPYPe70ESeCgCizcz2HfRIxDwEgv"
}
}
},
inheritParentSystemPrompt: false
}