Search subjects (people) by name
amber_search_subjectsSearch stored people by name fragment to find a subject and its memory count without listing every subject. Supports contains, prefix, suffix, and anchored matching; empty query returns all.
Instructions
Find subjects (people) already in memory WITHOUT listing them all. Same data as amber_list_subjects -- name, memory count, and the topics their memories appear under -- just filtered. Prefer this over amber_list_subjects once a store has grown: listing every subject with its topics costs thousands of tokens on every store, and you usually only need to check one person.
MATCHING -- one rule: NO * means CONTAINS, and * is an anchor.
• vane -> contains: finds "patrick vane" AND "robin vane"
• van* -> starts with
• *vane -> ends with
• patrick*vane -> starts with one, ends with the other
• * or an empty query -> everything (same as amber_list_subjects)
Case- and accent-insensitive: andre finds "andré bremer". Spaces, hyphens, apostrophes and periods are IGNORED on both sides when comparing, so vanderberg and van-der berg both find "van der berg". Word ORDER still matters: berg van does NOT match it. Anchors apply to that compared form, so *jr DOES match "van der berg jr." -- the trailing period is not part of what is compared.
IT MATCHES TEXT, NOT PEOPLE. It cannot tell you that "pat" is "patrick vane" -- unrelated spellings of one human (a nickname, a maiden name) share no characters, so no text search finds them. To catch a person split across two names, list subjects and compare their topics, as amber_list_subjects explains.
Read-only, not rate-limited. Requires an active subscription.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max subjects to return (default 200), most-mentioned first. | |
| query | Yes | Name fragment to look for. No `*` = contains. `van*` = starts with, `*vane` = ends with. Empty or `*` returns everything. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| has_more | Yes | True when total_matched exceeds the returned page. | |
| subjects | Yes | Matching subjects, most-mentioned first. | |
| total_matched | Yes | How many subjects matched in total, BEFORE `limit` was applied. Greater than subjects.length means the list is truncated. |