Skip to main content

Intelligent agent for Anthropic's Tinker fine-tuning platform

Project description

tinker-agent

An intelligent agent for Anthropic's Tinker fine-tuning platform. Automates the creation of fine-tuning datasets and configuration with interactive and programmatic interfaces.

Installation

pip install tinker-agent

Or with uv:

uv pip install tinker-agent

Quick Start

Interactive Mode

Simply run the command without arguments for an interactive setup:

tinker-agent

This will guide you through:

  1. Environment setup - Configure API keys on first run
  2. Task selection - Choose between SFT, RL, or CPT
  3. Model selection - Pick from available Claude models
  4. Dataset configuration - Enter a HuggingFace dataset with validation

Non-Interactive Mode

Pass configuration directly via command-line arguments:

tinker-agent \
  config.dataset=HuggingFaceFW/fineweb \
  config.task_type=sft \
  config.model=Qwen/Qwen3-8B

Configuration

Environment Setup

Run the setup command to configure your environment:

tinker-agent setup

This creates a .env file with:

  • TINKER_API_KEY - Your Tinker API key (Get it here)
  • WANDB_API_KEY - Weights & Biases API key for tracking (Get it here)
  • WANDB_PROJECT - W&B project name for organizing experiments

Alternatively, set these as environment variables before running.

Task Types

  • sft - Supervised Fine-Tuning (instruction-response pairs)
  • rl - Reinforcement Learning (reward-based training)
  • cpt - Continued Pre-Training (raw text data)

Available Models

Model Type Size
Qwen/Qwen3-VL-235B-A22B-Instruct Vision Large
Qwen/Qwen3-VL-30B-A3B-Instruct Vision Medium
Qwen/Qwen3-235B-A22B-Instruct-2507 Instruction Large
Qwen/Qwen3-30B-A3B-Instruct-2507 Instruction Medium
Qwen/Qwen3-30B-A3B Hybrid Medium
Qwen/Qwen3-30B-A3B-Base Base Medium
Qwen/Qwen3-32B Hybrid Medium
Qwen/Qwen3-8B Hybrid Small
Qwen/Qwen3-8B-Base Base Small
Qwen/Qwen3-4B-Instruct-2507 Instruction Compact
openai/gpt-oss-120b Reasoning Medium
openai/gpt-oss-20b Reasoning Small
deepseek-ai/DeepSeek-V3.1 Hybrid Large
deepseek-ai/DeepSeek-V3.1-Base Base Large
meta-llama/Llama-3.1-70B Base Large
meta-llama/Llama-3.3-70B-Instruct Instruction Large
meta-llama/Llama-3.1-8B Base Small
meta-llama/Llama-3.1-8B-Instruct Instruction Small
meta-llama/Llama-3.2-3B Base Compact
meta-llama/Llama-3.2-1B Base Compact
moonshotai/Kimi-K2-Thinking Reasoning Large

Usage Examples

Interactive Mode Example

$ tinker-agent

╭──────────────────────────────────────────╮
│            tinker-agent                  │
│     Fine-tuning configuration            │
╰──────────────────────────────────────────╯

Select task type:
  1    sft    Supervised Fine-Tuning
  2    rl     Reinforcement Learning
  3    cpt    Continued Pre-Training
Choice [1/2/3/sft/rl/cpt]: 1

Select model:
Key   Model                                Type         Size
1     Qwen/Qwen3-VL-235B-A22B-Instruct     Vision       Large
2     Qwen/Qwen3-VL-30B-A3B-Instruct       Vision       Medium
3     Qwen/Qwen3-235B-A22B-Instruct-2507   Instruction  Large
...
Choice (number or model name) [1]: 8

HuggingFace dataset: HuggingFaceFW/fineweb

Non-Interactive Example

# Basic usage
tinker-agent config.dataset=my-org/my-dataset config.task_type=sft

# With all options
tinker-agent \
  config.dataset=HuggingFaceFW/fineweb \
  config.task_type=sft \
  config.model=meta-llama/Llama-3.3-70B-Instruct

Environment Variables

# Set via environment
export TINKER_API_KEY="your-api-key"
export WANDB_API_KEY="your-wandb-key"
export WANDB_PROJECT="my-finetuning-project"

# Run with config
tinker-agent config.dataset=my-dataset config.task_type=rl

Features

  • Interactive CLI - Beautiful rich terminal UI for configuration
  • Non-interactive mode - Scriptable with command-line arguments
  • Dataset validation - Verifies HuggingFace datasets exist before use
  • Model selection - Choose from available Claude models
  • Environment management - Simple .env-based configuration
  • Sandboxed execution - Agent runs in isolated directory with path validation
  • Trace viewer - Streamlit-based viewer for execution traces

Sandboxing

The agent runs in a sandboxed environment with strict path validation:

  • Root directory isolation - Agent can only access files within its working directory
  • Path validation - Blocks access to ~, $HOME, absolute paths, and .. escapes
  • No system access - Cannot read sensitive files like /etc/passwd or user home directories

This ensures the agent operates safely without requiring Docker, making it more scalable for production use.

Additional Commands

View Execution Traces

tinker-viewer

Opens a Streamlit interface to view and analyze agent execution traces.

Development

Setup Development Environment

git clone https://github.com/anthropics/tinker-agent.git
cd tinker-agent
uv sync --extra dev

Run Tests

uv run pytest

Build Package

uv build

Deploy to PyPI

python deploy.py

This will:

  1. Ask for confirmation
  2. Request your PyPI API token (create one here)
  3. Clean old builds
  4. Build the package
  5. Upload to PyPI

License

MIT

Contributing

Contributions welcome! Please open an issue or PR.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tinker_agent-0.1.0.tar.gz (148.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tinker_agent-0.1.0-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

Details for the file tinker_agent-0.1.0.tar.gz.

File metadata

  • Download URL: tinker_agent-0.1.0.tar.gz
  • Upload date:
  • Size: 148.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for tinker_agent-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c7fabaf1609ed44e40b0e5074b6fed4fde30d2c65f93ae3354beae6c921204bc
MD5 57befe980897185e4d73e619d042e93b
BLAKE2b-256 3957f406bb431a34621784462b5c46753e7451596e4a9e8473fd240f0367dd68

See more details on using hashes here.

File details

Details for the file tinker_agent-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tinker_agent-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62361584c5ada2f8baae6c41d1b8193133317d577ccfff97de6742b010be60e3
MD5 4c14916f9f29efffb5971220beb090aa
BLAKE2b-256 ee5112fe7a6ad9a777df7a4fb9f6e1d22fe7a43f1effe8d4b744cd28e40df5d6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page