Skip to content
Open
Show file tree
Hide file tree
Changes from 31 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
91642cb
Create README.md
Rewant05 May 14, 2026
17eb1f7
Update README.md
Rewant05 May 14, 2026
f2ea1a1
Update README.md
Rewant05 May 14, 2026
c739f4e
add Lamatic config
Rewant05 May 14, 2026
6b39f45
add agent instructions
Rewant05 May 14, 2026
14a2d33
add flow documentation
Rewant05 May 14, 2026
2c32cb1
add lostfound matching prompt
Rewant05 May 14, 2026
80f0511
feat: add lostfound match flow
Rewant05 May 14, 2026
952991e
Create default.md
Rewant05 May 14, 2026
727f5fc
chore: add model config
Rewant05 May 14, 2026
ea56a75
fix: update Lamatic config schema
Rewant05 May 14, 2026
d217597
docs: add template README
Rewant05 May 14, 2026
4cbc877
chore: add template config
Rewant05 May 14, 2026
5351c00
chore: add template inputs
Rewant05 May 14, 2026
42347c0
chore: add template metadata
Rewant05 May 14, 2026
6caf77d
remove old kit files
Rewant05 May 14, 2026
6cb35d9
remove old kit files
Rewant05 May 14, 2026
89785e6
remove old kit files
Rewant05 May 14, 2026
486ca81
remove old kit files
Rewant05 May 14, 2026
11d2937
remove old kit nested files
Rewant05 May 14, 2026
6cc6285
remove old kit nested files
Rewant05 May 14, 2026
4f41467
remove old kit nested files
Rewant05 May 14, 2026
bd3c263
delete old files
Rewant05 May 14, 2026
ba475f3
move template README to kits structure
Rewant05 May 16, 2026
5534c03
add Lamatic config for kits structure
Rewant05 May 16, 2026
7bbdd22
move agent instructions to kits structure
Rewant05 May 16, 2026
41a65bd
feat: add flow to kits structure
Rewant05 May 16, 2026
48bf18b
docs: move prompt to kits structure
Rewant05 May 16, 2026
3003397
docs: add constitution to kits structure
Rewant05 May 16, 2026
5270683
fix: update config for kits template structure
Rewant05 May 16, 2026
546aff0
Delete templates/lostfound-match-agent directory
Rewant05 May 16, 2026
370f0a7
fix: tighten system prompt output contract
Rewant05 May 16, 2026
b449ddb
```text docs: add setup environment and usage sections
Rewant05 May 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions kits/lostfound-match-agent/README.md
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.
86 changes: 86 additions & 0 deletions kits/lostfound-match-agent/agent.md
Original file line number Diff line number Diff line change
@@ -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."
}
```
31 changes: 31 additions & 0 deletions kits/lostfound-match-agent/constitutions/default.md
Original file line number Diff line number Diff line change
@@ -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.
73 changes: 73 additions & 0 deletions kits/lostfound-match-agent/flows/lostfound-match-agent.ts
Original file line number Diff line number Diff line change
@@ -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
};
22 changes: 22 additions & 0 deletions kits/lostfound-match-agent/lamatic.config.ts
Original file line number Diff line number Diff line change
@@ -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",
},
};
45 changes: 45 additions & 0 deletions kits/lostfound-match-agent/prompts/lostfound-match-agent_system.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
You are a Lost and Found Matching Agent for institutions such as campuses, airports, malls, hotels, and metro stations.
Comment thread
coderabbitai[bot] marked this conversation as resolved.

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 in this format:

{
"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."
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Mission-critical: tighten the output contract for parser-safe responses.

At Line 27 and Line 28, constrain match_score (for example, integer 0-100) and require decision to be exactly one of the three allowed values, otherwise downstream consumers may receive inconsistent payloads.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@kits/lostfound-match-agent/prompts/lostfound-match-agent_system.md` around
lines 24 - 43, The system prompt's JSON contract allows invalid values for
match_score and decision; change the wording around the "match_score" and
"decision" fields so match_score is explicitly an integer in the range 0-100
(e.g., "match_score": integer 0-100) and require "decision" to be exactly one of
the three allowed strings ("Likely Match", "Possible Match", "Not a Match");
update any validator text or examples in the prompt to enforce integer
casting/clamping for match_score and strict enumeration checking for decision so
downstream parsers always receive a bounded integer and one of the three exact
decision values.


Do not claim a guaranteed match. Always recommend manual verification before returning an item.
Loading