CoolFace
Datasetpublic

Halcyon-Zhang/BrowseComp-V3

BrowseComp-V3: A Benchmark Dataset for Multimodal Browsing Agents A dataset containing 300 samples with encrypted question-answer pairs, images, search trajectories, and sub-goals. Contents ├── data/ │ ├── train.jsonl # Main dataset (1.44 MB, 300 samples) │ └── images/ # Referenced images ├── scripts/ │ ├── decryption_script.py # Decrypt entire dataset │ ├── decrypt_batch.py # Batch decrypt to files │ ├──… See the full description on the dataset page: https://huggingface.co/datasets/Halcyon-Zhang/BrowseComp-V3.

sourceHugging Faceupdated 7mo agoView on Hugging Face
6likes5.4kdownloads
Dataset Card

BrowseComp-V<sup>3</sup>: A Benchmark Dataset for Multimodal Browsing Agents

A dataset containing 300 samples with encrypted question-answer pairs, images, search trajectories, and sub-goals.

Contents

├── data/
│   ├── train.jsonl          # Main dataset (1.44 MB, 300 samples)
│   └── images/              # Referenced images
├── scripts/
│   ├── decryption_script.py       # Decrypt entire dataset
│   ├── decrypt_batch.py           # Batch decrypt to files
│   ├── encryption_utils.py        # Encryption/decryption utilities
├── metadata/
├── decryption_guide.md      # Decryption instructions
└── README.md

Dataset Format

Fields

Each sample in train.jsonl contains:

  • `id`: Sample identifier (e.g., 001_Culture_Art_L3_p2_t2_m0_r2_w0_c0_g5)
  • `category`: Main category
  • `sub_category`: Sub-category
  • `image`: First image filename
  • `image_paths`: List of image filenames (JSON string)
  • `encrypted_question`: Encrypted question (AES-256-GCM format)
  • `encrypted_answer`: Encrypted answer (AES-256-GCM format)
  • `metadata`: Contains visinputs, source, timestamp, level, difficulty, domain, fcnum, and trajectory (JSON string)
  • `sub_goals`: List of sub-goals (JSON string)

Example

json
{
  "id": "001_Culture_Art_L3_p2_t2_m0_r2_w0_c0_g5",
  "category": "Culture",
  "sub_category": "Art",
  "image": "data/images/001_Culture_Art_1.jpg",
  "image_paths": "[\"data/images/001_Culture_Art_1.jpg\", \"data/images/001_Culture_Art_2.jpg\"]",
  "encrypted_question": "{\"iv\": \"...\", \"ciphertext\": \"...\", \"tag\": \"...\"}",
  "encrypted_answer": "{\"iv\": \"...\", \"ciphertext\": \"...\", \"tag\": \"...\"}",
  "metadata": "{\"vis_inputs\": 2, \"source\": [...], \"level\": 3, \"difficulty\": \"Medium\", \"trajectory\": {...}}",
  "sub_goals": "[{\"sg_id\": 1, \"description\": \"...\", \"key_info\": \"...\", ...}]"
}

Data Structure Notes

  • All nested structures (metadata, imagepaths, subgoals, etc.) are stored as JSON strings
  • The trajectory field is contained within metadata
  • Encrypted fields use base64-encoded iv, ciphertext, and tag

Encryption

Question-answer pairs are encrypted with AES-256-GCM using:

Key derivation: SHA-256 hash of passphrase
Passphrase: A_Visual_Vertical_Verifiable_Benchmark_for_Multimodal_Browsing_Agents

Decryption

Requirements

bash
pip install cryptography

Decrypt Full Dataset

bash
python scripts/decryption_script.py \
  --input data/train.jsonl \
  --key "A_Visual_Vertical_Verifiable_Benchmark_for_Multimodal_Browsing_Agents" \
  --output decrypted.json

Batch Decrypt

bash
echo "A_Visual_Vertical_Verifiable_Benchmark_for_Multimodal_Browsing_Agents" > key.txt

python scripts/decrypt_batch.py \
  --input data/train.jsonl \
  --key-file key.txt \
  --output-dir decrypted_samples/

Using Decryption API

python
from encryption_utils import derive_key, decrypt_text

key = derive_key("A_Visual_Vertical_Verifiable_Benchmark_for_Multimodal_Browsing_Agents")
encrypted = {"iv": "...", "ciphertext": "...", "tag": "..."}
plaintext = decrypt_text(encrypted, key)

Usage

Load with HuggingFace Datasets

python
from datasets import load_dataset

ds = load_dataset("path/to/repo")
sample = ds['train'][0]

# Encrypted question and answer are still encrypted
print(sample['encrypted_question'])
print(sample['encrypted_answer'])

Decrypt and Use

python
import json
import sys
sys.path.insert(0, 'scripts')
from encryption_utils import derive_key, decrypt_text

key = derive_key("A_Visual_Vertical_Verifiable_Benchmark_for_Multimodal_Browsing_Agents")

with open('decrypted.json') as f:
    samples = json.load(f)
    for sample in samples:
        print(f"Q: {sample['question']}")
        print(f"A: {sample['answer']}")

License

CC BY 4.0


Last Updated: 2026-02-14