Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计通过

iblai-analytics易卜莱分析

Agent Skill

用于辅助数据整理、表格处理、CSV/Excel 分析、指标计算和图表准备。它适合让 Agent 清洗字段、汇总数据、发现异常、生成统计口径或把分析结果转成可读说明。使用时需要确认数据来源、字段含义和时间范围,避免把样本数据当全量事实;涉及敏感数据、导出文件或批量写回时,应先确认权限和脱敏边界。

总安装

1,104

周安装

46

GitHub Stars

14

下载量

368
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:iblai-analytics(易卜莱分析)
来源仓库:https://github.com/iblai/vibe
仓库路径:skills/iblai-analytics
安装命令:
npx skills add https://github.com/iblai/vibe --skill iblai-analytics
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/iblai/vibe --skill iblai-analytics

简介

用于辅助数据整理、表格处理、适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

  • CSV/Excel 分析、指标计算和图表准备。
  • 适合清洗字段、汇总数据、发现异常或生成统计口径。
  • 使用时需确认数据来源、字段含义和时间范围, 避免样本当全量事实。iblai-analytics 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

/iblai-analytics

Add an analytics dashboard with a tabbed layout (AnalyticsLayout): Overview, Courses, Programs, Users, Topics, Financial, Transcripts, Reports. Each tab is a Next.js route under /analytics/.

Analytics Page

Do NOT add custom styles to ibl.ai SDK components. Do NOT implement dark mode unless asked. Follow the component hierarchy: ibl.ai SDK (@iblai/iblai-js) first, then shadcn/ui (npx shadcn@latest add).

Prerequisites

  • Auth set up (/iblai-auth)
  • MCP and skills set up (iblai add mcp)
  • iblai.env populated with PLATFORM, DOMAIN, TOKEN. If missing: curl -o iblai.env https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/iblai.env

Generate

iblai --version    # upgrade if outdated: pip install --upgrade iblai-app-cli OR npm i -g @iblai/cli@latest
iblai add analytics

Generated: app/(app)/analytics/page.tsx (overview only). You create the layout and sub-pages manually.

Layout

