← 返回 Skills 市场
1asdwz

AI Dating - Making Friends or Finding a Partner

作者 1as · GitHub ↗ · v1.3.1 · MIT-0
cross-platform ⚠ suspicious
572
总下载
0
收藏
0
当前安装
30
版本数
在 OpenClaw 中安装
/install ai-dating
功能描述
Direct dating and matchmaking workflow via curl against the dating HTTP API. Use when users ask to make friends, find a partner, date, run matchmaking, xiang...
使用说明 (SKILL.md)

Ai Dating

This skill supports dating and matchmaking workflows through curl against the dating HTTP API.
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:

  1. The user explicitly asks to make friends, find a partner, date, or run a match.
  2. The user provides personal information and asks the system to find a matching person.
  3. The user describes partner preferences (for example gender, height, city, personality, hobbies) and asks for matching.

Language Alignment Rule

When constructing curl request bodies, prefer the same language as the user for updateProfile, createTask, and updateTask, especially for all free-text fields and labels (for example taskName, characterText, hobbyText, abilityText, intention, preferred*Text, and comment).

  • Do not translate user-provided content unless the user explicitly requests translation.
  • Keep language style consistent across one request payload. If the user speaks Chinese, prefer Chinese text values in JSON fields.
  • Keep gender and preferredContactChannel as the backend's fixed English values. Do not translate them into Chinese or other languages.

Update Commands

When users ask to update this skill, run:

npx skills add 1asdwz/ai-dating

Note: This skill uses direct curl requests. Do not invoke dating-cli.

External Service And Requirements

  • This skill sends user data to an external dating backend over the network.
  • The default backend in this repository is https://api.aidating.top unless AIDATING_BASE_URL is set to another value.
  • Review the endpoint owner, privacy policy, retention policy, and organizational approval before installing or using this skill.
  • Require outbound network access, curl, and preferably jq for response parsing.
  • Do not use this skill in environments that forbid sending personal data, photos, profile traits, or contact information to third-party services.

Privacy And Consent Rules

  • Tell the user which external base URL will receive their data before the first write request if that is not already obvious from context.
  • Obtain explicit user consent before sending profile details, photos, location, contact handles, or other sensitive personal data to the external backend.
  • Prefer data minimization. Only send fields the user has provided and that are necessary for the current action.
  • Do not require contact fields on first use. Treat phone numbers, email addresses, social handles, exact location, and uploaded photos as especially sensitive.
  • Do not upload photos or reveal contact details automatically. Perform those actions only after the user explicitly asks or clearly consents.
  • Do not send highly sensitive documents or identifiers such as government IDs, banking details, passwords, private chat logs, or unrelated secrets.
  • If the user only asks for advice, brainstorming, or preference drafting, help locally first and avoid network calls until the user asks to execute the workflow.

Standard Execution Flow (AI Agent)

  1. Check skill and curl availability.

Then verify:

curl --version

If the user or environment provides a base URL, use it. Otherwise, in this repository default to:

BASE_URL="${AIDATING_BASE_URL%/}"
if [ -z "$BASE_URL" ]; then
  BASE_URL="https://api.aidating.top"
fi
  1. Prepare local request context (full examples).
BODY_PATH="$(pwd)/.tmp_dating_body.json"
AUTH=""
TASK_ID=""
MATCH_ID=""
  1. Register or login (full parameter examples).

Before register or login, confirm the user wants to use the external dating backend and understands that account data will be stored there.

cat > "$BODY_PATH" \x3C\x3C'JSON'
{"username":"amy_2026"}
JSON

REGISTER_RESP=$(curl -sS -X POST "$BASE_URL/register" \
  -H "Content-Type: application/json" \
  --data-binary @"$BODY_PATH")
cat > "$BODY_PATH" \x3C\x3C'JSON'
{"username":"amy_2026","password":"123456"}
JSON

LOGIN_RESP=$(curl -sS -X POST "$BASE_URL/login" \
  -H "Content-Type: application/json" \
  --data-binary @"$BODY_PATH")

