# AILens **Repository Path**: alibaba/AILens ## Basic Information - **Project Name**: AILens - **Description**: Full-stack observability for AI — starting with end-to-end RL post-training, expanding to Agent and inference engine monitoring. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-01 - **Last Updated**: 2026-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
[English](README.md) | [中文](README_CN.md) **AI Lens** 是面向 AI Agent 训练与生产系统的开源可观测平台。提供强化学习(RL)训练全链路可见性——从实验管理、轨迹分析,到实时服务监控和链路查询。 ## 功能特性 ### 已上线 — RL 训练可观测 **Experiments(实验)** - **Experiment List** — 一览所有实验的核心指标(通过率、Reward、Token 用量、迭代数) - **Experiment Overview** — 单实验的收敛曲线、Reward 分布与效率指标可视化 - **Task Analysis** — 按 Language / Category 维度的 Pass Rate,识别薄弱 Task 和训练瓶颈 - **Tool Analysis** — 工具调用质量、错误模式与实验内行为趋势分析 - **Trajectory Explorer** — 多维度过滤(Outcome、Iteration、Language、Reward、Turns、Task ID),行内抽屉查看详情;可从 Experiment、Task、Dataset 多个入口复用 - **Trajectory View** — 逐 Turn 回放单条轨迹,还原推理过程、工具调用与观察结果,定位失败根因 **Datasets(数据集)** - **Dataset Dashboard** — 全局聚合视图:数据集总数、任务数、实验数、轨迹数及最高通过率;点击任意行直达 Task Explorer - **Task Explorer** — 跨实验的 Task 分析,支持锁定数据集或实验;按 Language、Pass Rate 范围过滤;点击 Task 下钻到 Trajectory Explorer **Traces(链路追踪)** - **Trace Search** — 基于 OpenTelemetry + TraceQL 的 Agent Trace 查询与 Span Waterfall 视图 ### 规划中 - **个人维度 Agent 可观测** — 单用户 Session 追踪与行为分析 - **Agent 服务指标** — LLM / Tool / Skill 分层运行时指标 ## 信息架构 ``` AILens(主产品) │ ├── Training(RL 可观测) │ │ │ ├── Experiments │ │ └── Experiment List # list 所有实验和核心指标 │ │ └── Experiment Detail # 深入理解单一实验全貌,定位问题与验证效果 │ │ ├── Experiment Overview # 实验整体训练效果的宏观判断 │ │ ├── Task Analysis # 识别 Task 级别的趋势和短板 │ │ │ └── Task Explorer(锁定 Experiment 和 DataSet) # 在 Experiment 上下文中逐一排查所有 Task │ │ │ └── Trajectory Explorer(锁定 Experiment 和 Task) # 同 Task 多次执行的横向对比 │ │ │ └── Trajectory View # 推理过程回放,逐 Turn 还原单次轨迹,定位失败根因 │ │ ├── Tool Analysis # 评估工具调用质量与瓶颈 │ │ ├── ... │ │ └── Trajectory Explorer(锁定 Experiment) # 从实验维度全局查看轨迹质量与分布 │ │ └── Trajectory View # 推理过程回放,逐 Turn 还原单次轨迹,定位失败根因 │ │ │ └── DataSets # 管理评测数据集,掌握数据资产全景 │ └── DataSet List # list 所有数据集 │ └── Task Explorer(锁定 DataSet) # list 特定数据集下所有 Task 及核心指标 │ └── Task Detail # 从数据视角分析 Task 跨实验、跨 Scaffold、跨模型表现 │ └── Trajectory Explorer(锁定 Task) # 查看该 Task 所有执行轨迹的原始数据 │ └── Trajectory View # 推理过程回放,逐 Turn 还原单次轨迹,定位失败根因 ``` ## 系统架构 ### 查询链路(读) ``` ┌──────────────┐ REST/JSON ┌─────────────────┐ TraceQL ┌─────────────────┐ │ 前端 │ ────────────▶ │ 后端 │ ──────────▶ │ 网关 │ │ React + TS │ │ Python FastAPI │ │ Java/ClickHouse │ └──────────────┘ └─────────────────┘ └─────────────────┘ │ ┌────────▼────────┐ │ ClickHouse │ └─────────────────┘ ``` ### 写入链路(数据上报) ``` RL 训练轨迹: HarborSDK ──▶ OTel Collector(logs pipeline) ──▶ otel_logs ──▶ rl_traces(MV) │ ClickHouse Agent 服务链路追踪: │ OTel SDK ──▶ OTel Collector(traces pipeline) ──▶ otel_traces └── 单个 otelcol-contrib 实例,端口 4317/4318 ``` | 服务 | 技术栈 | 端口 | |------|--------|------| | 前端 | React 19, TypeScript, Vite, Ant Design, ECharts | 3000 | | 后端 | Python 3.11+, FastAPI, Pydantic v2, Prometheus | 8000 | | 网关 | Java 21, Spring Boot, ANTLR4, ClickHouse | 8080 | | OTel Collector | otelcol-contrib(logs + traces 双 pipeline) | 4317(gRPC)/ 4318(HTTP) | ## 快速开始 ### 方式一 — Docker Compose(推荐) ```bash git clone https://github.com/alibaba/AILens.git cd AILens/deploy docker-compose up -d ``` 启动后访问: | 服务 | 地址 | |------|------| | 前端 | http://localhost:3000 | | 后端 API | http://localhost:8000 | | 后端 Swagger | http://localhost:8000/docs | | 网关 | http://localhost:8080 | | OTel Collector gRPC | localhost:4317 | | OTel Collector HTTP | localhost:4318 | **数据上报:** - **Agent 链路追踪** — 将 OTel SDK 的 exporter endpoint 指向 `http://localhost:4318`(HTTP)或 `localhost:4317`(gRPC) - **RL 训练轨迹** — 将 HarborSDK 的 logs exporter 指向 `http://localhost:4318`,数据写入 `otel_logs` 后由 `rl_traces` 物化视图自动聚合 ### 方式二 — 本地开发 **前置条件:** Python 3.11+、Node.js 20+、**Java 21+**、Maven 3.6+ > 注意:网关需要 Java 21。若系统默认版本较低,需手动指定 `JAVA_HOME`(见下方步骤)。 **1. 启动网关** ```bash # 首次运行需先编译 cd gateway JAVA_HOME=/path/to/jdk-21 mvn clean package -DskipTests -q # 运行,通过环境变量传入 ClickHouse 连接信息 JAVA_HOME=/path/to/jdk-21 \ CLICKHOUSE_URL="jdbc:clickhouse://