Doramagic 项目包 · 项目说明书

RagaAI-Catalyst 项目

面向智能体 AI 的可观测性、监控与评估框架的 Python SDK,支持 agent、LLM 与工具链路追踪、多智能体系统调试、自托管仪表盘,以及带有时间线和执行图视图的高级分析功能。

RagaAI-Catalyst 概述、安装与项目初始化

RagaAI Catalyst 是一个面向 LLM 与 Agentic AI 应用的综合性 Python SDK 与平台,旨在帮助开发者对 LLM 项目进行管理、优化、评估、追踪与防护。根据 README.md 的描述,其核心功能涵盖项目(Project)管理、数据集(Dataset)管理、评估(Evaluation)管理、追踪(Trace)管理、提示词(Prompt)管理...

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 2.1 安装

继续阅读本节完整说明和来源证据。

章节 2.2 认证与环境变量

继续阅读本节完整说明和来源证据。

章节 3.1 初始化流程

继续阅读本节完整说明和来源证据。

1. 项目概述与定位

RagaAI Catalyst 是一个面向 LLM 与 Agentic AI 应用的综合性 Python SDK 与平台,旨在帮助开发者对 LLM 项目进行管理、优化、评估、追踪与防护。根据 README.md 的描述,其核心功能涵盖项目(Project)管理、数据集(Dataset)管理、评估(Evaluation)管理、追踪(Trace)管理、提示词(Prompt)管理、合成数据生成(SDG)、Guardrail 管理以及 Red-teaming 等多个模块,可用于完整支撑 LLM 应用的“开发-评估-上线-监控”闭环。

在子模块层面,ragaai_catalyst 包通过顶层 __init__.py 统一导出主要入口类,资料来源:ragaai_catalyst/__init__.py。从使用范式上看,平台采用“统一客户端 + 多功能子模块”的架构:RagaAICatalyst 是顶层入口,后续所有子能力(数据集、评估、追踪、提示词、Guardrail、Red-teaming)都通过它创建具体 Manager 对象。

flowchart LR
    U[用户代码] -->|import| Pkg[ragaai_catalyst 包]
    Pkg --> Init[RagaAICatalyst 初始化]
    Init -->|create_project| PM[Project Management]
    Init --> DS[Dataset Management]
    Init --> EV[Evaluation]
    Init --> TR[Trace / Agentic Tracing]
    Init --> PR[Prompt Management]
    Init --> GD[GuardrailsManager]
    Init --> RT[RedTeaming]
    Pkg --> SDG[Synthetic Data Generation]
    Pkg --> Init2[init_tracing 自动埋点]

2. 安装与认证配置

2.1 安装

RagaAI Catalyst 通过 PyPI 分发,安装命令如 README.md 中所述:

pip install ragaai-catalyst

各示例(examples)目录下的子项目则需要在各自目录中通过 pip install -r requirements.txt 安装额外依赖,例如 examples/haystack/news_fetching/README.md 需安装 Haystack、SerperDev 依赖;examples/smolagents/most_upvoted_paper/README.md 需安装 arxivrequestsbeautifulsoup4huggingface_hubpypdf 等。

2.2 认证与环境变量

在使用任何 API 操作前必须完成认证,资料来源:README.md。在 RagaAICatalyst 客户端中可显式传入凭据:

from ragaai_catalyst import RagaAICatalyst

catalyst = RagaAICatalyst(
    access_key="YOUR_ACCESS_KEY",
    secret_key="YOUR_SECRET_KEY",
    base_url="BASE_URL"
)

同时官方在 v2.2.1 中加入了“每 6 小时自动刷新 token”的能力,资料来源:Release 2.2.1。各示例项目还使用了一组标准环境变量,下表汇总了常见的可配置项:

环境变量含义来源示例
CATALYST_ACCESS_KEY / CATALYST_SECRET_KEY访问凭证examples/openai_agents_sdk/youtube_summary_agent/README.md
CATALYST_BASE_URL平台后端地址examples/openai_agents_sdk/youtube_summary_agent/README.md
PROJECT_NAME项目名examples/haystack/news_fetching/README.md
DATASET_NAME数据集名examples/haystack/news_fetching/README.md
RAGAAI_CATALYST_TOKENBearer Token(内部 API 调用)ragaai_catalyst/tracers/agentic_tracing/utils/create_dataset_schema.py
OPENAI_API_KEY / SERPERDEV_API_KEY / YOUTUBE_API_KEY上游模型或工具密钥examples/haystack/news_fetching/README.md、examples/openai_agents_sdk/email_data_extraction_agent/README.md

