M3a:息壤三级记忆域——归真触发提取管线/白名单明忆/重忆确认/正影版本链/删除墓碑/双通道召回注入,退役旧记忆-抽取-反思-大周天-演化管线(迁移 004,验收 7 用例)

This commit is contained in:
chenxin committed 2026-08-27 09:16:32 +08:00
1 parent 2a640a901b
commit 9c98c2f85e
69 files changed
+1193 -6033

No files matched your search

-35
View File
@@ -1,35 +0,0 @@
"""演化候选 API schema(契约字典 §12;api-spec 演化候选审核)。"""
from datetime import datetime
from typing import Any
from pydantic import Field
from app.schemas.common import OrmModel
class EvolutionCandidateResponse(OrmModel):
"""演化候选响应(delta/evidence_ids 已从 JSON 文本解析)。"""
id: str = Field(description="演化候选 ID(evolution_ 前缀)")
character_id: str
cycle_id: str = Field(description="触发本次的大周天循环 ID")
type: str = Field(description="候选类型,取值见契约字典 §12.1")
source: str = Field(description="来源,本期 big_cycle")
level: str = Field(description="影响层级 L0-L4")
scope: str = Field(description="作用域,取值见契约字典 §12.3")
title: str
proposal: str
delta: dict[str, Any] = Field(default_factory=dict, description="演化增量")
evidence_ids: list[str] = Field(default_factory=list)
confidence: float
benefit_score: float
risk_score: float
drift_score: float
auto_apply_allowed: bool
status: str
resulting_target_id: str | None = None
error_message: str | None = None
reviewed_at: datetime | None = None
reviewed_by: str
created_at: datetime
-109
View File
@@ -1,109 +0,0 @@
"""记忆 API schema。"""
from pydantic import BaseModel, ConfigDict, Field
class MemoryCreateRequest(BaseModel):
model_config = ConfigDict(
json_schema_extra={
"examples": [
{
"type": "user",
"title": "回答偏好",
"content": "用户喜欢简洁、直接、带验证结果的中文回答。",
"source": "user_explicit",
"confidence": 1.0,
"importance": 0.8,
"sensitivity": "low",
"evidence_ids": ["message_462927da6f0e4af780dd28fd58f73314"],
"character_id": "character_ec83d55746c54e47ab6f98d683032626",
}
]
}
)
type: str = Field(
default="user", max_length=60, description="记忆类型,取值见契约字典 memory.type。"
)
title: str = Field(max_length=200, description="记忆标题。")
content: str = Field(min_length=1, description="记忆正文。")
source: str = Field(
default="user_explicit", description="记忆来源,取值见契约字典 memory.source。"
)
confidence: float = Field(default=1.0, ge=0.0, le=1.0, description="置信度,范围 0.0–1.0。")
importance: float = Field(default=0.5, ge=0.0, le=1.0, description="重要性,范围 0.0–1.0。")
sensitivity: str = Field(default="low", description="敏感等级:none / low / medium / high。")
evidence_ids: list[str] = Field(default_factory=list, description="证据 ID 列表。")
character_id: str | None = Field(default=None, description="人物 ID;为空时使用当前激活人物。")
class MemoryUpdateRequest(BaseModel):
model_config = ConfigDict(
json_schema_extra={
"examples": [
{
"title": "回答偏好(已确认)",
"importance": 0.9,
"status": "active",
"evidence_ids": ["message_462927da6f0e4af780dd28fd58f73314"],
}
]
}
)
type: str | None = Field(default=None, max_length=60, description="记忆类型。")
title: str | None = Field(default=None, max_length=200, description="记忆标题。")
content: str | None = Field(default=None, description="记忆正文。")
confidence: float | None = Field(
default=None, ge=0.0, le=1.0, description="置信度,范围 0.0–1.0。"
)
importance: float | None = Field(
default=None, ge=0.0, le=1.0, description="重要性,范围 0.0–1.0。"
)
sensitivity: str | None = Field(default=None, description="敏感等级。")
status: str | None = Field(
default=None, description="记忆状态:active / archived / deleted / superseded。"
)
evidence_ids: list[str] | None = Field(default=None, description="证据 ID 列表。")
class MemoryResponse(BaseModel):
model_config = ConfigDict(
json_schema_extra={
"examples": [
{
"id": "memory_4d9c6e3b18bb4ef5a6b8ed2e902d1f1a",
"character_id": "character_ec83d55746c54e47ab6f98d683032626",
"type": "user",
"title": "回答偏好",
"content": "用户喜欢简洁、直接、带验证结果的中文回答。",
"source": "user_explicit",
"confidence": 1.0,
"importance": 0.8,
"sensitivity": "low",
"evidence_ids": ["message_462927da6f0e4af780dd28fd58f73314"],
"status": "active",
"created_at": "2026-06-19T09:12:00.000000Z",
"updated_at": "2026-06-19T09:12:00.000000Z",
"deleted_at": None,
"expires_at": None,
}
]
}
)
id: str = Field(description="记忆 ID,前缀为 memory_。")
character_id: str = Field(description="所属人物 ID。")
type: str = Field(description="记忆类型。")
title: str = Field(description="记忆标题。")
content: str = Field(description="记忆正文。")
source: str = Field(description="记忆来源。")
confidence: float = Field(description="置信度。")
importance: float = Field(description="重要性。")
sensitivity: str = Field(description="敏感等级。")
evidence_ids: list[str] = Field(description="证据 ID 列表。")
status: str = Field(description="记忆状态。")
created_at: str = Field(description="创建时间,UTC ISO 8601 字符串。")
updated_at: str = Field(description="更新时间,UTC ISO 8601 字符串。")
deleted_at: str | None = Field(description="删除时间;未删除时为空。")
expires_at: str | None = Field(description="过期时间;永不过期时为空。")