By default, the telemetry data collected by the library is not personally identifiable information under GDPR and other privacy regulations as the data is deliberately anonymized.
The anonymized data collected is described in detail below. Collecting this data helps us understand how the library is being used and to improve the user experience. It also helps us fix bugs faster and prioritize feature development.
Data collection
We use PostHog for telemetry collection. The data is completely anonymized and contains no personally identifiable information.
We track the following events.
Portia function calls
We track the following Portia function calls:
Portia.run
Portia.plan
Portia.run_plan
Portia.resume
Portia.execute_plan_run_and_handle_clarifications
Portia.resolve_clarification
Portia.wait_for_ready
Portia.create_plan_run
For each of these, we track usage of features and tool IDs, e.g for Portia.run
:
self.telemetry.capture(PortiaFunctionCallTelemetryEvent(
function_name='portia_run', function_args={
'tools': ",".join([tool.id if isinstance(tool, Tool) else tool for tool in tools]) if tools else None,
'example_plans_provided': example_plans != None, # Whether examples plan were provided.
'end_user_provided': end_user != None, # Whether an end user was used.
'plan_run_inputs_provided': plan_run_inputs != None # Whether plan inputs were used.
}
))
Portia tool calls
We also track when a tool call happens and the name of the tool that was executed. None of the arguments to the tool are tracked.
Opting out
You can disable telemetry by setting the environment variable:
ANONYMIZED_TELEMETRY=false