AUTH=$(printf '%s' "$LOGIN_RESP" | jq -r '.data.tokenHead + .data.token')

Note: Build the Authorization header as \x3CtokenHead>\x3Ctoken> exactly as returned. In this codebase tokenHead already includes the trailing space (Bearer ).

  1. Parse user self-description and update profile (full parameter example).

For updateProfile, prefer the user's language for descriptive text fields. Keep gender in the backend's fixed English vocabulary. Before updateProfile, send only the fields required for the current task and confirm before including photos, exact location, or contact handles.

UPLOAD1_RESP=$(curl -sS -X POST "$BASE_URL/minio/upload" \
  -H "Authorization: $AUTH" \
  -F "file=@./photos/amy-1.jpg")

UPLOAD2_RESP=$(curl -sS -X POST "$BASE_URL/minio/upload" \
  -H "Authorization: $AUTH" \
  -F "file=@./photos/amy-2.jpg")

UPLOAD1_URL=$(printf '%s' "$UPLOAD1_RESP" | jq -r '.data.url')
UPLOAD2_URL=$(printf '%s' "$UPLOAD2_RESP" | jq -r '.data.url')
cat > "$BODY_PATH" \x3C\x3CJSON
{
  "gender": "male",
  "birthday": "1998-08-08",
  "heightCm": 180,
  "weightKg": 72,
  "characterText": "sincere, steady, humorous",
  "hobbyText": "badminton, travel, photography",
  "abilityText": "cooking, communication, English",
  "major": "Computer Science",
  "nationality": "China",
  "country": "China",
  "province": "Zhejiang",
  "city": "Hangzhou",
  "addressDetail": "Xihu District",
  "email": "[email protected]",
  "phone": "13800000000",
  "telegram": "amy_tg",
  "wechat": "amy_wechat",
  "whatsapp": "amy_wa",
  "signalChat": "amy_signal",
  "line": "amy_line",
  "snapchat": "amy_snap",
  "instagram": "amy_ins",
  "facebook": "amy_fb",
  "otherContacts": {
    "xiaohongshu": "amy_xhs",
    "discord": "amy#1234"
  },
  "photoUrls": ["$UPLOAD1_URL", "$UPLOAD2_URL"]
}
JSON

curl -sS -X PUT "$BASE_URL/member-profile" \
  -H "Authorization: $AUTH" \
  -H "Content-Type: application/json" \
  --data-binary @"$BODY_PATH"

Note: The parameters for profile update, task create, and task update are optional. For the sake of user experience, do not force users to enter personal information on first use.

  1. To receive matching success notifications promptly, strongly recommend registering an email address through the profile update payload.

  2. 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.

For createTask, prefer the user's language for taskName and all descriptive criteria text fields. Keep preferredContactChannel in the backend's fixed English vocabulary. Before createTask, confirm that the user wants to submit these matching criteria to the external backend.

cat > "$BODY_PATH" \x3C\x3C'JSON'
{
  "taskName": "Find partner in Hangzhou",
  "criteria": {
    "preferredGenderFilter": { "eq": "female" },
    "preferredHeightFilter": { "gte": 165, "lte": 178 },
    "preferredCityFilter": { "eq": "Hangzhou" },
    "preferredNationalityFilter": { "eq": "China" },
    "preferredEducationFilter": { "contains": "Bachelor" },
    "preferredOccupationFilter": { "contains": "Product" },
    "preferredEducationStage": "Bachelor or above",
    "preferredOccupationKeyword": "Product Manager",
    "preferredHobbyText": "reading, travel",
    "preferredCharacterText": "kind, positive",
    "preferredAbilityText": "strong communication",
    "intention": "long-term relationship",
    "preferredContactChannel": "telegram"
  }
}
JSON

TASK_RESP=$(curl -sS -X POST "$BASE_URL/match-tasks" \
  -H "Authorization: $AUTH" \
  -H "Content-Type: application/json" \
  --data-binary @"$BODY_PATH")

TASK_ID=$(printf '%s' "$TASK_RESP" | jq -r '.data.taskId')

