-
Notifications
You must be signed in to change notification settings - Fork 119
feat: add LostFound Match Agent template #158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Rewant05
wants to merge
23
commits into
Lamatic:main
Choose a base branch
from
Rewant05:lostfound-match-agent
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
91642cb
Create README.md
Rewant05 17eb1f7
Update README.md
Rewant05 f2ea1a1
Update README.md
Rewant05 c739f4e
add Lamatic config
Rewant05 6b39f45
add agent instructions
Rewant05 14a2d33
add flow documentation
Rewant05 2c32cb1
add lostfound matching prompt
Rewant05 80f0511
feat: add lostfound match flow
Rewant05 952991e
Create default.md
Rewant05 727f5fc
chore: add model config
Rewant05 ea56a75
fix: update Lamatic config schema
Rewant05 d217597
docs: add template README
Rewant05 4cbc877
chore: add template config
Rewant05 5351c00
chore: add template inputs
Rewant05 42347c0
chore: add template metadata
Rewant05 6caf77d
remove old kit files
Rewant05 6cb35d9
remove old kit files
Rewant05 89785e6
remove old kit files
Rewant05 486ca81
remove old kit files
Rewant05 11d2937
remove old kit nested files
Rewant05 6cc6285
remove old kit nested files
Rewant05 4f41467
remove old kit nested files
Rewant05 bd3c263
delete old files
Rewant05 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,92 @@ | ||
| # 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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| { | ||
| "name": "LostFound Match Agent", | ||
| "slug": "lostfound-match-agent", | ||
| "description": "Compares lost item reports with found item reports and returns a structured match recommendation with score, reasoning, verification questions, and next action.", | ||
| "category": "workflow-automation", | ||
| "tags": [ | ||
| "lost-and-found", | ||
| "matching", | ||
| "automation", | ||
| "json", | ||
| "admin" | ||
| ], | ||
| "author": { | ||
| "name": "Rewant Anand", | ||
| "github": "Rewant05" | ||
| }, | ||
| "version": "1.0.0", | ||
| "type": "template" | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| { | ||
| "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." | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| { | ||
| "title": "LostFound Match Agent", | ||
| "description": "An AI template that compares lost item reports with found item reports and generates a structured match recommendation.", | ||
| "use_case": "Lost and found item matching for campuses, airports, metro stations, malls, hotels, and public institutions.", | ||
| "problem": "Lost and found teams often receive incomplete or differently written item descriptions, making manual matching slow and inconsistent.", | ||
| "solution": "The agent compares item descriptions, locations, dates, and unique identifiers to generate a match score, reasoning, verification questions, and next action.", | ||
| "input_example": { | ||
| "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_example": { | ||
| "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." | ||
| }, | ||
| "author": { | ||
| "name": "Rewant Anand", | ||
| "github": "Rewant05" | ||
| } | ||
| } | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick | 🔵 Trivial | ⚡ Quick win
Agent, consider documenting the output contract.
The output example demonstrates a well-structured match result with
match_score,decision,reason,matching_signals,conflicting_signals,verification_questions, andnext_action. However, there's no formal output schema (like anoutputs.jsonfile) defining types, constraints, or required fields for this structure.While not critical for a template, a formal output schema would help integrators validate agent responses and catch breaking changes.
📋 Proposed addition: outputs.json schema
Consider adding
templates/lostfound-match-agent/outputs.json:{ "match_score": { "type": "number", "required": true, "description": "Match confidence score between 0-100" }, "decision": { "type": "string", "required": true, "description": "Match decision category (e.g., Likely Match, Possible Match, No Match)" }, "reason": { "type": "string", "required": true, "description": "Human-readable explanation of the decision" }, "matching_signals": { "type": "array", "required": true, "description": "List of signals supporting the match" }, "conflicting_signals": { "type": "array", "required": true, "description": "List of signals contradicting the match" }, "verification_questions": { "type": "array", "required": true, "description": "Questions to verify ownership" }, "next_action": { "type": "string", "required": true, "description": "Recommended next step for the administrator" } }🤖 Prompt for AI Agents