cherry-studio/src/main/services/agents
2025-09-17 14:10:10 +08:00
..
database refactor: Rename message stream handler and update session creation logic 2025-09-17 14:10:10 +08:00
interfaces rewrite agents schema and types 2025-09-16 23:55:31 +08:00
services refactor: Rename message stream handler and update session creation logic 2025-09-17 14:10:10 +08:00
AGENT_MESSAGE_ARCHITECTURE.md rewrite agents schema and types 2025-09-16 23:55:31 +08:00
BaseService.ts refactor: Rename message stream handler and update session creation logic 2025-09-17 14:10:10 +08:00
drizzle.config.ts refactor: Rename message stream handler and update session creation logic 2025-09-17 14:10:10 +08:00
index.ts 🏗️ refactor: migrate agents service from custom migrations to Drizzle ORM 2025-09-13 19:51:16 +08:00
README.md feat(agents): implement Drizzle ORM for database management and schema synchronization 2025-09-15 12:01:29 +08:00

Agents Service

Simplified Drizzle ORM implementation for agent and session management in Cherry Studio.

Features

  • Native Drizzle migrations - Uses built-in migrate() function
  • Zero CLI dependencies in production
  • Auto-initialization with retry logic
  • Full TypeScript type safety

Schema

  • agents.schema.ts - Agent definitions
  • sessions.schema.ts - Session and message tables
  • migrations.schema.ts - Migration tracking

Usage

import { agentService } from './services'

// Create agent - fully typed
const agent = await agentService.createAgent({
  type: 'custom',
  name: 'My Agent',
  model: 'claude-3-5-sonnet-20241022'
})

Development Commands

# Apply schema changes
yarn agents:generate

# Quick development sync
yarn agents:push

# Database tools
yarn agents:studio    # Open Drizzle Studio
yarn agents:health    # Health check
yarn agents:drop      # Reset database

Workflow

  1. Edit schema in /database/schema/
  2. Generate migration with yarn agents:generate
  3. Test changes with yarn agents:health
  4. Deploy - migrations apply automatically

Services

  • AgentService - Agent CRUD operations
  • SessionService - Session management
  • SessionMessageService - Message logging
  • BaseService - Database utilities
  • schemaSyncer - Migration handler

Troubleshooting

# Check status
yarn agents:health

# Apply migrations
yarn agents:migrate

# Reset completely
yarn agents:reset --yes

The simplified migration system reduced complexity from 463 to ~30 lines while maintaining all functionality through Drizzle's native migration system.