Resolve a QQBot recipient from the local known-targets registry, distinguish between similarly named contacts, and send text or files to the intended QQ user with the correct target. Use whenever the user says things like “发给这个 QQ 联系人”, “把这个文件发给某个 QQ 用户”, “看看 known-targets.json 里是谁”, “确认发送对象”, or when you need to map a human-readable QQ contact name to a concrete `user:<openid>` target before sending. Prefer this skill over guessing from the current chat when multiple QQ users exist.
75
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill when the user wants to send something to a QQ contact identified by display name or nickname rather than by raw target id.
This skill helps avoid sending to the wrong QQ user when:
known-targets.jsonRead this file first when resolving a recipient:
~/.openclaw/qqbot/data/known-targets.jsonIt contains entries like:
accountIdkindtargetdisplayNamelastSeenAt~/.openclaw/qqbot/data/known-targets.json.accountId as the lookup scope unless the user explicitly asks to send across another agent/account.python3 {baseDir}/scripts/resolve_known_target.py "<name-or-target>" --account-id "<current-accountId>"displayName first.target and accountId.python3 {baseDir}/scripts/prepare_send.py "<recipient>" --account-id "<current-accountId>" --file <path> [--caption <text>]--text <message>message tool using:
channel: "qqbot"target: <resolved target>accountId: <resolved accountId>Prefer in this order:
displayName matchDo not assume the current inbound sender is the destination when the user explicitly names another person.
Ask a short follow-up if:
displayName match existsGood follow-up style:
我查到两个候选:A(user:...)和 B(user:...),你要发给哪一个?When reporting the resolved recipient, be brief and concrete:
QQ file messages sent through the generic message tool may not automatically enter the qqbot plugin's ref-index, so later quote recovery can be incomplete. This does not block sending, but it may affect future reply-context restoration.
把这个文件发给这个 QQ 联系人看 known-targets.json,确认发送对象发给这个备注名联系人,不是当前这个人把这份 md 发给另一个 QQ 用户先查联系人再发,别发错人Bundled helpers:
scripts/resolve_known_target.py → resolve recipient candidatesscripts/prepare_send.py → resolve recipient and generate a ready-to-use message tool payloadExamples:
python3 {baseDir}/scripts/resolve_known_target.py "<contact-name>" --account-id "<current-accountId>"python3 {baseDir}/scripts/prepare_send.py "<contact-name>" --account-id "<current-accountId>" --file <path> --caption "<optional-caption>"The scripts use:
displayNametargetlastSeenAt recency as tie-breakeraccountId as the default scope filterprepare_send.py does not send by itself; it emits a verified payload for the message tool so the agent can deliver without hand-building target fields.
4d6fd54
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.