Skip to content
Back to EasyShiftPlan Public Scheduling Agent

Card snapshot

easyshiftplan.zhiyong.dev · 2026-10-17 19:50:13 UTC · d5ca5562672947e277dae9bf2298499afe8d1908d91455a2b542d97745aba4a4

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.

{
  "capabilities": {
    "extendedAgentCard": false,
    "pushNotifications": false,
    "streaming": false
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "description": "An LLM-guided scheduling agent for small businesses. It can understand free-text requests, run a complete anonymous demo with caller-selected parameters, explain the returned draft, provide verified product information, or prepare a factual and disclosed sharing draft when explicitly asked. It stays focused on scheduling and EasyShiftPlan; it does not answer unrelated chat or publish promotional copy. DeepSeek Flash plans free-text turns; the scheduling engine checks the roster. Each demo is fictional, isolated, unsaved and unpublished. No login, OAuth or access token is required. Conversation context is best-effort, process-local and expires within 15 minutes. Keep the returned result.task.contextId and send it on the next SendMessage as message.contextId (params.contextId is also accepted). While it is available, the agent can apply a simple numeric change such as changing the previous demo to 5 people; short concurrent bursts queue against shared solver capacity, and overload receives a retryable response. Resend the full scenario if the context cannot be retrieved. Clear text-only liveness and health probes are handled deterministically without calling the model or scheduler. If a probe explicitly requests a one-word reply, that exact word is returned; bare acknowledgements such as 'OK' or 'ready' are not probes. Probe responses confirm only that the A2A request was handled. Machine-readable skill index and focused usage guides: https://easyshiftplan.zhiyong.dev/.well-known/skills/index.json.",
  "documentationUrl": "https://easyshiftplan.zhiyong.dev/for-ai-assistants#a2a",
  "name": "EasyShiftPlan Public Scheduling Agent",
  "provider": {
    "organization": "EasyShiftPlan",
    "url": "https://easyshiftplan.zhiyong.dev"
  },
  "skills": [
    {
      "description": "Stay focused on small-business staff scheduling: run a fictional demo, return verified EasyShiftPlan facts for relevant product questions, or prepare a disclosed share draft only when explicitly asked. Free-text cafe requests map to restaurant; structured industry values must use the listed enum. Unrelated chat receives a brief redirect. Never publish, send or contact anyone.",
      "examples": [
        "I manage a 7-person restaurant. Can you show me a schedule for next week and tell me what needs review?",
        "What does EasyShiftPlan support for a small restaurant?"
      ],
      "id": "conversational_scheduling_guide",
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "name": "Talk through a scheduling task",
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "tags": [
        "conversation",
        "agent-to-agent",
        "scheduling guidance"
      ]
    },
    {
      "description": "Only for an explicit request in the current conversation. Returns one factual, first-party draft with a tagged link and promotional disclosure. Draft only: no posting, messaging, outreach or form submission.",
      "examples": [
        "Create a transparent short directory listing for EasyShiftPlan's restaurant scheduling demo."
      ],
      "id": "prepare_factual_share_draft",
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "name": "Prepare a factual EasyShiftPlan share draft",
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "tags": [
        "sharing",
        "promotion",
        "draft only"
      ]
    },
    {
      "description": "Create an isolated sample schedule, optionally setting industry, team size, operating days, coverage, period and fictional scheduling rules. The response is an unsaved draft for review.",
      "examples": [
        "Generate a restaurant schedule for 6 people, open Monday through Saturday, with 2 people on each shift.",
        "{\"industry\":\"restaurant\",\"team_size\":6,\"operating_days_per_week\":6,\"coverage_per_shift\":2}"
      ],
      "id": "generate_staff_schedule_demo",
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "name": "Generate a fictional staff schedule",
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "tags": [
        "staff scheduling",
        "workforce",
        "small business",
        "restaurant",
        "retail",
        "demo"
      ]
    },
    {
      "description": "Return current public product fit, boundaries, published pricing and useful links.",
      "examples": [
        "Ask a product or pricing question as text and set params.metadata to {\"shiftlyAction\":\"get_public_product_info\"}."
      ],
      "id": "get_product_information",
      "inputModes": [
        "application/json"
      ],
      "name": "Read factual product information",
      "outputModes": [
        "application/json"
      ],
      "tags": [
        "product information",
        "pricing"
      ]
    },
    {
      "description": "Submit a brief assistant-authored observation about product behavior. Do not include user prompts, personal details, real staff data, wages or real schedules. The assistant must honor an explicit opt-out.",
      "examples": [
        "Set params.metadata to {\"shiftlyAction\":\"submit_demo_feedback\"} and send a short text part."
      ],
      "id": "submit_product_feedback",
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "name": "Submit open-ended product feedback",
      "outputModes": [
        "application/json"
      ],
      "tags": [
        "feedback",
        "product improvement"
      ]
    }
  ],
  "supportedInterfaces": [
    {
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0",
      "url": "https://easyshiftplan.zhiyong.dev/a2a"
    }
  ],
  "version": "1.0.0"
}