Wrap pages with AnalyticsLayout + AnalyticsSettingsProvider. The SDK layout uses bg-[#f5f7fb] internally — wrap it in a white card so it pops against the page background.

// app/(app)/analytics/layout.tsx
"use client";

import { AnalyticsLayout, AnalyticsSettingsProvider } from "@iblai/iblai-js/web-containers";
import { usePathname, useRouter } from "next/navigation";

export default function AnalyticsLayoutWrapper({ children }: { children: React.ReactNode }) {
  const pathname = usePathname();
  const router = useRouter();
  const basePath = "/analytics";

  return (
    <div className="mx-auto w-full flex-1 overflow-auto px-4 py-8 md:w-[75vw] md:px-0">
      <div className="rounded-lg border border-[var(--border-color)] bg-white overflow-hidden">
        <AnalyticsSettingsProvider value={{}}>
          <AnalyticsLayout
            currentPath={pathname}
            basePath={basePath}
            onTabChange={(tab) => router.push(tab ? `${basePath}/${tab}` : basePath)}
          >
            {children}
          </AnalyticsLayout>
        </AnalyticsSettingsProvider>
      </div>
    </div>
  );
}

Sub-pages

All components import from @iblai/iblai-js/web-containers. Pattern:

"use client";
import { useEffect, useState } from "react";
import { AnalyticsCourses } from "@iblai/iblai-js/web-containers";
import { resolveAppTenant } from "@/lib/iblai/tenant";

export default function CoursesPage() {
  const [tenantKey, setTenantKey] = useState("");
  useEffect(() => { setTenantKey(resolveAppTenant()); }, []);
  if (!tenantKey) return null;
  return <AnalyticsCourses tenantKey={tenantKey} mentorId="" basePath="/analytics" />;
}
RouteComponentbasePath?
/analyticsAnalyticsOverview
/analytics/coursesAnalyticsCourses
/analytics/programsAnalyticsPrograms
/analytics/usersAnalyticsUsersStats
/analytics/topicsAnalyticsTopicsStats
/analytics/financialAnalyticsFinancialStats— (does NOT accept basePath)
/analytics/transcriptsAnalyticsTranscriptsStats
/analytics/reportsAnalyticsReports

All accept tenantKey (required) and mentorId="" ("" = org-wide, not undefined). Use MCP for full props: get_component_info("AnalyticsOverview"), etc.

Verify

pnpm build && pnpm test
pnpm dev &
npx playwright screenshot http://localhost:3000/analytics /tmp/analytics.png

Notes

  • Redux store must include mentorReducer and mentorMiddleware.
  • initializeDataLayer() takes 5 args (data-layer v1.2+).
  • @reduxjs/toolkit deduped via webpack aliases in next.config.ts.
  • To override the SDK gray background to white, in globals.css: .bg-\[\#f5f7fb\] {background-color: #fff!important;}

Analytics REST API

Base URL: ${dmUrl}/api/ai-analytics/ and ${dmUrl}/api/analytics/dmUrl is the first arg passed to initializeDataLayer() (sourced from NEXT_PUBLIC_API_BASE_URL). Auth: Authorization: Token <token> Live OpenAPI: https://api.iblai.app/dm/api/docs/schema/swagger-ui/

Two namespaces: /api/ai-analytics/ (AI/agent analytics — chat, costs, sentiment, topics, traces, audience/engagement/performance dashboards) and /api/analytics/ (LMS analytics — content, financial, ratings, sessions, time, users). Most endpoints scope to {org} (the platform/tenant key).

Prefer SDK RTK Query hooks over hand-rolled fetch. Use get_api_query_info("<hookName>") in MCP to find the relevant hook before writing custom UI.

{user_id} in /api/ai-analytics/orgs/{org}/users/{user_id}/... is the requesting admin's user id (RBAC + audit), not the user being queried — pass that via filter_user_id.

Common query parameters

ParameterDescription
start_date, end_dateISO 8601. Default range: last 7 days
date_filtertoday \7d \30d \90d \all_time \custom
granularityhour \day \week \month
department_id (with department_mode=1)Scope to a department
include_main_platformInclude main platform data. Default: true
mentor_unique_idFilter to one mentor/agent
usergroup_ids[]Filter to user groups
platform_keyFilter to a platform
page, page_size (or limit ≤ 100)Pagination

Audience — /api/ai-analytics/audience/orgs/{org}/

PathReturns
active-users/over-timeDaily active users with vs-prior-period delta
active-users/per-courseActive users per course
active-users/usersList of active users
enrollments/over-timeDaily enrollments
enrollments/per-courseEnrollments per course
enrollments/courses/{course_id}/over-timeTrend for one course
enrollments/courses/{course_id}/usersEnrolled learners
registered-users/, registered-users/over-time, registered-users/per-courseRegistered user count, trend, per-course

Engagement — /api/ai-analytics/engagement/orgs/{org}/

PathReturns
activityActivity heatmap
course_completion/over-time, course_completion/per-courseCompletion trend, per-course rate
time/over-time, time/per-course, time/average-perlearner-percourse, time/average-with-over-timeOrg-wide time aggregates
videos/, videos/over-timeOrg-wide video stats
courses/{course_id}/time/{average,detail,over-time,users}Course time metrics
courses/{course_id}/time/users/{user_id}/{detail,over-time}Per-learner time inside a course
courses/{course_id}/videos/, courses/{course_id}/videos/{over-time,summary,users}Course video metrics

Overview — /api/ai-analytics/overview/orgs/{org}/

active-users, average-grade, courses/completions, learners, most-active-courses, registered-users — top-level dashboard cards.

Performance — /api/ai-analytics/performance/orgs/{org}/

PathReturns
grading/average, grading/per-courseOrg-wide grade aggregates
courses/{course_id}/grading/{average,average-with-cutoff,detail,per-learner,summary}Per-course grade metrics

Per-Learner — /api/ai-analytics/perlearner/orgs/{org}/

PathReturns
learners, usersLearner roster (alternate routes)
users/{user_id}/{activity,info,last-access}Profile + activity
users/{user_id}/grades/per-courseGrades per course
users/{user_id}/overview/{engagement-index,grades/average,performance-index,time/over-time}Score cards
users/{user_id}/videos/{over-time,per-course}Video stats
users/{user_id}/courses/{course_id}/overview/{engagement-index,grade,performance-index,time/over-time}Per-course score cards
users/{user_id}/courses/{course_id}/grading/{cutoffs,detail,summary}Per-course grading
users/{user_id}/courses/{course_id}/videos, .../videos/over-timePer-course videos

AI Mentor / User — /api/ai-analytics/orgs/{org}/users/{user_id}/

Chat history

MethodPath
GET POSTchat-history/ (filter by start_date, end_date, mentor, sentiment, topics, filter_user_id, page)
GET PUT PATCH DELETEchat-history/{id}/
GETchat-history-filter/
GETconversation/, conversation-summary/
GETmy-chat-history/, my-chat-history/{id}/, my-chat-history-filter/
GET POSTmy-chat-history-report/ (export task)
GETmy-chat-history-report/{task_id}/, my-chat-history-report/{task_id}/download/

Mentors, costs, topics, sentiment, usage

GroupPaths
Mentorsmentor-detail/, mentor-summary/, total-users-by-mentor/, mentors/{mentor_unique_id}/cost/
Costscosts/{model,permentor,peruser}/, tenant-cost/, user-cost/
Topicsmost-discussed-topics/, topic-overview/, topic-statistics/, topics/summary/
Sentiment / feedbacksentiment-count/, user-sentiment/, rating-summary/, user-feedback/
Usageaverage-messages-per-session/, usage-summary/, overview-summary/, top-students-by-chat-messages/, user-cohorts-over-time/, user-metrics/, user-metrics-pie-chart/, registered-users-trend/
Observations / traces / transcriptsobservations/, observations/{id}/, traces/, traces/{id}/, transcripts/

Misc

PathReturns
/api/ai-analytics/costs/pertenant/Cost grouped by tenant
/api/ai-analytics/departments/orgs/{org}/Departments
/api/ai-analytics/user-groups/orgs/{org}/User groups

LMS Analytics — /api/analytics/

Accepts date_filter, granularity, metric, mentor_unique_id, platform_key, usergroup_ids, page, limit ≤ 100.

MethodPathReturns
GETcontent/Catalog content (`metric=course\program\pathway\skill`)
GETcontent/details/{content_id}/Per-item detail
GETconversations/Conversations
GETfinancial/, financial/details/, financial/invoice/Financial
GETlearners/, learners/list/, learner/detailsLearners
GETmessages/, messages/details/Messages
GETratings/, sessions/, time/, time-spent/user/, topics/, topics/details/, users/, users/details/Other
POSTorgs/{org}/time/update/Push time-on-platform

RBAC

Ibl.Analytics/Core/read (viewer) or Ibl.* (tenant admin). Per-learner and chat-history endpoints also require platform admin.

Example

curl "${dmUrl}/api/ai-analytics/audience/orgs/main/active-users/over-time?date_filter=30d" \
  -H "Authorization: Token ${TOKEN}"

curl "${dmUrl}/api/analytics/content/?metric=courses&date_filter=7d&include_overtime=true" \
  -H "Authorization: Token ${TOKEN}"

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.83%
按下载量换算136

Claude

30.27%
按下载量换算111

Cursor

17.36%
按下载量换算64

Gemini CLI

9.35%
按下载量换算34

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills