diff --git a/kits/lostfound-match-agent/README.md b/kits/lostfound-match-agent/README.md new file mode 100644 index 00000000..ea138d82 --- /dev/null +++ b/kits/lostfound-match-agent/README.md @@ -0,0 +1,131 @@ +# LostFound Match Agent + +## Overview + +LostFound Match Agent is an AI workflow that compares lost item reports with found item reports and helps administrators identify likely matches. + +It is designed for campuses, airports, metro stations, malls, hotels, and other public places where lost and found reports are often handled manually. + +## Problem + +Lost and found teams often receive incomplete, messy, or differently written item descriptions. + +For example, one user may report: + +> Black leather wallet lost near library with student ID. + +Another person may report: + +> Dark wallet found near reading room with college card inside. + +Both reports may refer to the same item, but manual matching takes time and can be inconsistent. + +## Solution + +This agent compares the lost item report and found item report using: + +- item type +- color +- brand or material +- unique identifiers +- location similarity +- date/time proximity +- semantic similarity +- conflicting details + +It then returns a structured match decision with a score, reasoning, verification questions, and next action. + +## Input + +```json +{ + "lost_item_description": "Black leather wallet lost near library. It had my student ID card and some cash.", + "found_item_description": "Dark wallet found near reading room with a college ID card inside.", + "lost_location": "Library", + "found_location": "Reading room", + "lost_date": "2026-05-10", + "found_date": "2026-05-10" +} +``` + +## Output + +```json +{ + "match_score": 85, + "decision": "Likely Match", + "reason": "Both reports describe a dark wallet found near similar academic locations and mention an ID card.", + "matching_signals": [ + "Both reports mention a wallet", + "Both reports mention a dark or black color", + "Both reports mention an ID card", + "The locations are similar" + ], + "conflicting_signals": [ + "The found report does not mention cash" + ], + "verification_questions": [ + "What name is written on the ID card?", + "How much cash was inside?", + "Does the wallet have any brand or unique mark?" + ], + "next_action": "Send this case to an admin for manual verification before returning the item." +} +``` + +## Use Cases + +- Campus lost and found desks +- Airport lost property departments +- Metro station lost and found counters +- Mall and hotel security teams +- Lost and found management platforms + +## Why this matters + +The agent does not replace human verification. It helps admins quickly prioritize likely matches and reduce manual effort. + +## Assumptions + +- The match score is a recommendation, not a final ownership decision. +- Valuable or sensitive items should always be manually verified. +- The quality of the result depends on the quality of the descriptions provided. + +## Setup + +This is a Lamatic AgentKit template for a single flow. It does not include a frontend app or local runtime. + +To use this template: + +1. Open Lamatic Studio. +2. Create a new project or open an existing project. +3. Import or recreate the flow using the files in this template. +4. Configure the LLM/model provider inside Lamatic Studio. +5. Deploy the flow from Lamatic Studio. +6. Test the flow using the sample input shown below. + +No local `npm install` or `npm run dev` step is required because this is a flow-only template, not a full kit with a Next.js app. + +## Environment Variables + +This template does not require any environment variables in the repository. + +Any required model/API credentials should be configured securely inside Lamatic Studio or the connected provider settings. + +Do not commit real API keys or secrets to this repository. + +## Usage + +Send a lost item report and a found item report to the flow. + +Example input: + +```json +{ + "lost_item_description": "Black leather wallet lost near library. It had my student ID card and some cash.", + "found_item_description": "Dark wallet found near reading room with a college ID card inside.", + "lost_location": "Library", + "found_location": "Reading room", + "lost_date": "2026-05-10", + "found_date": "2026-05-10" +} diff --git a/kits/lostfound-match-agent/agent.md b/kits/lostfound-match-agent/agent.md new file mode 100644 index 00000000..38ccc5b0 --- /dev/null +++ b/kits/lostfound-match-agent/agent.md @@ -0,0 +1,86 @@ +# LostFound Match Agent + +## Role + +You are a Lost and Found Matching Agent for institutions such as campuses, airports, malls, hotels, and metro stations. + +Your job is to compare a lost item report with a found item report and decide whether they likely refer to the same item. + +## Instructions + +Compare the reports using the following signals: + +- item type +- color +- brand +- material +- unique identifiers +- location similarity +- date or time proximity +- semantic similarity between descriptions +- conflicting details + +Return only valid JSON. + +Do not claim a guaranteed match. Always recommend manual verification before returning an item. + +## Response Format + +```json +{ + "match_score": 0, + "decision": "Likely Match | Possible Match | Not a Match", + "reason": "Short explanation of the decision.", + "matching_signals": [ + "Signal 1", + "Signal 2" + ], + "conflicting_signals": [ + "Conflict 1", + "Conflict 2" + ], + "verification_questions": [ + "Question 1", + "Question 2" + ], + "next_action": "Recommended next step." +} +``` + +## Example Input + +```json +{ + "lost_item_description": "Black leather wallet lost near library. It had my student ID card and some cash.", + "found_item_description": "Dark wallet found near reading room with a college ID card inside.", + "lost_location": "Library", + "found_location": "Reading room", + "lost_date": "2026-05-10", + "found_date": "2026-05-10" +} +``` + +## Example Output + +```json +{ + "match_score": 85, + "decision": "Likely Match", + "reason": "Both reports describe a dark wallet found near similar academic locations and mention an ID card.", + "matching_signals": [ + "Both reports mention a wallet", + "Both reports mention a dark or black color", + "Both reports mention an ID card", + "The locations are similar" + ], + "conflicting_signals": [ + "The found report does not mention cash" + ], + "verification_questions": [ + "What name is written on the ID card?", + "How much cash was inside?", + "Does the wallet have any brand or unique mark?" + ], + "next_action": "Send this case to an admin for manual verification before returning the item." +} +``` diff --git a/kits/lostfound-match-agent/constitutions/default.md b/kits/lostfound-match-agent/constitutions/default.md new file mode 100644 index 00000000..244379d6 --- /dev/null +++ b/kits/lostfound-match-agent/constitutions/default.md @@ -0,0 +1,31 @@ +# LostFound Match Agent Constitution + +## Purpose + +The LostFound Match Agent helps lost and found administrators compare lost item reports with found item reports and identify likely matches. + +## Safety Rules + +- The agent must never claim that two reports are a guaranteed match. +- The agent must always recommend manual verification before an item is returned. +- The agent must not decide final ownership by itself. +- The agent should generate verification questions when a match seems likely. +- The agent should clearly mention conflicting details when reports do not fully match. + +## Decision Guidelines + +The agent should consider: + +- item type +- color +- brand +- material +- unique identifiers +- location similarity +- date or time proximity +- semantic similarity +- conflicting details + +## Output Rule + +The agent must return structured JSON with a match score, decision, reason, matching signals, conflicting signals, verification questions, and next action. diff --git a/kits/lostfound-match-agent/flows/lostfound-match-agent.ts b/kits/lostfound-match-agent/flows/lostfound-match-agent.ts new file mode 100644 index 00000000..8360d425 --- /dev/null +++ b/kits/lostfound-match-agent/flows/lostfound-match-agent.ts @@ -0,0 +1,73 @@ +/* +# LostFound Match Agent + +This flow compares a lost item report with a found item report and returns a structured match recommendation. + +It is designed for campuses, airports, metro stations, malls, hotels, and other public places where lost and found reports are handled manually. +*/ + +export const meta = { + name: "LostFound Match Agent", + description: + "Compares lost and found item reports and returns a match score, reasoning, verification questions, and next action.", + tags: ["lost-and-found", "matching", "automation", "json"], + testInput: { + lost_item_description: + "Black leather wallet lost near library. It had my student ID card and some cash.", + found_item_description: + "Dark wallet found near reading room with a college ID card inside.", + lost_location: "Library", + found_location: "Reading room", + lost_date: "2026-05-10", + found_date: "2026-05-10" + }, + author: { + name: "Rewant Anand", + github: "Rewant05" + } +}; + +export const inputs = { + lost_item_description: { + type: "string", + required: true, + description: "Description of the lost item reported by the user." + }, + found_item_description: { + type: "string", + required: true, + description: "Description of the found item reported by another user or admin." + }, + lost_location: { + type: "string", + required: false, + description: "Location where the item was lost." + }, + found_location: { + type: "string", + required: false, + description: "Location where the item was found." + }, + lost_date: { + type: "string", + required: false, + description: "Date when the item was lost." + }, + found_date: { + type: "string", + required: false, + description: "Date when the item was found." + } +}; + +export const references = { + prompts: { + system: "@prompts/lostfound-match-agent_system.md" + } +}; + +export default { + meta, + inputs, + references +}; diff --git a/kits/lostfound-match-agent/lamatic.config.ts b/kits/lostfound-match-agent/lamatic.config.ts new file mode 100644 index 00000000..f645a8e8 --- /dev/null +++ b/kits/lostfound-match-agent/lamatic.config.ts @@ -0,0 +1,22 @@ +export default { + name: "LostFound Match Agent", + description: + "AI workflow that compares lost item reports with found item reports and returns a match score, reasoning, verification questions, and next action.", + version: "1.0.0", + type: "template" as const, + author: { + name: "Rewant Anand", + email: "rewant23429@iiitd.ac.in", + }, + tags: ["lost-and-found", "matching", "workflow", "automation", "json"], + steps: [ + { + id: "lostfound-match-agent", + type: "mandatory" as const, + }, + ], + links: { + github: + "https://github.com/Lamatic/AgentKit/tree/main/kits/lostfound-match-agent", + }, +}; diff --git a/kits/lostfound-match-agent/prompts/lostfound-match-agent_system.md b/kits/lostfound-match-agent/prompts/lostfound-match-agent_system.md new file mode 100644 index 00000000..9606d604 --- /dev/null +++ b/kits/lostfound-match-agent/prompts/lostfound-match-agent_system.md @@ -0,0 +1,50 @@ +# LostFound Match Agent System Prompt + +You are a Lost and Found Matching Agent for institutions such as campuses, airports, malls, hotels, and metro stations. + +Your task is to compare a lost item report with a found item report and decide whether they likely refer to the same item. + +Use the following input fields: + +- lost_item_description +- found_item_description +- lost_location +- found_location +- lost_date +- found_date + +Compare the reports using: + +- item type +- color +- brand +- material +- unique identifiers +- location similarity +- date or time proximity +- semantic similarity between descriptions +- conflicting details + +Return only valid JSON. + +The JSON response must follow this contract: + +```json +{ + "match_score": 0, + "decision": "Likely Match", + "reason": "Short explanation of the decision.", + "matching_signals": [ + "Signal 1", + "Signal 2" + ], + "conflicting_signals": [ + "Conflict 1", + "Conflict 2" + ], + "verification_questions": [ + "Question 1", + "Question 2" + ], + "next_action": "Recommended next step." +}