初始化提交

This commit is contained in:
chenxin committed 2026-08-21 16:00:13 +08:00
commit 887c1f449e
963 files changed
+166869

No files matched your search

+18
View File
@@ -0,0 +1,18 @@
"""演化候选领域纯逻辑。
本模块是演化系统(EvolutionCandidate)的纯函数域,禁止 IO。
IO 操作由 ``services/evolution.py`` 或 ``application/big_cycle.py`` 负责编排。
当前内容:
- ``policies`` — level 分类、自动应用策略、类型/作用域枚举
"""
from app.modules.evolution.policies import AUTO_LEVELS, LEVELS, SCOPES, TYPES, should_auto_apply
__all__ = [
"AUTO_LEVELS",
"LEVELS",
"SCOPES",
"TYPES",
"should_auto_apply",
]
+57
View File
@@ -0,0 +1,57 @@
"""演化候选领域纯逻辑(level 分类、自动应用策略、类型/作用域枚举)。
本模块是演化候选相关常量与纯谓词的单一源,禁止 IO。
枚举取值以 [契约字典](../../docs/contracts/contract-glossary.md) §12 为准。
"""
from app.models.evolution import EvolutionCandidate
# ---------------------------------------------------------------------------
# Level 常量与自动应用策略
# ---------------------------------------------------------------------------
# 半自动应用的 level 范围(L0-L3 写入程序记忆/人格权重等轻量参数,L4 核心变更需人工审核)
AUTO_LEVELS: set[str] = {"L0", "L1", "L2", "L3"}
# 所有可选 level,按风险升序排列
LEVELS: tuple[str, ...] = ("L0", "L1", "L2", "L3", "L4")
# ---------------------------------------------------------------------------
# Type / Scope 枚举
# ---------------------------------------------------------------------------
# 演化候选类型
TYPES: tuple[str, ...] = (
"personality",
"personality_weights",
"retrieval_strategy",
"tool_affinity",
"memory",
"tool_strategy",
"safety_rule",
"world_model",
"procedural",
"mood",
)
# 演化候选作用域
SCOPES: tuple[str, ...] = (
"character_scope",
"user_scope",
"task_scope",
"global_scope",
)
# ---------------------------------------------------------------------------
# 策略谓词
# ---------------------------------------------------------------------------
def should_auto_apply(candidate: EvolutionCandidate) -> bool:
"""判断演化候选是否可半自动应用。
满足任一条件即可自动应用:
1. level 在 AUTO_LEVELS 范围内(L0-L3 低风险调整)
2. auto_apply_allowed 为 True(模型+系统共同判定允许自动应用)
"""
return candidate.level in AUTO_LEVELS or candidate.auto_apply_allowed