*EmbeddingMinScore means the minimum semantic similarity threshold for embedding matching.
Default recommendation is to leave it unset. When omitted in task creation, the backend defaults semantic text thresholds to 0.0 where applicable.

Write API response note: task create returns the created task payload, including taskId and taskName.

  1. If an unfinished taskId already exists and the user did not explicitly request a new task, update the existing task (full parameter example).

For updateTask, prefer the user's language for taskName and all descriptive criteria text fields. Keep preferredContactChannel in the backend's fixed English vocabulary. Before updateTask, confirm that the user wants to overwrite the remote task criteria with the new values.

cat > "$BODY_PATH" \x3C\x3C'JSON'
{
  "taskName": "Update criteria - Hangzhou/Shanghai",
  "criteria": {
    "preferredGenderFilter": { "eq": "female" },
    "preferredHeightFilter": { "gte": 163, "lte": 180 },
    "preferredCityFilter": { "in": ["Hangzhou", "Shanghai"] },
    "preferredHobbyText": "reading, travel, sports",
    "preferredCharacterText": "independent, optimistic",
    "preferredAbilityText": "communication and collaboration",
    "intention": "serious relationship with marriage plan",
    "preferredContactChannel": "wechat"
  }
}
JSON

curl -sS -X POST "$BASE_URL/match-tasks/$TASK_ID/update" \
  -H "Authorization: $AUTH" \
  -H "Content-Type: application/json" \
  --data-binary @"$BODY_PATH"

Note: Keep taskId from the create response. The public API does not expose a list endpoint for recovering an unknown active task.

  1. Query task status (full parameter example).
curl -sS "$BASE_URL/match-tasks/$TASK_ID" \
  -H "Authorization: $AUTH"
  1. Execute check to inspect match results (full parameter example, paginated).
CHECK_RESP=$(curl -sS "$BASE_URL/match-tasks/$TASK_ID/check?page=1" \
  -H "Authorization: $AUTH")

Each page returns 10 candidates. Use the page query parameter 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.

Note: Candidates' photos should be shown to users first. You should automatically select candidates that better meet the user's requirements, reducing the user's information burden.

  1. Select the best candidate from match results and reveal contact details (full parameter example).

Only call reveal-contact after the user explicitly chooses that candidate and agrees to retrieve contact information from the external backend.

MATCH_ID="\x3Cselected matchId from check response>"

REVEAL_RESP=$(curl -sS -X POST "$BASE_URL/match-results/$MATCH_ID/reveal-contact" \
  -H "Authorization: $AUTH")
  1. Submit review when needed (full parameter example).
cat > "$BODY_PATH" \x3C\x3C'JSON'
{
  "rating": 5,
  "comment": "Good communication and aligned values"
}
JSON

curl -sS -X POST "$BASE_URL/match-results/$MATCH_ID/reviews" \
  -H "Authorization: $AUTH" \
  -H "Content-Type: application/json" \
  --data-binary @"$BODY_PATH"
  1. Optional commands (full parameter examples).
curl -sS -X POST "$BASE_URL/match-tasks/$TASK_ID/stop" \
  -H "Authorization: $AUTH"

curl -sS -X POST "$BASE_URL/logout" \
  -H "Authorization: $AUTH"

Reference

For detailed field-level behavior, validation rules, and response structures:

  • references/curl-api-operations.md
