关于 cognos-session-memory
cognos-session-memory 是一个用于跨会话保存和检索上下文的 MCP 服务,面向需要延续任务记录的 LLM 工作流。它根据认知信任公式评估上下文,并可将低分内容标记为人工复核。
主要功能
- 01按认知信任公式评分
- 02从近期会话轨迹提取上下文
- 03按阈值注入或标记复核
- 04以 SQLite 保存会话轨迹
- 05支持自动、强制与试运行模式
适用场景
- 01在新会话中恢复已验证的项目背景
- 02为持久化的会话摘要评分
- 03复核低信任度的上下文
- 04审计上下文注入及对应轨迹
MCP 相关
作为 MCP 服务,它通过 `save_session` 和 `load_session` 工具提供会话摘要的评分、持久化与检索。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
CognOS 会话记忆
mcp-name: io.github.base76-research-lab/cognos-session-memory
通过认识论信任评分,为大模型注入经过验证的上下文。
通过在对话之间保留经过验证、高置信度的会话上下文,解决会话碎片化问题。
问题
大语言模型面临会话碎片化:每次新对话开始时,都没有经过验证的先前工作上下文。这迫使用户重复说明,导致决策历史丢失,并破坏长期工作流。
现有解决方案(持久化记忆系统、向量检索)存在以下问题:
- 注入前缺少信任分数 → 幻觉会传播
- 不审计注入了哪些上下文 → 存在合规性缺口
- 将所有历史信息一视同仁 → 噪声淹没有效信号
解决方案
一个计划模式网关,用于:
- 从最近的 3-5 条轨迹中提取结构化上下文
- 使用 CognOS 认识论公式对上下文质量进行评分:
C = p · (1 − Ue − Ua) - 仅在
C > threshold时将其作为系统提示词注入 - 在
C < threshold时标记以供人工审核 - 使用轨迹 ID 审计每次上下文注入 → 符合 EU AI Act 要求
架构
recent_traces (n=5)
↓
extract_context() → ContextField + coverage
↓
compute_trust_score(p, ue, ua) → C, R, decision
↓
if C > threshold:
system_prompt ← inject
else:
flagged_reason ← manual review
核心公式
C = p · (1 − Ue − Ua)
R = 1 − C
where:
p = prediction confidence (coverage of required fields)
Ue = epistemic uncertainty (divergence between traces)
Ua = aleatoric uncertainty (mean risk in traces)
操作门控
R < 0.25 → PASS (inject without review)
0.25 ≤ R < 0.60 → REFINE (inject with caution)
R ≥ 0.60 → ESCALATE (flag for manual review)
API
POST /v1/plan
提取并评分上下文。
请求:
{
"n": 5,
"trust_threshold": 0.75,
"mode": "auto"
}
响应(已注入时):
{
"status": "injected",
"trust_score": 0.82,
"confidence": 0.82,
"risk": 0.18,
"decision": "PASS",
"context": {
"active_project": "CognOS mHC research",
"last_decision": "Verify P1 hypothesis",
"open_questions": ["How does routing entropy scale?"],
"current_output": "exp_008 complete",
"recent_models": ["gpt-4", "claude-3", "mistral"]
},
"system_prompt": "## CognOS Context...",
"trace_ids": ["uuid-1", "uuid-2", ...]
}
响应(已标记时):
{
"status": "flagged",
"trust_score": 0.45,
"decision": "REFINE",
"flagged_reason": "Trust score 0.45 below threshold 0.75. Manual review recommended.",
"trace_ids": [...]
}
模式
- auto(默认)— 如果
trust_score ≥ threshold则注入,否则标记 - force — 始终注入(用于测试)
- dry_run — 计算分数,但不注入
Claude Code 集成
替代 /compact
# In any Claude Code session:
/save
Claude 会编写结构化摘要,为其计算信任分数,并将其持久化到 SQLite。
在下一次会话中,它会在你的第一个提示词之前自动作为 SESSION_CONTEXT 注入。
完整对比请参阅 docs/COMPACT_ALTERNATIVE.md。
作为 MCP 服务
添加到 ~/.claude/settings.json:
{
"mcpServers": {
"cognos-session-memory": {
"command": "python3",
"args": ["/path/to/cognos-session-memory/mcp_server.py"]
}
}
}
提供的工具:
| 工具 | 描述 |
|---|---|
save_session(summary, project?) | 为会话摘要计算信任分数并将其持久化 |
load_session(threshold?) | 检索最近经过验证的上下文(默认阈值:0.45) |
快速开始
安装
git clone https://github.com/base76-research-lab/cognos-session-memory
cd cognos-session-memory
pip install -e .
运行网关
python3 -m uvicorn --app-dir src main:app --port 8788
测试 /v1/plan(dry_run)
curl -X POST http://127.0.0.1:8788/v1/plan \
-H 'Content-Type: application/json' \
-d '{"n": 5, "mode": "dry_run"}'
测试 /v1/plan(auto)
curl -X POST http://127.0.0.1:8788/v1/plan \
-H 'Content-Type: application/json' \
-d '{"n": 5, "trust_threshold": 0.75, "mode": "auto"}'
模块
- trust.py — CognOS 置信度公式、操作门控、信号提取器
- trace_store.py — SQLite 持久化(写入/读取/清除)
- plan.py — 上下文提取、信任评分、系统提示词构建
- main.py — FastAPI 网关与中间件
- mcp_server.py — MCP stdio 服务(
save_session、load_session)
测试
pytest tests/ -v --cov=src
文档
- COMPACT_ALTERNATIVE.md — 为什么它胜过
/compact - PAPER.md — 研究论文
研究论文
请参阅 docs/PAPER.md —《经过验证的上下文注入:面向大语言模型的认识论评分会话记忆》
状态: 独立研究 — Base76 Research Lab,2026 作者: Björn André Wikström(Base76)
引用
@software{wikstrom2026cognos,
author = {Wikström, Björn André},
title = {{CognOS Session Memory}: Verified Context Injection via Epistemic Trust Scoring},
year = {2026},
url = {https://github.com/base76-research-lab/cognos-session-memory}
}
许可证
MIT
联系方式
- 作者: Björn André Wikström
- 电子邮件: [email protected]
- ORCID: 0009-0000-4015-2357
- GitHub: base76-research-lab
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。