Ai Dating
This skill supports dating and matchmaking workflows through dating-cli.
It helps users create a profile, define partner preferences, check matching results, reveal contact details, and submit post-chat reviews.
Trigger Conditions
Trigger this skill when any of the following intents appear:
- The user explicitly asks to make friends, find a partner, date, or run a match.
- The user provides personal information and asks the system to find a matching person.
- The user describes partner preferences (for example gender, height, income, city, personality, hobbies) and asks for matching.
Language Alignment Rule
When constructing dating-cli command arguments, use the same language as the user for all free-text fields and labels (for example --task-name, --character-text, --hobby-text, --ability-text, --intention, --preferred-* text fields, and --comment).
- Do not translate user-provided content unless the user explicitly requests translation.
- Keep language style consistent across one command (for example, if the user speaks Chinese, prefer Chinese text values in string parameters).
Standard Execution Flow (AI Agent)
- Check CLI availability.
command -v dating-cli
dating-cli --help
If missing, install:
npm install -g dating-cli
# or
bun install -g dating-cli
- Check local CLI status (full examples).
dating-cli config show
dating-cli config path
- Register or login (full parameter examples).
dating-cli register --username "amy_2026"
dating-cli login --username "amy_2026" --password "123456"
Note: The parameters for
profile update,task create, andtask updateare optional..
- Parse user self-description and update profile (full parameter example).
dating-cli upload "./photos/amy-1.jpg" "./photos/amy-2.jpg"
dating-cli profile update \
--gender male \
--birthday 1998-08-08 \
--height-cm 180 \
--weight-kg 72 \
--annual-income-cny 300000 \
--character-text "sincere, steady, humorous" \
--hobby-text "badminton, travel, photography" \
--ability-text "cooking, communication, English" \
--major "Computer Science" \
--nationality "China" \
--country "China" \
--province "Zhejiang" \
--city "Hangzhou" \
--address-detail "Xihu District" \
--current-latitude 30.27415 \
--current-longitude 120.15515 \
--current-location-text "Hangzhou West Lake" \
--email "amy@example.com" \
--phone "13800000000" \
--telegram "amy_tg" \
--wechat "amy_wechat" \
--whatsapp "amy_wa" \
--signal-chat "amy_signal" \
--line "amy_line" \
--snapchat "amy_snap" \
--instagram "amy_ins" \
--facebook "amy_fb" \
--other-contact "x=amy_xhs" \
--other-contact "discord=amy#1234"
- Parse partner preferences and create a match task (full parameter example), Users do not need to fill in all fields - only provide the information they have available.
dating-cli task create \
--task-name "Find partner in Hangzhou" \
--preferred-gender-filter '{"eq":"female"}' \
--preferred-height-filter '{"gte":165,"lte":178}' \
--preferred-income-filter '{"gte":200000}' \
--preferred-city-filter '{"eq":"Hangzhou"}' \
--preferred-nationality-filter '{"eq":"China"}' \
--preferred-education-filter '{"contains":"Bachelor"}' \
--preferred-occupation-filter '{"contains":"Product"}' \
--preferred-education-stage "Bachelor or above" \
--preferred-occupation-keyword "Product Manager" \
--preferred-hobby-text "reading, travel" \
--preferred-character-text "kind, positive" \
--preferred-ability-text "strong communication" \
--intention "long-term relationship" \
--hobby-embedding-min-score 0.72 \
--character-embedding-min-score 0.70 \
--ability-embedding-min-score 0.68 \
--intention-embedding-min-score 0.70 \
--preferred-contact-channel telegram
If any --*-embedding-min-score is omitted in task create, backend defaults it to 0.1.
- If an unfinished
taskIdalready exists and the user did not explicitly request a new task, update the existing task (full parameter example).
dating-cli task update 12345 \
--task-name "Update criteria - Hangzhou/Shanghai" \
--preferred-gender-filter '{"eq":"female"}' \
--preferred-height-filter '{"gte":163,"lte":180}' \
--preferred-income-filter '{"gte":250000}' \
--preferred-city-filter '{"in":["Hangzhou","Shanghai"]}' \
--preferred-hobby-text "reading, travel, sports" \
--preferred-character-text "independent, optimistic" \
--preferred-ability-text "communication and collaboration" \
--intention "serious relationship with marriage plan" \
--hobby-embedding-min-score 0.70 \
--character-embedding-min-score 0.70 \
--ability-embedding-min-score 0.65 \
--intention-embedding-min-score 0.68 \
--preferred-contact-channel wechat
- Query task status (full parameter example).
dating-cli task get 12345
- Execute
checkto inspect match results (full parameter example, paginated).
dating-cli check 12345 --page 1
Each page returns 10 candidates. Use --page to fetch subsequent pages when needed.
check candidate items include photoUrls (user uploaded image URL array), which should be used when explaining and selecting candidates.
If the result is NO_RESULT_RETRY_NOW, call check again as needed.
If the result is MATCH_FOUND, continue to contact reveal.
Suggest users register email via dating-cli profile update --email ... so they can receive periodic match-growth reminders.
- Select the best candidate from match results and reveal contact details (full parameter example).
dating-cli reveal-contact 67890
- Submit review when needed (full parameter example).
dating-cli review 67890 --rating 5 --comment "Good communication and aligned values"
- Optional commands (full parameter examples).
dating-cli task stop 12345
dating-cli logout
Reference
For detailed field-level behavior, validation rules, and response structures:
references/dating-cli-operations.md