mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-05-21 15:36:48 +00:00
23eacf9533
Phase 2-A prerequisite for event storage: adds the unified run event stream interface (RunEventStore) with an in-memory implementation, RunEventsConfig, gateway integration, and comprehensive tests (27 cases). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
"""Run event storage configuration.
|
|
|
|
Controls where run events (messages + execution traces) are persisted.
|
|
|
|
Backends:
|
|
- memory: In-memory storage, data lost on restart. Suitable for
|
|
development and testing.
|
|
- db: SQL database via SQLAlchemy ORM. Provides full query capability.
|
|
Suitable for production deployments.
|
|
- jsonl: Append-only JSONL files. Lightweight alternative for
|
|
single-node deployments that need persistence without a database.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Literal
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class RunEventsConfig(BaseModel):
|
|
backend: Literal["memory", "db", "jsonl"] = Field(
|
|
default="memory",
|
|
description="Storage backend for run events. 'memory' for development (no persistence), 'db' for production (SQL queries), 'jsonl' for lightweight single-node persistence.",
|
|
)
|
|
max_trace_content: int = Field(
|
|
default=10240,
|
|
description="Maximum trace content size in bytes before truncation (db backend only).",
|
|
)
|
|
track_token_usage: bool = Field(
|
|
default=True,
|
|
description="Whether RunJournal should accumulate token counts to RunRow.",
|
|
)
|