Skip to content
Back to Sunny Yuen

Card snapshot

agent.yuens.me · 2026-06-02 03:33:11 UTC · cd1acddfca8ff5c428f65409f1bb10672cc82a31abf900a771e7e7d124b4eb27

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "protocolVersion": "1.0",
  "url": "https://agent.yuens.me",
  "name": "Sunny Yuen",
  "description": "Self-sovereign AI agent representing this professional's canonical profile. Query skills, experience, and availability \u2014 responses are grounded in data the individual publishes and controls, not fabricated by the calling AI.",
  "version": "1.3.0",
  "securitySchemes": {},
  "security": [
    {}
  ],
  "provider": {
    "organization": "Sunny Yuen",
    "url": "https://github.com/yuens1002",
    "contact": "sunny@yuens.me",
    "identity": {
      "fingerprint": "bZCBY6x_RnGLyQgnCY0lN7CvpiBZMvRUBo68oeisPYc",
      "key_url": "https://agent.yuens.me/.well-known/oep-public-key.json"
    }
  },
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extensions": [
      {
        "uri": "https://agent.yuens.me/.well-known/agent-card.json#supported-interfaces",
        "description": "Protocol bindings supported by this agent (MCP, HTTP+JSON).",
        "required": false,
        "params": {
          "supportedInterfaces": [
            {
              "url": "https://agent.yuens.me/public-mcp",
              "protocolBinding": "MCP",
              "protocolVersion": "2025-03-26"
            },
            {
              "url": "https://agent.yuens.me",
              "protocolBinding": "HTTP+JSON",
              "protocolVersion": "1.0"
            }
          ]
        }
      },
      {
        "uri": "https://agent.yuens.me/.well-known/agent-card.json#api-docs",
        "description": "Custom API documentation, rate limits, and contact metadata.",
        "required": false,
        "params": {
          "rate_limits": {
            "requests_per_minute": 30,
            "scope": "per_ip"
          },
          "contact": {
            "email": "sunny@yuens.me",
            "calendly": "https://calendly.com/syuen-sbgrp/get_to_know_you"
          },
          "endpoints": {
            "info": {
              "url": "https://agent.yuens.me/info",
              "method": "GET"
            },
            "availability": {
              "url": "https://agent.yuens.me/availability",
              "method": "GET"
            },
            "query": {
              "url": "https://agent.yuens.me/query",
              "method": "POST"
            },
            "match": {
              "url": "https://agent.yuens.me/match",
              "method": "POST"
            },
            "projects": {
              "url": "https://agent.yuens.me/projects",
              "method": "GET"
            },
            "observations": {
              "url": "https://agent.yuens.me/observations",
              "method": "GET"
            }
          }
        }
      }
    ]
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "query",
      "name": "Query Profile",
      "description": "Ask natural language questions about this candidate's skills, experience, and background. Answers are grounded in project observations and lived experience, not just resume bullets \u2014 behavioral and decision-making questions draw on the candidate's own captured notes about how and why they built things.",
      "tags": [
        "resume",
        "profile",
        "skills",
        "experience",
        "behavioral"
      ],
      "examples": [
        "What is your experience with TypeScript?",
        "How do you decide what features to build?",
        "Walk me through a hard engineering tradeoff you made."
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "match",
      "name": "Job Match",
      "description": "Score this candidate against a job description and return a fit breakdown.",
      "tags": [
        "matching",
        "job-fit",
        "scoring"
      ],
      "examples": [
        "Senior frontend engineer, React, TypeScript, 5+ years."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "info",
      "name": "Profile Info",
      "description": "Returns full profile data including skills, employment, education, and projects.",
      "tags": [
        "profile",
        "resume",
        "info"
      ],
      "examples": [],
      "inputModes": [],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "availability",
      "name": "Availability",
      "description": "Returns current availability status and preferred roles.",
      "tags": [
        "availability",
        "status"
      ],
      "examples": [],
      "inputModes": [],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "projects",
      "name": "Portfolio Projects",
      "description": "Returns all portfolio projects with tech stack, highlights, and architecture.",
      "tags": [
        "projects",
        "portfolio"
      ],
      "examples": [],
      "inputModes": [],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}