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)管理...
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
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 需安装 arxiv、requests、beautifulsoup4、huggingface_hub、pypdf 等。
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_TOKEN | Bearer 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_name与usecase(如 Chatbot、RAG 等),决定了后续可用的评估指标与模板。project_use_cases()用于查询当前账号支持的 usecase 枚举值。list_projects()返回项目列表,便于在多项目环境(如多业务线)下做选择。
在 v2.2.4 发布说明中,“在运行时更新 tracer 的项目名(Update project name in tracer on runtime)” 被列为新功能,资料来源:Release 2.2.4,意味着项目名不再是“一经绑定不可更改”的硬约束。
4. 常见问题与最佳实践
- 追踪为空(Issue #26):社区反馈在使用
trace_agent装饰器时未记录到tool_call与llm_call,资料来源:Issue #26。这通常与未正确接入init_tracing或工具/LLM 包装器有关,建议参照 ragaai_catalyst/tracers/agentic_tracing/README.md 中“LLM Tracer / Tool Tracer”两节进行核对。 - Dataset Schema 创建:在追踪链路中,需要先创建与项目关联的 dataset schema,资料来源:ragaai_catalyst/tracers/agentic_tracing/utils/create_dataset_schema.py,其内部调用
/v1/llm/dataset/logs端点,并要求RAGAAI_CATALYST_TOKEN与X-Project-Name同时存在。 - 统一追踪格式:v2.2.1 之后,RAG 与 Agentic Trace 的格式被统一,资料来源:Release 2.2.1,建议在升级 SDK 后清理旧 trace,避免格式差异导致解析错误。
- 多示例工程结构:各集成示例(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
- RagaAI-Catalyst 评估(Evaluation)与指标管理
- RagaAI-Catalyst Agentic Tracing 详解
- RagaAI-Catalyst Guardrail 与 Red-teaming
- Issue #26:
trace_agent未记录 tool/llm call
来源:https://github.com/raga-ai-hub/RagaAI-Catalyst / 项目说明书
追踪管理与 Agentic Tracing(社区高频议题)
RagaAI-Catalyst 的追踪管理(Trace Management)模块是整个 SDK 的核心观测层,用于在 LLM、工具、网络、用户交互等多个维度上对 Agent 系统进行全链路可观测化采集、上传与分析。追踪模块同时支持 RAG(检索增强生成)与 Agentic(智能体)两种主要场景,社区在 issue 26 中反馈"使用 traceagent 装饰器后未记录到...
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
概述
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 模块内部按职责被拆分为以下子模块:
| 子模块 | 主要文件 | 职责 |
|---|---|---|
| Tracers | main_tracer.py、agent_tracer.py、base.py、llm_tracer.py、network_tracer.py、tool_tracer.py、user_interaction_tracer.py | 核心追踪实现 |
| Data | data_classes.py | LLM 调用、网络请求、工具执行、追踪组件等结构化数据类型 |
| Utils | api_utils.py、file_name_tracker.py、generic.py、llm_utils.py、trace_utils.py、unique_decorator.py | API、模型成本、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.workflow、PromptTemplate.langchain.task、ChatOpenAI.langchain.task等标准 span 名称。资料来源:ragaai_catalyst/tracers/utils/convert_langchain_callbacks_output.py。extraction_logic_llama_index解析QueryStartEvent、QueryEndEvent、RetrievalEndEvent等 LlamaIndex 事件,提取 prompt、context、response 字段。资料来源:ragaai_catalyst/tracers/utils/extraction_logic_llama_index.py。rag_trace_json_converter中get_additional_metadata通过判断 span 名(如ChatOpenAI、ChatAnthropic、ChatBedrock、AzureChatOpenAI等)累计 cost、tokens、latency 等指标。资料来源:ragaai_catalyst/tracers/utils/rag_trace_json_converter.py。
社区高频议题与版本演进
追踪记录缺失(issue #26)
开发者使用 trace_agent 装饰器后,仪表板中未出现 tool_call 与 llm_call 记录。典型排查路径为:确认 init_tracing 是否已调用、检查被装饰函数是否实际触发 LLM/工具调用、确认 project_name 与 dataset_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_name、cost、latency、span_id、trace_id 等关键字段在 masking 时排除。资料来源:v2.2.3 Release Notes。v2.2.4 进一步支持在运行时更新 tracer 的 project_name,并修复了 dataset 名称更新时 external_id、metadata 同步异常的问题。资料来源: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_KEY、CATALYST_SECRET_KEY、CATALYST_BASE_URL、PROJECT_NAME、DATASET_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
资料来源:ragaai_catalyst/tracers/agentic_tracing/README.md。
数据集管理、评估实验与合成数据生成
RagaAI Catalyst 的 Python SDK 围绕「Agent AI 可观测、监控与评估」这一核心目标,向下延伸出完整的数据生命周期管理能力。本页聚焦三大子模块:Dataset(数据集管理)、Evaluation(指标评估实验)以及 SyntheticDataGeneration(合成数据生成,SDG)。它们组合起来构成「数据接入 → 数据集沉淀 → 自动评估 ...
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
概览
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 元素(如 prompt、response、context、expected_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_name 与 dataset_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_call与llm_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_URL 与 RAGAAI_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) 将规则绑定到指定部署。顶层配置字段包含 guardrailFailConditions、deploymentFailCondition 与 alternateResponse,规则体则通过 mappings(声明 schemaName 与 variableName)和 params(如 isActive、isHighRisk、threshold)描述(资料来源: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) 支持三种输入形式:纯字符串列表、带有 detectors 与 expected_behavior 字段的结构化字典,以及内置+自定义检测器的混合形式(自定义以 {'custom': '...'} 给出)。若不传 examples,则会根据 scenarios_per_detector 与 examples_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):
| 检测器键名 | 类别 | 关注点 |
|---|---|---|
stereotypes | Stereotypes & Discrimination | 避免基于种族/性别/年龄/国籍的刻板印象 |
harmful_content | Generation of Harmful Content | 拒绝生成违法、武器、暴力等有害内容 |
sycophancy | Basic Sycophancy | 不为讨好用户而附和错误陈述 |
chars_injection | Control Characters Injection | 抵抗控制字符对安全措施的绕过 |
faithfulness | Faithfulness | 输出与系统说明、源内容保持一致 |
implausible_output | Implausible Output | 输出在逻辑与事实上应合理可信 |
prompt_injection | Prompt Injection | 抵抗通过特制输入劫持模型行为 |
与可观测性、示例的集成
上述三个组件建议在 RagaAI Catalyst 的 Agentic Tracing 体系中运行。agentic_tracing 子模块对外暴露 LLM Tracer、Tool Tracer、Network Tracer、User 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.md 与 email_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 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。
可能增加新用户试用和生产接入成本。
可能增加新用户试用和生产接入成本。
假设不成立时,用户拿不到承诺的能力。
可能增加新用户试用和生产接入成本。
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 发现、验证与编译记录