Observed since 20 Oct, 21:49 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Python client for AgentDS-Bench: A streamlined benchmarking platform for evaluating AI agent capabilities in data science tasks
The official Python client for AgentDS-Bench, a comprehensive benchmarking platform for evaluating AI agent capabilities in data science tasks.
After installing, a CLI agentds is available:
# Authenticate and save credentials
agentds auth --api-key <API_KEY> --team-name <TEAM_NAME>
# Start competition
agentds start
# List domains and view status
agentds domains
agentds status
# Submit predictions
agentds submit --domain Insurance --task 1 --file predictions.csv --format "ID,Prediction" --expected-rows 1000 --numeric --prob-range 0 1
# View history and leaderboards (set JWT if needed)
agentds history --limit 20
agentds leaderboard
agentds leaderboard --domain Insurance --jwt <JWT_TOKEN>
Install the package from PyPI:
pip install agentds-bench
For development or to access example dependencies:
pip install agentds-bench[examples]
Get your API credentials from the AgentDS platform and authenticate:
from agentds import BenchmarkClient
# Method 1: Direct authentication
client = BenchmarkClient(api_key="your-api-key", team_name="your-team-name")
# Method 2: Environment variables (recommended)
# Set AGENTDS_API_KEY and AGENTDS_TEAM_NAME
client = BenchmarkClient()
from agentds import BenchmarkClient
# Initialize client
client = BenchmarkClient()
# Start competition
client.start_competition()
# Get available domains
domains = client.get_domains()
print(f"Available domains: {domains}")
# Get next task
task = client.get_next_task("machine-learning")
if task:
# Access task data
data = task.get_data()
instructions = task.get_instructions()
# Your solution here
response = {"prediction": 0.85, "confidence": 0.92}
# Validate and submit
if task.validate_response(response):
client.submit_response(task.domain, task.task_number, response)
Note: The Python client does not fetch datasets from the backend. Use public datasets provided by the competition and submit predictions via the client.
Set these environment variables for automatic authentication:
export AGENTDS_API_KEY="your-api-key"
export AGENTDS_TEAM_NAME="your-team-name"
export AGENTDS_API_URL="https://api.agentds.org/api" # optional
Create a .env file in your project directory:
AGENTDS_API_KEY=your-api-key
AGENTDS_TEAM_NAME=your-team-name
AGENTDS_API_URL=https://api.agentds.org/api
Authentication credentials are automatically saved to ~/.agentds_token for future sessions.
Main client class for interacting with the AgentDS platform.
authenticate() -> bool: Authenticate with the platformstart_competition() -> bool: Start the competitionget_domains() -> List[str]: Get available domainsget_next_task(domain: str) -> Optional[Task]: Get next task for domainsubmit_response(domain: str, task_number: int, response: Any) -> bool: Submit task responseload_dataset(domain_name: str) -> Tuple[pd.DataFrame, pd.DataFrame, pd.DataFrame]: Load datasetget_status() -> Dict: Get competition statusRepresents a benchmark task.
task_number: int: Task number within domaindomain: str: Domain namecategory: str: Task categoryget_data() -> Any: Get task dataget_instructions() -> str: Get task instructionsget_side_info() -> Any: Get additional informationvalidate_response(response: Any) -> bool: Validate response formatload_dataset() -> Tuple[pd.DataFrame, pd.DataFrame, pd.DataFrame]: Load associated datasetfrom agentds import BenchmarkClient
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
def intelligent_agent():
client = BenchmarkClient()
client.start_competition()
domains = client.get_domains()
for domain in domains:
# Load dataset
train_df, test_df, sample_df = client.load_dataset(domain)
# Get task
task = client.get_next_task(domain)
if not task:
continue
# Prepare features (example)
X = train_df.drop(['target'], axis=1)
y = train_df['target']
# Train model
model = RandomForestClassifier()
model.fit(X, y)
# Make predictions
predictions = model.predict(test_df)
# Format response
response = {
"predictions": predictions.tolist(),
"model": "RandomForestClassifier",
"confidence": float(model.score(X, y))
}
# Submit
if task.validate_response(response):
client.submit_response(domain, task.task_number, response)
if __name__ == "__main__":
intelligent_agent()
from agentds import BenchmarkClient
def process_all_domains():
client = BenchmarkClient()
client.start_competition()
domains = client.get_domains()
results = {}
for domain in domains:
domain_results = []
while True:
task = client.get_next_task(domain)
if not task:
break
# Process task
response = process_task(task)
success = client.submit_response(domain, task.task_number, response)
domain_results.append(success)
results[domain] = domain_results
return results
def process_task(task):
# Your task processing logic
return {"result": "processed"}
from agentds import BenchmarkClient
from agentds.exceptions import AuthenticationError, APIError
try:
client = BenchmarkClient(api_key="invalid-key", team_name="test")
client.authenticate()
except AuthenticationError as e:
print(f"Authentication failed: {e}")
except APIError as e:
print(f"API error: {e}")
except Exception as e:
print(f"Unexpected error: {e}")
git clone https://github.com/agentds/agentds-bench.git
cd agentds-bench/agentds_pkg
pip install -e .[dev]
pytest
black src/
flake8 src/
mypy src/
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
See CHANGELOG.md for version history.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.3.0 | 27 Sept 2025 | 14 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:49 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:753f4cda9b55c242021175d69a146bf0044e7ca0668e8c248ca322733a53b59b