User Info
Othersuser-infoUser Info is an Agent Skill for general use published in the dtyq/magic repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
Use when you need the current user's identity or contact info: name, job title, employee number, email, phone, or department.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/dtyq/magic/blob/HEAD/backend/super-magic/agents/skills/user-info/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/user-info, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
User Info Skill
Retrieve the current session user's profile via get_user_info.
Basic Usage
from sdk.tool import tool
result = tool.call("get_user_info", {})
print(result.content)
Example output:
User: Zhang San. Position: Engineering Lead. Work Number: 10086. Email: [email protected]. Phone: 138****0000 (desensitized). Departments: Engineering, Architecture.
For structured access, use result.data:
| Field | Type | Notes |
|---|---|---|
id | string | User ID |
nickname | string | Display name |
real_name | string | Legal name |
work_number | string | Employee number (may be empty) |
position | string | Job title |
email | string | Email address |
phone | string | Phone, desensitized by default (e.g. 138****0000) |
departments | array | Each item: {id, name, path} |
Getting the Full Phone Number
Phone is masked by default to protect privacy. To get the full number, you must first ask for explicit user consent.
Step 1 — Ask for consent:
from sdk.tool import tool
result = tool.call("ask_user", {
"questions": '<question type="confirm">I need your full phone number to proceed. Do you allow me to access it?</question>'
})
print(result.content)
Step 2 — If the user consents, request the full number:
result = tool.call("get_user_info", {
"include_sensitive_fields": ["phone"]
})
print(result.content)
If the user declines: use the desensitized value or drop the requirement. Do not ask again.
Constraints
- Never pass
include_sensitive_fieldswithout prior explicit user approval in the same conversation. - Do not retry after a user refuses access to sensitive fields.
- Use the desensitized phone value for display, logging, or non-critical tasks where the full number is not strictly needed.