40 lines
2.1 KiB
Python
40 lines
2.1 KiB
Python
from pydantic import BaseModel, Field
|
|
|
|
|
|
class ReviewWorkerConfig(BaseModel):
|
|
"""Configuration for the post-turn background skill review worker."""
|
|
|
|
enabled: bool = Field(default=False, description="Whether the review worker is active.")
|
|
min_tool_calls: int = Field(default=5, description="Minimum tool calls in a turn to trigger review. Matches the prompt's '≥5 steps' hard condition so simple queries never reach the LLM reviewer.")
|
|
max_messages: int = Field(default=60, description="Max messages passed to the review LLM.")
|
|
model_name: str | None = Field(default=None, description="Model to use for review; defaults to primary model.")
|
|
timeout_seconds: int = Field(default=120, description="Overall timeout for a single review run.")
|
|
|
|
|
|
class CuratorConfig(BaseModel):
|
|
"""Configuration for the background skill curator."""
|
|
|
|
enabled: bool = Field(default=False, description="Whether the curator runs automatically.")
|
|
interval_hours: int = Field(default=168, description="Hours between curator runs (default: 7 days).")
|
|
stale_after_days: int = Field(default=30, description="Days of inactivity before a skill is marked stale.")
|
|
archive_after_days: int = Field(default=90, description="Days of inactivity before a stale skill is archived.")
|
|
review_timeout_seconds: int = Field(default=600, description="Overall timeout (seconds) for the LLM review pass.")
|
|
model_name: str | None = Field(default=None, description="Model name for the curator LLM review pass. Defaults to the primary chat model.")
|
|
|
|
|
|
class SkillEvolutionConfig(BaseModel):
|
|
"""Configuration for agent-managed skill evolution."""
|
|
|
|
enabled: bool = Field(
|
|
default=False,
|
|
description="Whether the agent can create and modify skills under skills/custom.",
|
|
)
|
|
curator: CuratorConfig = Field(
|
|
default_factory=CuratorConfig,
|
|
description="Configuration for the background skill curator.",
|
|
)
|
|
review_worker: ReviewWorkerConfig = Field(
|
|
default_factory=ReviewWorkerConfig,
|
|
description="Configuration for the post-turn background skill review worker.",
|
|
)
|