AgentSkillsCN

Member Profile

成员个人资料

SKILL.md

Member Profile Management

Manage community member profiles to build persistent understanding of who community members are over time.

When to Use

  • User asks to "remember" something about a community member
  • User wants to look up information about a specific member
  • User asks "who is @username" or wants member context
  • User wants to search for members with specific interests/skills
  • User asks for a list of community members
  • When building context for personalized responses to members
  • After gathering profile-relevant information from chat activity

Smart Defaults

User SaysDefault Action
"remember that @alice works in fintech"Save observation to Alice's profile
"who is @bob"Get Bob's profile and display
"who knows Python"Search profiles for "python"
"list members"List all profiles (default platform: discord)

Commands

Save or Update a Profile

bash
python {{PLUGIN_DIR}}/tools/member_profile.py save \
  --platform discord \
  --member-id "123456789" \
  --name "Alice Smith" \
  --observation "Works at a fintech startup"

Parameters:

  • --platform: Required. Platform identifier (discord or telegram)
  • --member-id: Required. The member's platform-specific ID
  • --name: Required for new profiles. Display name (max 100 chars)
  • --observation: Optional. Initial observation to record
  • --notes: Optional. Free-form notes about the member
  • --keywords: Optional. Keywords for search (space-separated)
  • --json: Optional. Output in JSON format

Get a Profile

bash
python {{PLUGIN_DIR}}/tools/member_profile.py get \
  --platform discord \
  --member-id "123456789"

Parameters:

  • --platform: Required. Platform identifier
  • --member-id: Required. The member's ID
  • --json: Optional. Output in JSON format

Add an Observation

Use this to record new information learned about a member without needing to reload their full profile.

bash
python {{PLUGIN_DIR}}/tools/member_profile.py add-observation \
  --platform discord \
  --member-id "123456789" \
  --text "Interested in Python and machine learning"

Parameters:

  • --platform: Required. Platform identifier
  • --member-id: Required. The member's ID
  • --text: Required. Observation text (max 500 chars)
  • --name: Optional. Display name (required if profile doesn't exist yet)
  • --json: Optional. Output in JSON format

Search Profiles

bash
python {{PLUGIN_DIR}}/tools/member_profile.py search \
  --platform discord \
  --query "python developer" \
  --limit 20

Parameters:

  • --platform: Required. Platform identifier
  • --query: Required. Search query string
  • --limit: Optional. Maximum results (default: 20)
  • --json: Optional. Output in JSON format

List All Profiles

bash
python {{PLUGIN_DIR}}/tools/member_profile.py list \
  --platform discord \
  --offset 0 \
  --limit 50

Parameters:

  • --platform: Required. Platform identifier
  • --offset: Optional. Skip first N profiles (default: 0)
  • --limit: Optional. Maximum results (default: 50)
  • --json: Optional. Output in JSON format

Count Profiles

bash
python {{PLUGIN_DIR}}/tools/member_profile.py count \
  --platform discord

Rebuild Index

Use if the index becomes corrupted or out of sync with profile files.

bash
python {{PLUGIN_DIR}}/tools/member_profile.py rebuild-index \
  --platform discord

Profile Data Structure

Each profile contains:

FieldDescription
member_idPlatform-specific unique identifier
platform"discord" or "telegram"
display_nameCurrent display name
first_seenWhen profile was created
last_updatedWhen profile was last modified
observationsTimestamped facts about the member (max 50)
notesFree-form agent notes
keywordsExtracted keywords for search (max 10)

Storage Location

Profiles are stored in:

code
profiles/
├── discord/
│   ├── index.yaml          # Fast lookup index
│   └── {member_id}.yaml    # Individual profiles
└── telegram/
    ├── index.yaml
    └── {member_id}.yaml

Examples

Remember information about a member

When a user shares that "@alice works in fintech":

bash
# First check if profile exists
python {{PLUGIN_DIR}}/tools/member_profile.py get \
  --platform discord \
  --member-id "123456789" \
  --json

# If exists, add observation:
python {{PLUGIN_DIR}}/tools/member_profile.py add-observation \
  --platform discord \
  --member-id "123456789" \
  --text "Works at a fintech startup"

# If new, create profile:
python {{PLUGIN_DIR}}/tools/member_profile.py save \
  --platform discord \
  --member-id "123456789" \
  --name "Alice" \
  --observation "Works at a fintech startup"

Look up a member

When user asks "who is @bob":

bash
python {{PLUGIN_DIR}}/tools/member_profile.py get \
  --platform discord \
  --member-id "987654321" \
  --json

Find members with specific skills

When user asks "who knows Python here":

bash
python {{PLUGIN_DIR}}/tools/member_profile.py search \
  --platform discord \
  --query "python" \
  --json

Limits

  • Observations: Max 50 per profile (oldest trimmed automatically)
  • Keywords: Max 10 per profile
  • Display name: Max 100 characters
  • Observation text: Max 500 characters
  • Notes: Max 2000 characters
  • Profiles: Supports up to 100,000 per platform

Notes

  • Profiles are platform-scoped: One profile per member per platform
  • A member active in multiple Discord servers shares one Discord profile
  • Observations are append-only - conflicting info is preserved with timestamps
  • The index enables fast search without loading all profiles
  • Use --json flag for programmatic access to output