A training data extraction and custom reasoning plugin for ElizaOS agents with support for fine-tuned models via Together.ai.
- 📊 Training Data Extraction - Extract conversation data from ElizaOS agents
- 🧠 Dataset Building - Prepare datasets in JSONL format for fine-tuning
- 🤗 HuggingFace Integration - Upload datasets to HuggingFace Hub
- 🤖 Custom Reasoning - MVP implementation for model override capabilities
- 🚀 Together.ai Support - Integration with Together.ai for model training
# Install dependencies
npm install
# Build the plugin
npm run buildimport {
trainingPlugin,
mvpCustomReasoningPlugin,
} from '@elizaos/plugin-training';
const agent = {
character: myCharacter,
plugins: [
'@elizaos/plugin-sql',
trainingPlugin, // Full training features
mvpCustomReasoningPlugin, // Simple custom reasoning (recommended)
],
};# Optional - For HuggingFace dataset uploads
HUGGING_FACE_TOKEN=hf_...
# Optional - For Together.ai integration
TOGETHER_AI_API_KEY=...
# Optional - For custom reasoning
REASONING_SERVICE_ENABLED=true
REASONING_SERVICE_SHOULD_RESPOND_ENABLED=true"extract training data from the last 30 days"
"enable custom reasoning"
"check reasoning status"
npm test # Run all tests
npm run test:unit # Run unit tests only
npm run lint # Check code quality
npm run lint:fix # Fix linting issues
npm run clean # Clean build artifacts
npm run typecheck # TypeScript type checkingnpm run cli:help # Show CLI help
npm run cli:reasoning # Custom reasoning commands
npm run cli:extract # Extract training data
npm run cli:dataset # Create datasets
npm run cli:train # Train modelsnpm run extract:simple # Simple data extraction
npm run extract:db # Database extractionnpm run dataset:create # Create JSONL datasets
npm run dataset:examples # List training examplesnpm run reasoning:config # Show reasoning config
npm run reasoning:models # List model status
npm run reasoning:export # Export training data
npm run reasoning:costs # Show cost breakdownnpm run train:model # Train a model
npm run train:simulate # Simulate training
npm run train:test # Test trained modelimport { trainingPlugin } from '@elizaos/plugin-training';
// Full-featured plugin with all training capabilitiesimport { mvpCustomReasoningPlugin } from '@elizaos/plugin-training/mvp';
// Simple, working custom reasoning implementationimport { enhancedCustomReasoningPlugin } from '@elizaos/plugin-training/enhanced';
// Advanced features with database integrationExtract conversation data for training datasets.
Triggers:
- "extract training data"
- "prepare dataset"
- "collect conversation data"
Start training jobs with extracted data.
Triggers:
- "start training"
- "begin fine-tuning"
- "launch training job"
Monitor training progress and status.
Triggers:
- "monitor training"
- "check training status"
- "training progress"
- ENABLE_REASONING_SERVICE - Enable custom reasoning
- DISABLE_REASONING_SERVICE - Disable custom reasoning
- CHECK_REASONING_STATUS - Check reasoning status
- TrainingService - Main service for data extraction and training
- DataExtractor - Extract conversation data from ElizaOS
- DatasetProcessor - Process and format training datasets
- HuggingFaceClient - Upload datasets to HuggingFace Hub
- TogetherAIClient - Interface with Together.ai for training
Simple service that can intercept and override model calls:
// Enable custom reasoning
await runtime.processMessage({
content: { text: 'enable custom reasoning' },
});
// The service will now intercept useModel calls
const response = await runtime.useModel('TEXT_LARGE', {
prompt: 'Test prompt',
});
// This could be routed to a custom fine-tuned modelThe package includes comprehensive tests:
# Unit tests (fast, reliable)
npm run test:unit
# All tests (includes integration tests)
npm testTest Coverage:
- ✅ Simple Integration Tests (5/5 passing)
- ✅ Complete Workflow Tests (5/5 passing)
- ✅ Enhanced Integration Tests (8/8 passing)
- ✅ HuggingFace Integration Tests (4/4 passing)
{
"id": "example-123",
"input": "User question or prompt",
"output": "Agent response",
"metadata": {
"timestamp": "2024-01-01T00:00:00Z",
"quality": 0.85,
"tokens": 150
}
}{"messages": [{"role": "user", "content": "Hello"}, {"role": "assistant", "content": "Hi there!"}]}
{"messages": [{"role": "user", "content": "Help me code"}, {"role": "assistant", "content": "I'd be happy to help!"}]}src/
├── actions/ # Agent actions
├── cli/ # Command-line interface
├── enhanced/ # Enhanced reasoning features
├── lib/ # Core libraries
├── mvp/ # MVP implementations
├── services/ # Core services
├── utils/ # Utility functions
└── __tests__/ # Test files
- Create action in
src/actions/ - Add CLI command in
src/cli/commands/ - Write tests in
src/__tests__/ - Update exports in
src/index.ts
Build Errors
npm run clean
npm run buildTest Failures
# Run specific test
npm run test:unitLint Errors
npm run lint:fixTypeScript Errors
npm run typecheckMIT License - see LICENSE for details.
- Fork the repository
- Create a feature branch
- Add tests for new features
- Ensure all tests pass:
npm test - Check code quality:
npm run lint - Submit a pull request
Status: Core functionality working, MVP custom reasoning available, comprehensive test suite passing.