{
  "version": "1.0",
  "frameworks": [
    {
      "id": "arize-phoenix",
      "name": "Arize Phoenix",
      "url": "https://github.com/Arize-ai/phoenix",
      "authoring_format": [
        "PY"
      ],
      "runtime_language": [
        "PY"
      ],
      "license": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "self_hosting": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "features": {
        "deterministic_tests": {
          "status": "proven",
          "value": true,
          "explanation": null
        },
        "caching": {
          "status": "proven",
          "value": false,
          "explanation": null
        },
        "tool_call_validation": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "run_comparison": {
          "status": "unknown",
          "value": null,
          "explanation": null
        }
      }
    },
    {
      "id": "braintrust",
      "name": "Braintrust",
      "url": "https://www.braintrust.dev",
      "authoring_format": [
        "PY"
      ],
      "runtime_language": [
        "TS"
      ],
      "license": {
        "status": "proven",
        "value": false,
        "explanation": null
      },
      "self_hosting": {
        "status": "proven",
        "value": false,
        "explanation": null
      },
      "features": {
        "deterministic_tests": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "caching": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "tool_call_validation": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "run_comparison": {
          "status": "unknown",
          "value": null,
          "explanation": null
        }
      }
    },
    {
      "id": "deepeval",
      "name": "DeepEval",
      "url": "https://github.com/confident-ai/deepeval",
      "authoring_format": [
        "PY"
      ],
      "runtime_language": [
        "PY"
      ],
      "license": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "self_hosting": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "features": {
        "deterministic_tests": {
          "status": "proven",
          "value": false,
          "explanation": null
        },
        "caching": {
          "status": "docs",
          "value": false,
          "explanation": null
        },
        "tool_call_validation": {
          "status": "docs",
          "value": true,
          "explanation": null
        },
        "run_comparison": {
          "status": "docs",
          "value": true,
          "explanation": null
        },
        "opentelemetry_tracing": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "chat_threads": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "red_teaming": {
          "status": "docs",
          "value": true,
          "explanation": null
        },
        "model_comparison": {
          "status": "docs",
          "value": true,
          "explanation": null
        },
        "web_ui": {
          "status": "docs",
          "value": false,
          "explanation": "UI is in Confident AI SaaS, not the DeepEval library"
        }
      }
    },
    {
      "id": "giskard",
      "name": "Giskard",
      "url": "https://github.com/Giskard-AI/giskard",
      "authoring_format": [
        "PY"
      ],
      "runtime_language": [
        "PY"
      ],
      "license": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "self_hosting": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "features": {
        "deterministic_tests": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "caching": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "tool_call_validation": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "run_comparison": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "chat_threads": {
          "status": "unknown",
          "value": null,
          "explanation": null
        }
      }
    },
    {
      "id": "langfuse",
      "name": "Langfuse",
      "url": "https://langfuse.com",
      "authoring_format": [
        "PY"
      ],
      "runtime_language": [
        "TS"
      ],
      "license": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "self_hosting": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "features": {
        "deterministic_tests": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "caching": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "tool_call_validation": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "run_comparison": {
          "status": "unknown",
          "value": null,
          "explanation": null
        }
      }
    },
    {
      "id": "langsmith",
      "name": "LangSmith",
      "url": "https://www.langchain.com/langsmith",
      "authoring_format": [
        "PY"
      ],
      "runtime_language": [
        "TS"
      ],
      "license": {
        "status": "proven",
        "value": false,
        "explanation": null
      },
      "self_hosting": {
        "status": "proven",
        "value": false,
        "explanation": null
      },
      "features": {
        "deterministic_tests": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "caching": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "tool_call_validation": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "run_comparison": {
          "status": "unknown",
          "value": null,
          "explanation": null
        }
      }
    },
    {
      "id": "promptfoo",
      "name": "Promptfoo",
      "url": "https://promptfoo.dev",
      "authoring_format": [
        "YML"
      ],
      "runtime_language": [
        "TS"
      ],
      "license": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "self_hosting": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "features": {
        "deterministic_tests": {
          "status": "proven",
          "value": true,
          "explanation": null
        },
        "caching": {
          "status": "proven",
          "value": true,
          "explanation": null
        },
        "tool_call_validation": {
          "status": "partial",
          "value": true,
          "explanation": null
        },
        "run_comparison": {
          "status": "proven",
          "value": true,
          "explanation": null
        },
        "chat_threads": {
          "status": "partial_docs",
          "value": true,
          "explanation": null
        },
        "red_teaming": {
          "status": "docs",
          "value": true,
          "explanation": null
        },
        "model_comparison": {
          "status": "docs",
          "value": true,
          "explanation": null
        },
        "web_ui": {
          "status": "proven",
          "value": true,
          "explanation": null
        }
      }
    },
    {
      "id": "pydantic-ai",
      "name": "Pydantic AI",
      "url": "https://github.com/pydantic/pydantic-ai",
      "authoring_format": [
        "PY"
      ],
      "runtime_language": [
        "PY"
      ],
      "license": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "self_hosting": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "features": {
        "deterministic_tests": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "caching": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "tool_call_validation": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "run_comparison": {
          "status": "unknown",
          "value": null,
          "explanation": null
        }
      }
    },
    {
      "id": "ragas",
      "name": "Ragas",
      "url": "https://github.com/explodinggradients/ragas",
      "authoring_format": [
        "PY"
      ],
      "runtime_language": [
        "PY"
      ],
      "license": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "self_hosting": {
        "status": "proven",
        "value": true,
        "explanation": null
      },
      "features": {
        "deterministic_tests": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "caching": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "tool_call_validation": {
          "status": "unknown",
          "value": null,
          "explanation": null
        },
        "run_comparison": {
          "status": "unknown",
          "value": null,
          "explanation": null
        }
      }
    }
  ]
}