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:
- Environment setup - Configure API keys on first run
- Task selection - Choose between SFT, RL, or CPT
- Model selection - Pick from available Claude models
- 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/passwdor 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:
- Ask for confirmation
- Request your PyPI API token (create one here)
- Clean old builds
- Build the package
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c3a383322f3893d031c403ee391b47c8700233bb75849dd5852fc4e21077df0
|
|
| MD5 |
cca8db638d7d46ef36d270e21b5e050c
|
|
| BLAKE2b-256 |
edfa36002ca5179ec08fc0ba87e4f48751238538e332ecf252c1bab47948eb1d
|
File details
Details for the file tinker_agent-0.1.4-py3-none-any.whl.
File metadata
- Download URL: tinker_agent-0.1.4-py3-none-any.whl
- Upload date:
- Size: 32.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e53c90cd6f213bd6195446fb8c61e906f799a712f0c53d90ea75ab9a1331d7fa
|
|
| MD5 |
f9783cd8570bfd4d756fd9c62e4da3c5
|
|
| BLAKE2b-256 |
3fd9cc4e8a6ff0efe6461192e4c0e712c213573706c9ff5a2cb8cabdf1a3e64c
|