mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-07-17 11:07:11 +08:00
Add a self-evolution subsystem that reviews idle conversations in an isolated agent and durably learns from them — patching/creating skills, finishing unfinished tasks, and backfilling missed memory. - Trigger: background idle scan, fires when a session is idle >= N min AND (>= N turns OR context usage > 80%). In-memory cursor reviews only new messages so a session never re-learns old content. - Isolated review agent: same model, restricted toolset, hard write-guard confining edits to the workspace (built-in skills are protected). - Safety: file-level backup before edits + evolution_undo tool; notify the user ONLY when a workspace file actually changed (no-nag rule); capped concurrency. - Records to memory/evolution/<date>.md, surfaced in the memory UI's renamed "Self-Evolution" tab (merged with dream diaries). - Hide internal [SCHEDULED]/[EVOLUTION]/backup_id markers from chat history display (also fixes scheduler marker leakage) while keeping them in stored content for undo. - Flat config: self_evolution_enabled (default off until release), self_evolution_idle_minutes (15), self_evolution_min_turns (6). - Tests: tests/test_evolution.py (stub + real model modes, 7 scenarios).
20 lines
614 B
Python
20 lines
614 B
Python
"""
|
|
Self-evolution subsystem for CowAgent.
|
|
|
|
Runs a lightweight, isolated review pass after a conversation goes idle to
|
|
decide whether anything is worth durably learning (memory / skill) or whether
|
|
an unfinished task can be pushed forward. Conservative by design: most
|
|
conversations should produce no change at all.
|
|
|
|
Public entry points:
|
|
from agent.evolution import get_evolution_config
|
|
from agent.evolution.trigger import start_evolution_trigger, note_user_turn
|
|
"""
|
|
|
|
from agent.evolution.config import EvolutionConfig, get_evolution_config
|
|
|
|
__all__ = [
|
|
"EvolutionConfig",
|
|
"get_evolution_config",
|
|
]
|