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.4.tar.gz (152.8 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.4-py3-none-any.whl (32.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tinker_agent-0.1.4.tar.gz
Algorithm Hash digest
SHA256 2c3a383322f3893d031c403ee391b47c8700233bb75849dd5852fc4e21077df0
MD5 cca8db638d7d46ef36d270e21b5e050c
BLAKE2b-256 edfa36002ca5179ec08fc0ba87e4f48751238538e332ecf252c1bab47948eb1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinker_agent-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e53c90cd6f213bd6195446fb8c61e906f799a712f0c53d90ea75ab9a1331d7fa
MD5 f9783cd8570bfd4d756fd9c62e4da3c5
BLAKE2b-256 3fd9cc4e8a6ff0efe6461192e4c0e712c213573706c9ff5a2cb8cabdf1a3e64c

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