凭据生成流程位于个人资料设置中:依次进入 Profile → Authenticate → Generate New Key,资料来源:README.md。

3. 客户端初始化与项目(Project)管理

3.1 初始化流程

RagaAICatalyst 是所有子模块的统一入口。其内部封装了认证、Token 刷新、API 基地址等共享信息。以追踪模块为例,资料来源:ragaai_catalyst/tracers/agentic_tracing/utils/create_dataset_schema.py 显示,底层 API 会通过 Authorization: Bearer <RAGAAI_CATALYST_TOKEN>X-Project-Name 头进行调用,说明 project_name 是平台端隔离数据的关键维度。

3.2 项目创建、查询与用例

根据 README.md 提供的示例:

# 创建项目
project = catalyst.create_project(
    project_name="Test-RAG-App-1",
    usecase="Chatbot"
)

# 获取项目可选用例
catalyst.project_use_cases()

# 列出所有项目
projects = catalyst.list_projects()
print(projects)

要点:

  • create_project 必须指定 project_nameusecase(如 Chatbot、RAG 等),决定了后续可用的评估指标与模板。
  • project_use_cases() 用于查询当前账号支持的 usecase 枚举值。
  • list_projects() 返回项目列表,便于在多项目环境(如多业务线)下做选择。

在 v2.2.4 发布说明中,“在运行时更新 tracer 的项目名(Update project name in tracer on runtime)” 被列为新功能,资料来源:Release 2.2.4,意味着项目名不再是“一经绑定不可更改”的硬约束。