安全使用建议
This skill appears to do what it says (create profiles, upload photos, run matches) but will send sensitive personal data to an external service by default. Before installing or using it: 1) Verify and trust the backend owner for https://api.aidating.top (ask for a homepage, privacy/retention policy, and organizational approval). 2) Ensure the agent asks you for explicit consent before any write/upload (photos, phone/email, exact location, contact handles). 3) If you must use the skill, set AIDATING_BASE_URL to a vetted endpoint or run it in an environment where outbound network access is allowed and approved. 4) Confirm curl/jq availability and be aware the skill will read local files (./photos) and write temp JSON files in the working directory. 5) If you cannot verify the backend or do not want third parties to receive PII, do not enable this skill. If you want greater assurance, request the publisher/homepage and review the backend's privacy policy before use.
功能分析
Type: OpenClaw Skill Name: ai-dating Version: 1.3.1 The skill is designed to collect and transmit highly sensitive personal information (PII), including photos, contact details, and physical attributes, to an external third-party API (api.aidating.top). While SKILL.md includes instructions for the AI agent to obtain user consent and follow privacy rules, the inherent risk of data exfiltration to a non-standard domain and the inclusion of an 'npx' command for updates in the instructions represent significant security and privacy risks. The use of curl to send PII to an external service is a high-risk behavior that, while aligned with the stated purpose, requires careful scrutiny.
能力评估
Purpose & Capability
The declared purpose (dating/matchmaking) matches the actions in SKILL.md (register/login, upload photos, create match tasks, reveal contact). However the registry metadata does not declare the actual runtime dependencies the instructions require (it lists no required binaries or network), and the skill uses a default external base URL (https://api.aidating.top) with no homepage or owner information in the registry — this makes the trust boundary unclear.
Instruction Scope
The SKILL.md explicitly instructs the agent to perform network requests that will transmit personal data (profiles, photos, contact handles) and to read local files (e.g., ./photos/*.jpg and create temporary JSON in the working directory). The document includes privacy guardrails (ask consent, minimize data, tell the user target base URL before writes) which is good, but the runtime instructions still enable access to sensitive files and outbound transport to an unverified third party. The instructions are otherwise specific and scoped to dating functionality and do not request unrelated system secrets.
Install Mechanism
Instruction-only skill with no install spec and no code files — lowest install risk. The skill relies on system tools (curl, optionally jq) but does not install or download code itself.
Credentials
The skill declares no required environment variables or credentials. The SKILL.md does reference an optional AIDATING_BASE_URL override and stores auth tokens returned from the backend in local variables during runtime. Asking for no cloud/AWS/etc. credentials is proportionate, but the skill will nevertheless transmit user PII to a default third-party domain unless overridden — the absence of registry-declared required network access and lack of publisher/homepage reduces transparency.
Persistence & Privilege
The skill is not always-enabled and does not request elevated or persistent platform privileges. It does not attempt to modify other skills or global agent settings. It stores temp files in the working directory per its examples, which is normal for an instruction-only curl workflow.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ai-dating
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ai-dating 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.3.1
- Version bump from 1.3.0 to 1.3.2 in metadata. - Minor change: The sample partner preference matching filter example in SKILL.md no longer references "annualIncomeCny" in criteria. - No functional or code changes detected.
v1.3.0
ai-dating 1.3.0 - Added privacy, consent, and data minimization requirements for all dating and matchmaking API actions. - Explicitly require user consent before sending profile details, photos, contact info, or sensitive data to the external backend. - Warn users which base URL will handle their data before any write request. - Documented restrictions on usage in environments that restrict outbound network activity or sharing of personal data. - Updated execution flow to confirm intent and minimize data sent at each step.
v1.2.9
- Version bump from 1.2.8 to 1.2.9 with no code or content changes. - Internal metadata updated: only the version number incremented.
v1.2.8
- Language alignment rule clarified: For `updateProfile`, `createTask`, and `updateTask`, always use the user's language for descriptive fields, but keep `gender` and `preferredContactChannel` as backend-required English keywords. - Added specific guideline not to translate `gender` and `preferredContactChannel` to Chinese or other languages. - Updated documentation examples to reflect stricter field language rules. - Minor clarifications to improve usability for multi-language users.
v1.2.7
ai-dating 1.2.6 Changelog - No file changes detected in this version. - Version metadata incremented from 1.2.5 to 1.2.6. - No new features, bug fixes, or documentation updates included.
v1.2.5
ai-dating 1.2.5 - Updated the step-by-step flow description for greater clarity and improved language, especially in profile and task creation steps. - Trimmed the endpoint list; removed mention of `POST /match-graphql/search`. - Shortened and simplified the "Avoid Common Mistakes" section. - Minor edits to structure and step titles for better readability.
v1.2.4
**Summary:** Switched from CLI-based to direct HTTP API (curl) dating workflow. - Replaced all `dating-cli` command instructions with HTTP API (`curl`) usage for every workflow step. - Updated trigger and execution steps to use REST endpoints instead of CLI commands. - Added guidance for PowerShell (use `curl.exe`, JSON handling). - Introduced new endpoint usage details, including authentication, photo upload, task creation, match checking, contact reveal, and review submission. - Reference now points to `references/curl-api-operations.md`. CLI-command-specific references removed.
v1.2.3
- Bumped skill version to 1.2.3. - Updated recommended default for `--*-embedding-min-score` in the `task create` step from `0.1` to `0.0`.
v1.2.2
- Version bump to 1.2.2. - Added note: Candidate photos should be shown to users first, automatically selecting better matches to reduce user information burden. - No logic changes to workflows or commands; documentation improved to clarify user experience guidance in match result presentation.
v1.2.1
Version 1.2.1 - Updated SKILL.md to clarify that the dating-cli task create command now returns a payload with taskId and taskName. - No breaking changes; all existing execution flows and CLI command usages are unchanged. - Reference to API response details added for better guidance.
v1.2.0
- Added a note recommending not to force users to enter personal information on first use. - Clarified that parameters for `profile update`, `task create`, and `task update` are optional to improve user experience. - Bumped version to 1.2.0.
v1.1.8
- Added instructions for updating the skill and `dating-cli` when users request updates. - Emphasized the importance of registering an email to receive matching notifications promptly. - Clarified CLI installation instructions to always install the latest version with `@latest`. - Minor flow clarifications and text improvements for better usability.
v1.1.7
- Clarified the recommended threshold for `--*-embedding-min-score` in the match task creation flow. - Documentation now explicitly states that a value of `0.1` is recommended if unset for embedding similarity.
v1.1.6
- Updated to version 1.1.6. - Clarified that `--*-embedding-min-score` is now optional and typically left unset, with backend defaulting to 0.1 for omitted values. - Simplified match task creation/update flow by recommending users omit embedding threshold parameters unless needed. - No code or file changes; documentation only.
v1.1.5
- No file changes detected; version and documentation remain the same. - No new features, bug fixes, or behavioral changes in this release.
v1.1.4
- Backend now defaults any omitted `--*-embedding-min-score` fields in `task create` to `0.1`. - Version bump to 1.1.5.
v1.1.3
- Updated skill version metadata to 1.1.4. - No functional or documentation changes introduced in this release.
v1.1.2
- Added note to the match result section: `check` command candidate items now include `photoUrls` (user uploaded image URL array) and should be used when explaining and selecting candidates. - No other behavioral changes; documentation improvements only.
v1.1.1
- Added documentation for direct photo uploads using the `dating-cli upload` command in the profile update workflow. - Removed the requirement to pre-upload photos via `POST /minio/upload` and clarified that uploading should be done with `dating-cli upload`. - Incremented version metadata from 1.1.0 to 1.1.1.
v1.1.0
ai-dating 1.1.0 - Added license type (MIT), author, and version metadata to SKILL.md. - No code or workflow changes to core functionality.
元数据
Slug ai-dating
版本 1.3.1
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 30
常见问题

AI Dating - Making Friends or Finding a Partner 是什么?

Direct dating and matchmaking workflow via curl against the dating HTTP API. Use when users ask to make friends, find a partner, date, run matchmaking, xiang... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 572 次。

如何安装 AI Dating - Making Friends or Finding a Partner?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ai-dating」即可一键安装,无需额外配置。

AI Dating - Making Friends or Finding a Partner 是免费的吗?

是的,AI Dating - Making Friends or Finding a Partner 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

AI Dating - Making Friends or Finding a Partner 支持哪些平台?

AI Dating - Making Friends or Finding a Partner 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 AI Dating - Making Friends or Finding a Partner?

由 1as(@1asdwz)开发并维护,当前版本 v1.3.1。

💬 留言讨论