{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ai-course-agent",
    "name": "AI Course Agent",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ohano/ai-course-agent",
    "canonicalUrl": "https://clawhub.ai/ohano/ai-course-agent",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ai-course-agent",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ai-course-agent",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "API_REQUIREMENTS.md",
      "README.md",
      "SKILL.md",
      "package-lock.json",
      "package.json",
      "src/agent.ts"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "ai-course-agent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T03:28:14.587Z",
      "expiresAt": "2026-05-06T03:28:14.587Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ai-course-agent",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ai-course-agent",
        "contentDisposition": "attachment; filename=\"ai-course-agent-0.2.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "ai-course-agent"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/ai-course-agent"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/ai-course-agent",
    "agentPageUrl": "https://openagent3.xyz/skills/ai-course-agent/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ai-course-agent/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ai-course-agent/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "AI Course Agent",
        "body": "OpenClaw Skill for auto-generating AI education courses. Detects natural language course generation requests and calls the Edustem API to create ready-to-use course content."
      },
      {
        "title": "💳 Billing & Pricing",
        "body": "This skill uses SkillPay for usage-based billing:\n\nRate: 1 token per course generation\nPricing: 1 USDT = 1000 tokens\nMinimum deposit: 8 USDT (8000 tokens = 8000 courses)\nPayment: USDT cryptocurrency via SkillPay\n\nWhen your balance runs out, the skill will return a payment link for top-up."
      },
      {
        "title": "Quick Start",
        "body": "import { isCourseLessonRequest, processUserMessage } from 'ai-course-agent';\n\n// When user sends a message:\nconst userId = req.user.sub; // Get user ID from your auth system\n\nif (isCourseLessonRequest(userInput)) {\n  const response = await processUserMessage(userInput, userId);\n  \n  // Success:\n  // \"✅ 成功为6年级数学《分数乘除法》生成课程！\\n\\n📚 课程链接: https://...\"\n  \n  // Insufficient balance:\n  // \"❌ 余额不足 (当前: 0 tokens)\\n\\n💳 请充值后继续使用: https://skillpay.me/...\"\n}"
      },
      {
        "title": "Configuration",
        "body": "Set environment variables before use:"
      },
      {
        "title": "Edustem API (Required)",
        "body": "export EDUSTEM_USERNAME=\"your-email@example.com\"\nexport EDUSTEM_PASSWORD=\"your-password\""
      },
      {
        "title": "SkillPay Billing",
        "body": "No configuration needed. SkillPay credentials are hardcoded in the skill and belong to the skill author. Payments are automatically deducted from your SkillPay balance."
      },
      {
        "title": "Supported Input Patterns",
        "body": "帮我生成6年级数学分数乘除法的课程\n帮我创建一个七年级语文从百草园到三味书屋的课程\n帮我制作9年级英语日常会话的课程\n生成8年级科学地球和宇宙的课程\n\nSupports both Arabic (6年级) and Chinese (六年级) numerals for grade levels."
      },
      {
        "title": "Supported Subjects",
        "body": "数学 · 语文 · 英语 · 科学 · 历史 · 地理 · 物理 · 化学 · 生物"
      },
      {
        "title": "Output Format",
        "body": "✅ 成功为6年级数学《分数乘除法》生成课程！\n\n📚 课程链接: https://your-api-host/ai-lesson/{lesson_ref}"
      },
      {
        "title": "API Flow",
        "body": "handleBilling(userId) — Charge user via SkillPay (1 token)\nlogin() — Authenticate and get JWT token\ncreateLessonPlan() — Create lesson plan with metadata\nacceptLessonPlan() — Confirm and trigger course generation\nReturn course URL (or payment link if balance insufficient)"
      },
      {
        "title": "Exports",
        "body": "// Main integration functions\nisCourseLessonRequest(message: string): boolean\nprocessUserMessage(userInput: string, userId: string): Promise<string>\n\n// Core functions\ngenerateCourse(request: CourseRequest, userId: string): Promise<GeneratedCourseResponse>\nparseCourseRequest(userInput: string): CourseRequest | null\n\n// SkillPay Billing\nhandleBilling(userId: string): Promise<BillingResult>\nchargeUser(userId: string, amount?: number): Promise<ChargeResult>\ngetBalance(userId: string): Promise<number>\ngetPaymentLink(userId: string, amount?: number): Promise<string>\n\n// Edustem API (lower level)\nlogin(username, password): Promise<string>\ncreateLessonPlan(token, payload): Promise<CreateLessonPlanResponse>\nacceptLessonPlan(token, lessonRef): Promise<AcceptLessonPlanResponse>\ngenerateLessonUrl(lessonRef): string"
      },
      {
        "title": "Tech Stack",
        "body": "TypeScript · Node.js · axios · form-data"
      }
    ],
    "body": "AI Course Agent\n\nOpenClaw Skill for auto-generating AI education courses. Detects natural language course generation requests and calls the Edustem API to create ready-to-use course content.\n\n💳 Billing & Pricing\n\nThis skill uses SkillPay for usage-based billing:\n\nRate: 1 token per course generation\nPricing: 1 USDT = 1000 tokens\nMinimum deposit: 8 USDT (8000 tokens = 8000 courses)\nPayment: USDT cryptocurrency via SkillPay\n\nWhen your balance runs out, the skill will return a payment link for top-up.\n\nQuick Start\nimport { isCourseLessonRequest, processUserMessage } from 'ai-course-agent';\n\n// When user sends a message:\nconst userId = req.user.sub; // Get user ID from your auth system\n\nif (isCourseLessonRequest(userInput)) {\n  const response = await processUserMessage(userInput, userId);\n  \n  // Success:\n  // \"✅ 成功为6年级数学《分数乘除法》生成课程！\\n\\n📚 课程链接: https://...\"\n  \n  // Insufficient balance:\n  // \"❌ 余额不足 (当前: 0 tokens)\\n\\n💳 请充值后继续使用: https://skillpay.me/...\"\n}\n\nConfiguration\n\nSet environment variables before use:\n\nEdustem API (Required)\nexport EDUSTEM_USERNAME=\"your-email@example.com\"\nexport EDUSTEM_PASSWORD=\"your-password\"\n\nSkillPay Billing\n\nNo configuration needed. SkillPay credentials are hardcoded in the skill and belong to the skill author. Payments are automatically deducted from your SkillPay balance.\n\nSupported Input Patterns\n帮我生成6年级数学分数乘除法的课程\n帮我创建一个七年级语文从百草园到三味书屋的课程\n帮我制作9年级英语日常会话的课程\n生成8年级科学地球和宇宙的课程\n\n\nSupports both Arabic (6年级) and Chinese (六年级) numerals for grade levels.\n\nSupported Subjects\n\n数学 · 语文 · 英语 · 科学 · 历史 · 地理 · 物理 · 化学 · 生物\n\nOutput Format\n✅ 成功为6年级数学《分数乘除法》生成课程！\n\n📚 课程链接: https://your-api-host/ai-lesson/{lesson_ref}\n\nAPI Flow\nhandleBilling(userId) — Charge user via SkillPay (1 token)\nlogin() — Authenticate and get JWT token\ncreateLessonPlan() — Create lesson plan with metadata\nacceptLessonPlan() — Confirm and trigger course generation\nReturn course URL (or payment link if balance insufficient)\nExports\n// Main integration functions\nisCourseLessonRequest(message: string): boolean\nprocessUserMessage(userInput: string, userId: string): Promise<string>\n\n// Core functions\ngenerateCourse(request: CourseRequest, userId: string): Promise<GeneratedCourseResponse>\nparseCourseRequest(userInput: string): CourseRequest | null\n\n// SkillPay Billing\nhandleBilling(userId: string): Promise<BillingResult>\nchargeUser(userId: string, amount?: number): Promise<ChargeResult>\ngetBalance(userId: string): Promise<number>\ngetPaymentLink(userId: string, amount?: number): Promise<string>\n\n// Edustem API (lower level)\nlogin(username, password): Promise<string>\ncreateLessonPlan(token, payload): Promise<CreateLessonPlanResponse>\nacceptLessonPlan(token, lessonRef): Promise<AcceptLessonPlanResponse>\ngenerateLessonUrl(lessonRef): string\n\nTech Stack\n\nTypeScript · Node.js · axios · form-data"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ohano/ai-course-agent",
    "publisherUrl": "https://clawhub.ai/ohano/ai-course-agent",
    "owner": "ohano",
    "version": "0.2.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ai-course-agent",
    "downloadUrl": "https://openagent3.xyz/downloads/ai-course-agent",
    "agentUrl": "https://openagent3.xyz/skills/ai-course-agent/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ai-course-agent/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ai-course-agent/agent.md"
  }
}