4. 常见问题与最佳实践

  1. 追踪为空(Issue #26):社区反馈在使用 trace_agent 装饰器时未记录到 tool_callllm_call,资料来源:Issue #26。这通常与未正确接入 init_tracing 或工具/LLM 包装器有关,建议参照 ragaai_catalyst/tracers/agentic_tracing/README.md 中“LLM Tracer / Tool Tracer”两节进行核对。
  2. Dataset Schema 创建:在追踪链路中,需要先创建与项目关联的 dataset schema,资料来源:ragaai_catalyst/tracers/agentic_tracing/utils/create_dataset_schema.py,其内部调用 /v1/llm/dataset/logs 端点,并要求 RAGAAI_CATALYST_TOKENX-Project-Name 同时存在。
  3. 统一追踪格式:v2.2.1 之后,RAG 与 Agentic Trace 的格式被统一,资料来源:Release 2.2.1,建议在升级 SDK 后清理旧 trace,避免格式差异导致解析错误。
  4. 多示例工程结构:各集成示例(Haystack、SmoLAgents、OpenAI Agents SDK 等)均采用 Project + Dataset 作为追踪上下文根节点,资料来源:examples/openai_agents_sdk/email_data_extraction_agent/README.md、examples/smolagents/most_upvoted_paper/README.md。

See Also

来源:https://github.com/raga-ai-hub/RagaAI-Catalyst / 项目说明书

追踪管理与 Agentic Tracing(社区高频议题)

RagaAI-Catalyst 的追踪管理(Trace Management)模块是整个 SDK 的核心观测层,用于在 LLM、工具、网络、用户交互等多个维度上对 Agent 系统进行全链路可观测化采集、上传与分析。追踪模块同时支持 RAG(检索增强生成)与 Agentic(智能体)两种主要场景,社区在 issue 26 中反馈"使用 traceagent 装饰器后未记录到...

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 基础追踪器

继续阅读本节完整说明和来源证据。

章节 LLM 追踪器

继续阅读本节完整说明和来源证据。

章节 工具与网络追踪器

继续阅读本节完整说明和来源证据。

概述

RagaAI-Catalyst 的追踪管理(Trace Management)模块是整个 SDK 的核心观测层,用于在 LLM、工具、网络、用户交互等多个维度上对 Agent 系统进行全链路可观测化采集、上传与分析。追踪模块同时支持 RAG(检索增强生成)与 Agentic(智能体)两种主要场景,社区在 issue #26 中反馈"使用 trace_agent 装饰器后未记录到工具调用和 LLM 调用",说明追踪功能的正确配置与使用是开发者最常遇到的问题之一。资料来源:README.md ;社区反馈参见 issue #26。

Agentic Tracing 子模块在 ragaai_catalyst/tracers/agentic_tracing/ 目录下提供了完整的目录划分,包括 tracers、data、utils、tests、upload 五大子目录,封装了从埋点到上传的全套能力。资料来源:ragaai_catalyst/tracers/agentic_tracing/README.md。

架构与组成

Agentic Tracing 模块内部按职责被拆分为以下子模块:

子模块主要文件职责
Tracersmain_tracer.pyagent_tracer.pybase.pyllm_tracer.pynetwork_tracer.pytool_tracer.pyuser_interaction_tracer.py核心追踪实现
Datadata_classes.pyLLM 调用、网络请求、工具执行、追踪组件等结构化数据类型
Utilsapi_utils.pyfile_name_tracker.pygeneric.pyllm_utils.pytrace_utils.pyunique_decorator.pyAPI、模型成本、token 计算、唯一哈希等工具
Tests示例 Notebook 与单元测试AI Travel Agent、Unique Decorator Tests 等
Upload代码上传组件将追踪数据上传至 RagaAI 后端

资料来源:ragaai_catalyst/tracers/agentic_tracing/README.md。

基础类 RagaAICatalyst 中定义了 BASE_URL,作为默认服务端点;工具函数 create_dataset_schema_with_trace 通过 POST {BASE_URL}/v1/llm/dataset/logs 接口创建带追踪的 dataset schema。资料来源:ragaai_catalyst/tracers/agentic_tracing/utils/create_dataset_schema.py。

追踪器组件详解

基础追踪器

RagaAICatalyst 是所有追踪器的基类,承载认证、URL 配置等通用能力。资料来源:ragaai_catalyst/tracers/agentic_tracing/tracers/base.py(由 README 引用)。

LLM 追踪器

负责监控语言模型调用,覆盖 token 使用、成本计算、输入/输出内容、模型参数四大维度。llm_utils.py 中包含模型名抽取、token 使用量计算、成本计算、参数清洗等工具;utils/model_costs.json 提供不同模型的定价配置。资料来源:ragaai_catalyst/tracers/agentic_tracing/README.md。

工具与网络追踪器

tool_tracer.py 监控工具使用与执行;network_tracer.py 跟踪网络活动与 API 调用;user_interaction_tracer.py 负责用户交互与反馈的追踪记录。资料来源:ragaai_catalyst/tracers/agentic_tracing/README.md。

唯一装饰器

unique_decorator.py 提供 generate_unique_hash 函数,基于函数源码、参数生成稳定哈希,用于在多次调用中为相同业务逻辑打上唯一标识。源码归一化通过 normalize_source_code 完成,使用 tokenize 模块剔除注释但保留 docstring。资料来源:ragaai_catalyst/tracers/agentic_tracing/utils/unique_decorator.py。

跨框架适配与数据流

RagaAI-Catalyst 通过多个工具模块将 LangChain、LlamaIndex、OpenInference 等生态的回调数据统一转换为内部追踪格式。

flowchart LR
    A[LangChain Callbacks] --> B[convert_langchain_callbacks_output]
    C[LlamaIndex Events] --> D[extraction_logic_llama_index]
    E[RAG Spans] --> F[rag_trace_json_converter]
    B --> G[统一 trace JSON]
    D --> G
    F --> G
    G --> H[upload_traces / dataset log API]
    H --> I[(RagaAI 后端)]
  • convert_langchain_callbacks_output 将 LangChain 的 prompt、context、response 转化为 retrieve_documents.langchain.workflowPromptTemplate.langchain.taskChatOpenAI.langchain.task 等标准 span 名称。资料来源:ragaai_catalyst/tracers/utils/convert_langchain_callbacks_output.py。
  • extraction_logic_llama_index 解析 QueryStartEventQueryEndEventRetrievalEndEvent 等 LlamaIndex 事件,提取 prompt、context、response 字段。资料来源:ragaai_catalyst/tracers/utils/extraction_logic_llama_index.py。
  • rag_trace_json_converterget_additional_metadata 通过判断 span 名(如 ChatOpenAIChatAnthropicChatBedrockAzureChatOpenAI 等)累计 cost、tokens、latency 等指标。资料来源:ragaai_catalyst/tracers/utils/rag_trace_json_converter.py。

社区高频议题与版本演进

追踪记录缺失(issue #26)

开发者使用 trace_agent 装饰器后,仪表板中未出现 tool_callllm_call 记录。典型排查路径为:确认 init_tracing 是否已调用、检查被装饰函数是否实际触发 LLM/工具调用、确认 project_namedataset_name 已正确传递。资料来源:README.md ;社区反馈 issue #26。

追踪统一化与错误捕获

v2.2.1 发布说明指出:"Unify the trace format for RAG, Agentic Traces"、"Add greater support to capture errors"、"Add feature to automatically refresh token after every 6 hrs",这意味着 RAG 与 Agentic 两条追踪链路被合并为同一数据格式,并强化了对异常路径的捕获。资料来源:v2.2.1 Release Notes

成本计算与字段脱敏

v2.2.3 修复了 litellm 的成本计算,并将 model_namecostlatencyspan_idtrace_id 等关键字段在 masking 时排除。资料来源:v2.2.3 Release Notes。v2.2.4 进一步支持在运行时更新 tracer 的 project_name,并修复了 dataset 名称更新时 external_idmetadata 同步异常的问题。资料来源:v2.2.4 Release Notes

可信审计与第三方生态集成(社区讨论)

issue #259 提出"防篡改审计日志"诉求,issue #250 建议接入 WFGY Problem Map 作为 16 模式 RAG 失败分类法,issue #264 提议整合 Merxex 进行 Agent Commerce 标准化。这些方向目前尚未合并至主线,但反映了社区对追踪系统在合规、失败归因、商业化方面的延伸需求。资料来源:issue #259、#250、#264。

配置与使用

基础启用流程包括:在 .env 中配置 CATALYST_ACCESS_KEYCATALYST_SECRET_KEYCATALYST_BASE_URLPROJECT_NAMEDATASET_NAME;通过 catalyst = RagaAICatalyst(...)tracer = Tracer(...) 创建实例;调用 init_tracing(catalyst=catalyst, tracer=tracer) 开启自动埋点。资料来源:README.md;examples/haystack/news_fetching/README.md;examples/openai_agents_sdk/youtube_summary_agent/README.md。

不同生态的示例工程均演示了追踪的实际接入方式:

  • Haystack:MessageCollector + OpenAIChatGenerator + ConditionalRouter + ToolInvoker 流水线,调用 SerperDevWebSearch 工具时由 RagaAI 统一记录。资料来源:examples/haystack/news_fetching/README.md。
  • OpenAI Agents SDK:YouTube 摘要 Agent 与 Email 数据抽取 Agent 通过 init_tracing 接入。资料来源:examples/openai_agents_sdk/youtube_summary_agent/README.md;examples/openai_agents_sdk/email_data_extraction_agent/README.md。
  • SmoLAgents:Most Upvoted Paper 示例串联 HF、arXiv、PDF 处理与 Qwen 摘要多个工具调用。资料来源:examples/smolagents/most_upvoted_paper/README.md。

See Also

  • 项目主页与快速上手:README.md
  • Agentic Tracing 模块说明:ragaai_catalyst/tracers/agentic_tracing/README.md
  • 版本更新记录:v2.2.4v2.2.3v2.2.1v2.1.7.4
  • 相关 issue:#26(追踪记录缺失)、#259(防篡改审计)、#264(Agent Commerce 集成)

资料来源:ragaai_catalyst/tracers/agentic_tracing/README.md。

数据集管理、评估实验与合成数据生成

RagaAI Catalyst 的 Python SDK 围绕「Agent AI 可观测、监控与评估」这一核心目标,向下延伸出完整的数据生命周期管理能力。本页聚焦三大子模块:Dataset(数据集管理)、Evaluation(指标评估实验)以及 SyntheticDataGeneration(合成数据生成,SDG)。它们组合起来构成「数据接入 → 数据集沉淀 → 自动评估 ...

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 初始化与列表查询

继续阅读本节完整说明和来源证据。

章节 从 CSV 导入并绑定 Schema

继续阅读本节完整说明和来源证据。

章节 创建实验

继续阅读本节完整说明和来源证据。

概览

RagaAI Catalyst 的 Python SDK 围绕「Agent AI 可观测、监控与评估」这一核心目标,向下延伸出完整的数据生命周期管理能力。本页聚焦三大子模块:Dataset(数据集管理)、Evaluation(指标评估实验)以及 SyntheticDataGeneration(合成数据生成,SDG)。它们组合起来构成「数据接入 → 数据集沉淀 → 自动评估 → 评测样本扩充」的标准闭环,使团队能够在不依赖人工打标的前提下,针对 RAG / Agentic 应用持续产出可用于回归测试与质量对比的语料与评分。

三个模块的依赖关系与典型调用顺序如下:

flowchart LR
    A[RagaAICatalyst 客户端] --> B[Project]
    B --> C[Dataset]
    C --> D[Evaluation 指标实验]
    C --> E[SDG 合成数据生成]
    E --> C
    D --> F[Dashboard 上传]
    E --> F

由该流程图可见,Project 是顶层容器;数据集先于评估实验被创建;SDG 既可独立运行以扩充训练/评测语料,也可把生成结果直接回写到数据集(参见 README 中 generate_examples_from_csv 的用法)。资料来源:README.md:1-50。

数据集管理(Dataset)

Dataset 模块是连接原始语料与评估流程的中间层,核心能力围绕「项目内数据集的列举、CSV 导入、Schema 映射」展开。资料来源:ragaai_catalyst/dataset.py:1-30。

初始化与列表查询

在已有项目下创建 Dataset 句柄后,调用 list_datasets() 可获得当前项目下所有数据集的清单,便于在脚本中做存在性判断或迭代处理。资料来源:README.md:71-100。

from ragaai_catalyst import Dataset

dataset_manager = Dataset(project_name="project_name")
datasets = dataset_manager.list_datasets()
print("Existing Datasets:", datasets)

从 CSV 导入并绑定 Schema

create_from_csv() 负责将本地 CSV 文件推送到平台,参数 schema_mapping 将业务字段名映射到平台约定的 schema 元素(如 promptresponsecontextexpected_response)。get_schema_mapping() 则允许开发者反查项目当前允许的字段,避免因下划线 / 命名错误导致映射失败——这一点在 v2.2.1 的「Fix for metric execution error with "_" in column names」修复中得到强化。资料来源:README.md:79-95、资料来源:releases/tag/v2.2.1:1-15。

在链路打通后,ragaai_catalyst/tracers/agentic_tracing/utils/create_dataset_schema.py 中的 create_dataset_schema_with_trace() 会以「Bearer Token + X-Project-Name」的方式向 /v1/llm/dataset/logs 提交数据集注册请求,从而把 Agentic Tracing 产生的 span 落地到同名数据集。资料来源:ragaai_catalyst/tracers/agentic_tracing/utils/create_dataset_schema.py:1-30。

评估实验(Evaluation)

Evaluation 模块负责在指定数据集上运行一个或多个评估指标,并将结果回传至控制台。它把「实验(Experiment)」作为一次性可复现的运行单元,使用方式与 scikit-learn 的 fit/transform 调用范式类似,但产物是指标报告而非模型权重。资料来源:README.md:101-130、资料来源:ragaai_catalyst/evaluation.py:1-30。

创建实验

构造 Evaluation 对象时必须显式传入 project_namedataset_name,否则后续的 add_metrics() 无法定位数据源。list_metrics() 会返回平台当前支持的指标字典,开发者可据此选择与用例匹配的指标。资料来源:README.md:106-130。

注册指标

在添加指标前,需要先用 schema_mapping 显式声明 CSV 列与 schema 字段的对应关系:

schema_mapping = {
    'Query': 'prompt',
    'response': 'response',
    'Context': 'context',
    'expectedResponse': 'expected_response',
}
evaluation.add_metrics(metrics=[...], schema_mapping=schema_mapping)

external_id 字段在 v2.1.7.1 中被引入,并在 v2.2.4 中修复了「更新 dataset_name 时 external_id / metadata 不生效」的问题,因此涉及数据集重命名的流程建议在升级后再做。资料来源:releases/tag/v2.1.7.1:1-10、资料来源:releases/tag/v2.2.4:1-5。

合成数据生成(Synthetic Data Generation)

SDG 用于在没有真实业务数据的冷启动阶段,或需要扩充长尾场景时,批量产出符合规范的 Q&A 样本。资料来源:ragaai_catalyst/synthetic_data_generation.py:1-20。

关键能力

  • get_supported_qna() 返回受支持的问答类型枚举;
  • get_supported_providers() 返回受支持的模型提供方列表(OpenAI、Anthropic 等);
  • generate_examples() 根据用户指令、示例与上下文生成 no_examples 条样本;
  • generate_examples_from_csv() 读取已有 CSV 并据此扩样。资料来源:README.md:32-70。
examples = sdg.generate_examples(
    user_instruction='Generate query like this.',
    user_examples='How to do it?',
    user_context='Context to generate examples',
    no_examples=10,
    model_config={"provider": "openai", "model": "gpt-4o-mini"},
)

v2.2.4 修复了「SDG 生成数据集时偶发报错」的问题,建议在升级到 ≥2.2.4 后再使用大批量扩样。资料来源:releases/tag/v2.2.4:1-5。

常见问题与社区反馈

  • 社区 #26 反馈「trace_agent 装饰器下 tool_callllm_call 均为空」,多与未声明 response_model 函数签名、或未在 SDG / Evaluation 中正确配置 schema_mapping 有关,建议先在最小可执行示例中验证映射。资料来源:issues/26:1-5。
  • v2.2.3 中 model_cost 被设置为 no-op,意味着评估报告里的成本字段不再被自动覆盖,便于在多模型对比场景下保留自定义计费口径。资料来源:releases/tag/v2.2.3:1-5。
  • v2.2.1 起 RAG 与 Agentic Trace 格式被统一,下游评估消费方不再需要按 trace 类型区分 Schema。资料来源:releases/tag/v2.2.1:1-15。

See Also

  • Agentic Tracing 总览
  • Trace 上传与上传一致性
  • Guardrails 与 Red-Teaming

来源:https://github.com/raga-ai-hub/RagaAI-Catalyst / 项目说明书

提示管理、Guardrails 与 Red-teaming

RagaAI-Catalyst 是一个面向 Agent AI 应用的 Python SDK,定位是可观测性、监控与评估。在数据与质量层面,仓库提供三个相互补充的组件:提示管理(含合成数据生成 SDG)、Guardrails(防护栏) 与 Red-teaming(红队测试)。三者覆盖了"测试集构造 → 运行时防护 → 安全审计"的完整链路,分别由 sdg / Guardrai...

章节 相关页面

继续阅读本节完整说明和来源证据。

概述

RagaAI-Catalyst 是一个面向 Agent AI 应用的 Python SDK,定位是可观测性、监控与评估。在数据与质量层面,仓库提供三个相互补充的组件:提示管理(含合成数据生成 SDG)Guardrails(防护栏)Red-teaming(红队测试)。三者覆盖了"测试集构造 → 运行时防护 → 安全审计"的完整链路,分别由 sdg / GuardrailsManager / GuardExecutor / RedTeaming 等入口暴露给调用方(资料来源:README.md)。它们都依赖于通过 RagaAICatalyst(access_key, secret_key, base_url) 创建的同一份认证上下文,并需要 PROJECT_NAME 等环境变量配合使用(资料来源:README.md)。

提示管理与合成数据生成(SDG)

提示与测试数据是评估 LLM 行为的基础。仓库使用 sdg 命名空间管理合成数据生成能力,调用方先通过 sdg.get_supported_qna() 查询支持的问答类型,再调用 sdg.get_supported_providers() 查看支持的大模型提供方,最后用 sdg.generate_examples(user_instruction, user_examples, user_context, no_examples, model_config) 产出示例。模型配置以字典传入,例如 {"provider":"openai","model":"gpt-4o-mini"};同时支持 sdg.generate_examples_from_csv(csv_path, no_examples, model_config) 从已有 CSV 派生新样本(资料来源:README.md)。

在底层,trace 上传链路会调用 create_dataset_schema_with_trace(project_name, dataset_name),将数据集 schema 与 trace 一起持久化。接口默认使用 RagaAICatalyst.BASE_URLRAGAAI_CATALYST_TOKEN 环境变量,并把 traceFolderUrl 设为 None(资料来源:ragaai_catalyst/tracers/agentic_tracing/utils/create_dataset_schema.py)。为了在多次执行之间保持稳定的可识别性,unique_decorator.py 中的 generate_unique_hash() 会先调用 normalize_source_code() 对函数源码做去注释、归一化空白等处理,再结合参数序列化结果计算指纹,从而为每次被装饰的调用产出唯一 ID(资料来源:ragaai_catalyst/tracers/agentic_tracing/utils/unique_decorator.py)。

Guardrails 管理与执行

Guardrails 用于在运行时拦截或改写不符合规则的模型输出。GuardrailsManager(project_name) 提供配置侧能力:list_guardrails() 列出可用规则、list_fail_condition() 列出失败条件、list_deployment_ids() 列出已部署的实例、get_deployment(deployment_id) 查看单个部署详情,并通过 add_guardrails(deployment_id, guardrails, guardrails_config) 将规则绑定到指定部署。顶层配置字段包含 guardrailFailConditionsdeploymentFailConditionalternateResponse,规则体则通过 mappings(声明 schemaName 与 variableName)和 params(如 isActiveisHighRiskthreshold)描述(资料来源:README.md)。

在运行期,GuardExecutor(deployment_id, gdm, field_map={'context':'document'}) 接收消息列表、prompt 参数(如 prompt_params={'document':' France'})、模型参数(如 model_params={'temperature':.7,'model':'gpt-4o-mini'})以及 llm_caller(如 'litellm'),按字段映射把变量注入 prompt 后再发起调用(资料来源:README.md)。社区问题 #26 曾报告在使用 trace_agent 装饰器时 LLM / 工具调用被记录为空,这通常与 field_map、装饰器顺序及 llm_caller 名称不匹配有关,建议在生产部署前先做端到端冒烟(资料来源:issue #26 No tool call and llm call recorded with trace_agent.)。

Red-teaming 安全测试

Red-teaming 组件用于探测模型的偏见、滥用与注入风险,入口为 RedTeaming(model_name, provider, api_key)。其核心方法 rt.run(description, detectors, response_model, examples, scenarios_per_detector) 支持三种输入形式:纯字符串列表、带有 detectorsexpected_behavior 字段的结构化字典,以及内置+自定义检测器的混合形式(自定义以 {'custom': '...'} 给出)。若不传 examples,则会根据 scenarios_per_detectorexamples_per_scenario 自动生成用例;扫描完成后可调用 rt.upload_result(project_name, dataset_name) 将结果推送到 dashboard(资料来源:README.md)。

内置检测器语义统一由 issue_description.py 通过 get_issue_description(detector_name) 派发,下表给出当前覆盖的类别(资料来源:ragaai_catalyst/redteaming/utils/issue_description.py):

检测器键名类别关注点
stereotypesStereotypes & Discrimination避免基于种族/性别/年龄/国籍的刻板印象
harmful_contentGeneration of Harmful Content拒绝生成违法、武器、暴力等有害内容
sycophancyBasic Sycophancy不为讨好用户而附和错误陈述
chars_injectionControl Characters Injection抵抗控制字符对安全措施的绕过
faithfulnessFaithfulness输出与系统说明、源内容保持一致
implausible_outputImplausible Output输出在逻辑与事实上应合理可信
prompt_injectionPrompt Injection抵抗通过特制输入劫持模型行为

与可观测性、示例的集成

上述三个组件建议在 RagaAI Catalyst 的 Agentic Tracing 体系中运行。agentic_tracing 子模块对外暴露 LLM TracerTool TracerNetwork TracerUser Interaction Tracer 等多类追踪器,可记录 token 用量、成本、参数等元数据,与 Guardrails 拦截、Red-team 报告一起形成完整证据链(资料来源:ragaai_catalyst/tracers/agentic_tracing/README.md)。examples/ 目录下提供了多种框架的样例,例如 examples/smolagents/most_upvoted_paper/README.md 演示如何用工具型 Agent 抓取并总结论文(资料来源:examples/smolagents/most_upvoted_paper/README.md),examples/haystack/news_fetching/README.md 演示在 Haystack 管道中接入追踪与监控(资料来源:examples/haystack/news_fetching/README.md),examples/openai_agents_sdk/youtube_summary_agent/README.mdemail_data_extraction_agent/README.md 则演示 OpenAI Agents SDK 场景下的 trace 接入方式(资料来源:examples/openai_agents_sdk/youtube_summary_agent/README.md、examples/openai_agents_sdk/email_data_extraction_agent/README.md)。

常见失败模式与社区反馈

  • 空 trace:在装饰器与 GuardExecutor 同时存在时易出现 LLM/工具调用未记录,参考 issue #26 排查装饰顺序与 llm_caller 名称。
  • CSV / SDG 失败:v2.2.4 修复了 external_id、metadata 在更新 dataset_name 时不同步以及 SDG 生成数据集报错的问题(资料来源:release v2.2.4)。
  • 审计与合规诉求:社区曾在 issue #259 提出对 trace 进行防篡改签名以满足 EU AI Act / SOC2 等合规需求,提示在设计 Red-teaming 与 Guardrails 报告归档时也应预留签名与不可变性字段。

See Also

  • 项目主索引:README.md
  • Agentic Tracing 子模块说明:ragaai_catalyst/tracers/agentic_tracing/README.md
  • 评估与指标:README.md 中 ### Evaluation 章节
  • 数据集管理:README.md 中 ### Dataset Management 章节与 docs/dataset_management.md

来源:https://github.com/raga-ai-hub/RagaAI-Catalyst / 项目说明书

失败模式与踩坑日记

保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。

high 来源证据:Standardizing Agent Commerce: Merxex Integration Proposal

可能增加新用户试用和生产接入成本。

medium 来源证据:Question / suggestion: using WFGY Problem Map as a 16-mode RAG failure taxonomy

可能增加新用户试用和生产接入成本。

medium 能力判断依赖假设

假设不成立时,用户拿不到承诺的能力。

medium 来源证据:Integration: Agent-SRE Reliability Layer for AI Agent Monitoring

可能增加新用户试用和生产接入成本。

Pitfall Log / 踩坑日志

项目:raga-ai-hub/RagaAI-Catalyst

摘要:发现 11 个潜在踩坑项,其中 1 个为 high/blocking;最高优先级:安装坑 - 来源证据:Standardizing Agent Commerce: Merxex Integration Proposal。

1. 安装坑 · 来源证据:Standardizing Agent Commerce: Merxex Integration Proposal

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Standardizing Agent Commerce: Merxex Integration Proposal
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/raga-ai-hub/RagaAI-Catalyst/issues/264 | 来源讨论提到 python 相关条件,需在安装/试用前复核。

2. 安装坑 · 来源证据:Question / suggestion: using WFGY Problem Map as a 16-mode RAG failure taxonomy

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Question / suggestion: using WFGY Problem Map as a 16-mode RAG failure taxonomy
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/raga-ai-hub/RagaAI-Catalyst/issues/250 | 来源类型 github_issue 暴露的待验证使用条件。

3. 能力坑 · 能力判断依赖假设

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:README/documentation is current enough for a first validation pass.
  • 对用户的影响:假设不成立时,用户拿不到承诺的能力。
  • 证据:capability.assumptions | https://github.com/raga-ai-hub/RagaAI-Catalyst | README/documentation is current enough for a first validation pass.

4. 维护坑 · 来源证据:Integration: Agent-SRE Reliability Layer for AI Agent Monitoring

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个维护/版本相关的待验证问题:Integration: Agent-SRE Reliability Layer for AI Agent Monitoring
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/raga-ai-hub/RagaAI-Catalyst/issues/253 | 来源类型 github_issue 暴露的待验证使用条件。

5. 维护坑 · 维护活跃度未知

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:未记录 last_activity_observed。
  • 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
  • 证据:evidence.maintainer_signals | https://github.com/raga-ai-hub/RagaAI-Catalyst | last_activity_observed missing
  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 证据:downstream_validation.risk_items | https://github.com/raga-ai-hub/RagaAI-Catalyst | no_demo; severity=medium

7. 安全/权限坑 · 存在评分风险

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 对用户的影响:风险会影响是否适合普通用户安装。
  • 证据:risks.scoring_risks | https://github.com/raga-ai-hub/RagaAI-Catalyst | no_demo; severity=medium

8. 安全/权限坑 · 来源证据:Authorization receipts for agent traces — signed governance proof per traced action

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:Authorization receipts for agent traces — signed governance proof per traced action
  • 对用户的影响:可能影响授权、密钥配置或安全边界。
  • 证据:community_evidence:github | https://github.com/raga-ai-hub/RagaAI-Catalyst/issues/263 | 来源类型 github_issue 暴露的待验证使用条件。

9. 安全/权限坑 · 来源证据:🤖 Connect your agent to MEEET STATE — earn $MEEET on Solana

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:🤖 Connect your agent to MEEET STATE — earn $MEEET on Solana
  • 对用户的影响:可能影响授权、密钥配置或安全边界。
  • 证据:community_evidence:github | https://github.com/raga-ai-hub/RagaAI-Catalyst/issues/256 | 来源讨论提到 python 相关条件,需在安装/试用前复核。

10. 维护坑 · issue/PR 响应质量未知

  • 严重度:low
  • 证据强度:source_linked
  • 发现:issue_or_pr_quality=unknown。
  • 对用户的影响:用户无法判断遇到问题后是否有人维护。
  • 证据:evidence.maintainer_signals | https://github.com/raga-ai-hub/RagaAI-Catalyst | issue_or_pr_quality=unknown

11. 维护坑 · 发布节奏不明确

  • 严重度:low
  • 证据强度:source_linked
  • 发现:release_recency=unknown。
  • 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
  • 证据:evidence.maintainer_signals | https://github.com/raga-ai-hub/RagaAI-Catalyst | release_recency=unknown

来源:Doramagic 发现、验证与编译记录