内容
<p align="center">
<a href="https://github.com/Lians-ai/Lians">
<img src="docs/images/banner.png" width="800px" alt="Lians - 受监管的人工智能记忆基础设施">
</a>
</p>
<p align="center">
<a href="https://github.com/Lians-ai/Lians">了解更多</a>
-
<a href="https://github.com/Lians-ai/Lians/tree/main/docs">文档</a>
-
<a href="docs/install.md">安装</a>
-
<a href="https://github.com/Lians-ai/Lians#self-hosted-quickstart">快速开始</a>
</p>
<p align="center">
<a href="https://pypi.org/project/lians-sdk">
<img src="https://img.shields.io/pypi/v/lians-sdk?color=%2334D058&label=pypi%20package" alt="PyPI 版本">
</a>
<a href="https://pypi.org/project/lians-sdk">
<img src="https://img.shields.io/pypi/dm/lians-sdk?label=pypi%20downloads" alt="PyPI 下载量">
</a>
<a href="https://github.com/Lians-ai/Lians">
<img src="https://img.shields.io/github/commit-activity/m/Lians-ai/Lians/master?style=flat-square" alt="GitHub 提交活动">
</a>
<a href="https://www.npmjs.com/package/@lians-ai/lians">
<img src="https://img.shields.io/npm/v/%40lians-ai%2Flians?label=npm" alt="npm 版本">
</a>
<a href="https://registry.modelcontextprotocol.io/servers/io.github.ebeirne/lians">
<img src="https://img.shields.io/badge/MCP-Official%20Registry-blueviolet" alt="MCP 官方注册表">
</a>
<a href="LICENSE">
<img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="许可证:Apache 2.0">
</a>
</p>
<p align="center">
<a href="docs/benchmark.md"><strong>基准测试:顶级 5 中 0 个过时事实 vs mem0 风格的召回 4/4,加上 100% 超越准确性</strong></a>
</p>
---
[Lians](https://github.com/Lians-ai/Lians) 是 **受监管的人工智能记忆基础设施**:适用于在时间敏感、审计、机密数据上运行的代理的记忆控制平面。
| | 库 | 自托管服务器 | 云 |
|---|---|---|---|
| **最适合** | 测试,原型设计 | 受监管的团队,私有部署 | 零运维生产 |
| **设置** | `pip install lians-sdk[local]` | `docker compose up --build` | `pip install lians-sdk` + API 密钥 |
| **数据库** | SQLite(零设置) | Postgres 16 + pgvector | 受管 |
| **审计链** | 是 | 是 | 是 |
| **加密擦除** | 是 | 是 | 是 |
| **信息屏障** | 本地检查 | PostgreSQL RLS | 受管策略 |
| **空气间隙能力** | 否 | 是 | 否 |
---
## 机构记忆问题
Lians 应被理解为一种记忆控制平面,适用于在时间敏感、审计、机密数据上运行的代理。
大多数记忆层帮助代理记住。Lians 是为必须证明其机构记忆的机构而构建的:
* 代理知道什么,何时知道,从哪里知道,允许谁查看,是否排除了过时事实,以及擦除的内容是否在审计轨迹存活的情况下是 cryptographically 不可恢复的。
这是金融、医疗和法律环境中有用的记忆与可部署的记忆之间的差距。
### 受监管的记忆必须证明
通用代理记忆针对个性化和召回进行优化。受监管的代理记忆有一个不同的任务:它必须保持代理的上下文正确、当前、隔离、可复制和在审查下可防御。
Lians 的设计针对机构的故障模式:
* **过时事实污染** - 旧利率、旧指导、旧药物剂量、旧损害估计或旧客户事实不得悄悄进入上下文。
* **时间点重建** - 检查员、临床医生、合作伙伴或风险委员会可能会要求在特定时间戳上知道什么。
* **信息屏障** - 一个台面、护理团队或事项团队不得读取另一个团队的记忆,因为应用程序层面的错误。
* **擦除和审计存活** - 私有内容必须可移除,而不破坏托管记录、审计哈希或法律保留证据。
* **关系合规检查** - 利益冲突、关联方暴露和推荐网络是图问题,而不是纯粹的矢量搜索。
竞争框架简短:
> mem0 记得。Zep 连接。Lians 证明代理知道什么,何时知道,谁能看到它,以及该记忆是否被允许影响受监管的决定。
### 为受监管的垂直行业构建
| 垂直行业 | Lians 证明 | 产品基元 |
|---|---|------------------|
| **金融机构** | 没有过时或未来的事实影响决策;保持台面隔离;审计状态可重建 | 双时间召回、回测污染检查、SEC/FINRA 审计导出、RLS 信息隔离、关联方图路径 |
| **医疗机构** | PHI 访问范围限定;护理团队记忆可重建;患者擦除可证明 | 每主题加密、加密擦除证书、HIPAA 安全防护映射、护理网络图、空气间隙模式 |
| **法律机构** | 事项墙保持;特权截止日期可重现;托管链在擦除后存活 | 事项级隔离、`recall_at` 用于特权日期、审计重建、利益冲突图路径 |
采购和技术审查材料:
* [机构证明套件](docs/institutional-proof-kit.md)
* [垂直推销指南](docs/verticals.md)
* [竞争格局](docs/competitive-landscape.md)
* [安全白皮书](docs/security-whitepaper.md)
* [SOC 2 / HIPAA 准备情况](docs/soc2-hipaa-readiness.md)
* [威胁模型](docs/threat-model.md)
* [生产部署检查清单](docs/deploy.md)
---
## MCP - 任意 AI 客户端中的原生工具
Lians 在 [官方 MCP 注册表](https://registry.modelcontextprotocol.io/servers/io.github.ebeirne/lians) 中列出。任何 MCP 兼容的主机 - Claude Desktop、Cursor、VS Code、Windsurf 等 - 都可以将您的 Lians 服务器作为原生工具连接,只需一次性配置。无需 SDK 代码,无需自定义适配器,无需包装器。
您的代理会自动获得八种工具:
| 工具 | 功能 |
|---|-------------|
| `remember` | 存储具有事件时间和元数据的事实 |
| `recall` | 通过语义查询检索当前(非过时)事实 |
| `recall_at` | 时间点召回 - 我们在日期 X 上知道什么? |
| `reconstruct` | 用于监管提交的完整审计重建 |
| `list_conflicts` | 表面两个来源不同意的事实 |
| `memory_lineage` | 任何事实的完整继承历史 |
| `fact_history` | 记号 + 度量(例如 AAPL EPS)的时序视图 |
| `backtest_check` | 在回测运行前检测看涨偏见 |
### Claude Desktop / Cursor / Windsurf
将以下内容添加到您的 `claude_desktop_config.json`(或等效的 MCP 配置):
```json
{
"mcpServers": {
"lians": {
"command": "uvx",
"args": ["--from", "lians-sdk[mcp]", "lians-mcp"],
"env": {
"LIANS_URL": "https://your-lians-server.internal",
"LIANS_API_KEY": "lians_...",
"LIANS_AGENT_ID": "trading-desk-1"
}
}
}
}
```
重启您的客户端,Lians 内存工具立即出现 - 您的用户无需安装步骤,只需设置三个环境变量。
### 任意其他 MCP 主机
```bash
uvx --from 'lians-sdk[mcp]' lians-mcp
```
在环境中设置 `LIANS_URL`、`LIANS_API_KEY` 和可选的 `LIANS_AGENT_ID`。
---
## 快速开始
```bash
pip install lians-sdk[local] # 零设置本地模式(SQLite,无 Docker)
```
```python
from lians import LocalLiansClient
from datetime import datetime, timezone
mem = LocalLiansClient()
mem.add(
agent_id="analyst-1",
content="NVDA FY2026 收入指导提升至 40B",
event_time=datetime(2025, 11, 19, 16, tzinfo=timezone.utc),
metadata={"ticker": "NVDA", "metric": "revenue_guidance"},
)
# 过时的事实在数据库层被排除 - 永远不会到达 LLM
results = mem.recall(agent_id="analyst-1", query="NVDA 收入指导")
# 时间点:在 3 月 1 日,我们知道什么?(合规级答案)
results = mem.recall_at(
agent_id="analyst-1",
query="NVDA 收入指导",
as_of=datetime(2025, 3, 1, tzinfo=timezone.utc),
)
```
切换到托管服务器,只需一行:`from lians import LiansClient as LocalLiansClient`
---
## 代理托管 - 内存循环
`LiansMemoryHarness` 包装了两个操作,每个内存增强代理都需要 - 调用前回忆和调用后记忆 - 进入一个对象,以及受监管的部署所需的合规范围(主题、源、事件时间、信息屏障)。
适用于任何同步客户端(`LiansClient` 或 `LocalLiansClient`)和任何模型。
```python
from lians import LiansClient, LiansMemoryHarness
harness = LiansMemoryHarness(mem, agent_id="research-desk", domain="finance")
# 一次调用:回忆上下文,运行模型,持久化响应。
answer = harness.run_turn(
"NVDA 当前的收入指导是什么?",
generate=lambda context, query: call_model(f"{context}\n\nUser: {query}"),
)
# 或控制每个步骤:
context = harness.recall_context("NVDA 收入指导") # 准备好注入
harness.remember("工作台笔记:指导现在 40B") # 在回合后写入
```
监管范围将每次写入绑定到一个数据主题和一个信息屏障:
```python
harness = LiansMemoryHarness(
mem, agent_id="care-team-3",
subject_id="MRN-00042", # 每主题密钥 - 加密擦除目标
barrier_group="oncology", # 信息屏障标签
domain="healthcare",
)
```
可运行的端到端演示:[`agentmem/examples/harness_demo.py`](agentmem/examples/harness_demo.py)
---
## 关系图 - 合规问题本质上是关系问题
一些合规检查 * 是图查询。Lians 存储 **双时间关系边** 以及事实 - 相同的审计链,相同的信息屏障,无图数据库 - 因此您可以回答它们的时间点:
* **法律** - 利益冲突的可达性(ABA 1.7/1.9):律师是否与不利的一方有联系?
* **金融** - 关联方 / 有益所有权(SEC,AML/KYC):受限实体是否有 N 跳以内的关联方?
* **医疗保健** - 护理网络 / 转介模式(反回扣)分析。
```python
mem.relate("analyst-1", src_entity="Attorney", rel_type="represented",
dst_entity="ClientX", event_time=datetime(2026, 1, 1, tzinfo=timezone.utc))
mem.relate("analyst-1", src_entity="ClientX", rel_type="adverse_to",
dst_entity="PartyY", event_time=datetime(2026, 1, 1, tzinfo=timezone.utc))
# 利益冲突检查 - 是否有联系,通过什么?
path = mem.path("analyst-1", src_entity="Attorney", dst_entity="PartyY")
# → {"connected": True, "hops": 2, "path": [...]}
# 时间点:在交易日,谁与之有联系?
mem.neighbors("analyst-1", entity="FundA", depth=2, as_of=datetime(2025, 6, 1, tzinfo=timezone.utc))
# 图近邻重排序 - 提升与锚点附近的召回
mem.recall_near("analyst-1", query="earnings", near_entity="FundA", near_key="ticker")
```
端点:`POST /v1/graph/relate` · `/v1/graph/unrelate` · `/v1/graph/extract`(文本 → 边,基于规则或 opt-in LLM) · `GET /v1/graph/neighbors` · `/v1/graph/path`(所有 `as_of`-capable)。灵感来自 [Zep/Graphiti](docs/compare-zep.md),构建在我们的合规脊柱上。
---
## 代理集成 - Claude Code, Codex, MCP
为任何编码代理提供持久的合规级内存:
| 主机 | 如何 |
|------|-----|
| **Claude Code** | 插件带有斜杠命令(`/lians-remember`,`/lians-recall`,`/lians-audit`,`/lians-integrate`) 和合规子代理 - [`integrations/lians-plugin`](integrations/lians-plugin) |
| **Codex** | 插入 `AGENTS.md` + MCP 配置 - [`integrations/codex`](integrations/codex) |
| **技能标准** | `npx skills add https://github.com/Lians-ai/Lians --skill lians` - 适用于 Claude Code, Codex, Cursor - [`skills/`](skills) |
| **任意 MCP 主机** | 一次性配置;八个原生内存工具 - 请参阅 [MCP 部分](#mcp--native-tool-in-any-ai-client) 上文 |
---
## 为什么选择 Lians
机构 AI 代理累积 **随时间变化的事实**:利率决策被后续决策取代,指导修订,药物剂量更改,护理计划演变,损害估计移动,事项事实在发现过程中被纠正。
没有正确性、访问和审计性要求同时满足的系统会污染 LLM 上下文并返回旧事实。
Lians 通过双时间模型解决这个问题:
* **event_time** - 发生时(业务时间)
* **valid_from / valid_to** - 何时知道(系统时间)
已取代的事实在数据库层被排除。每次写入都记录在篡改防篡改的 SHA-256 哈希链(SEC 17a-4)。每主题密钥可以被销毁以进行 GDPR 擦除,同时审计轨迹存活。
### Lians 与其他产品比较
两大开放式内存层都解决了部分问题;Lians 适用于受监管的场景,需要同时满足正确性、访问和审计性。
| | Lians | mem0 | Zep / Graphiti |
|---|---|------------------|------------------|
| **时间模型** | 双时间事实 **+ 边** (`event_time`, `valid_from/valid_to`) | 仅添加(v3)- 版本共存 | 双时间图边 (`valid_at`/`invalid_at`) |
| **过时事实处理** | 数据库层排除 (**0/4** 顶部 5 中过时) | 累积 (**4/4** 过时) | 边失效(LLM 驱动) |
| **超额** | 确定性,键控 (**100%** 在 22 对基准测试中) | 无 | LLM 提取 |
| **时间点召回** | `recall_at` + 详尽 `snapshot` (**4/4**) | ✗ | 部分(图查询) |
| **关系图** | ✓ 双时间边,N 跳,COI / 相关方 `path` | ✗ | ✓ (它的核心) |
| **图近邻排序** | ✓ `recall_near` (节点距离) | ✗ | ✓ |
| **SEC 17a-4 审计哈希链** | ✓ `verify_chain` | ✗ | ✗ |
| **GDPR/HIPAA 加密擦除** (审计存活) | ✓ + 擦除证书 | ✗ | ✗ |
| **信息屏障** (数据库层 RLS) | ✓ 事实 **和** 边上 | ✗ (`user_id` 过滤) | ✗ (仅限云) |
| **冲突审查队列** | ✓ 检测 + 人类解决 + webhook | ✗ | ✗ |
| **回测看涨偏见证明** | ✓ `backtest_check` | ✗ | ✗ |
| **数据存储** | Postgres + pgvector (一个存储) | 向量数据库 | 图数据库 (Neo4j / FalkorDB) |
| **确定性** | 可复制 | 取决于提取 | 取决于提取 |
**对比 mem0** - mem0 的 v3 是 ADD-only,因此修订的事实(指导,利率,剂量,损害)会累积并污染召回;它没有记录加密、RBAC 或审计。Lians 消除过时的版本确定性,并添加合规主干。 → [docs/compare-mem0.md](docs/compare-mem0.md)
**对比 Zep / Graphiti** - Graphiti 的知识图谱非常出色,Lians 现在也有一个(构建在 Postgres 上,无图数据库)- 但 Graphiti 按其自身文档 * 无访问控制,多租户,审计或合规 *;Zep 仅在封闭云中添加这些。Lians 保留图 **和** 开放的合规主干。
→ [docs/compare-zep.md](docs/compare-zep.md)
→ 完整的基准测试数字:[docs/benchmark.md](docs/benchmark.md)
→ 受监管的评估结果对比(五个合规不变,Lians **5.0** / Zep **2.0** / mem0 **1.0**):[docs/regulated-eval-results.md](docs/regulated-eval-results.md) - Lians 实时执行;竞争对手从其公共 API 表面通过可运行的适配器评分,您可以重新运行这些适配器并使用密钥。
---
## 语言 SDK
Lians 提供 **五种语言** 的原生 SDK - 任何开放式代理内存层中覆盖范围最广的。mem0 是 Python / TypeScript;Zep 添加了 Go。Lians 匹配所有这些 **和** 添加 **Java 和 C**,这两个竞争对手不提供 - 将完整的合规内存层放在监管系统实际运行的位置:JVM 风险平台和原生 / 低延迟 C 交易,市场数据和现场医疗/法律堆栈。
| 语言 | 安装 | 客户端 | 文档 |
| --- | --- | --- | --- |
| **Python** | `pip install lians-sdk` | `from lians import LiansClient` | [sdk/python](agentmem/sdk/python) |
| **TypeScript / Node** | `npm install @lians-ai/lians` | `import { LiansClient } from "@lians-ai/lians"` | [sdk/typescript](agentmem/sdk/typescript) |
| **Go** | `go get github.com/Lians-ai/Lians/agentmem/sdk/go` | `lians.NewClient(url, key)` | [sdk/go](agentmem/sdk/go) |
| **Java** (JVM 11+) | `dev.lians:lians-sdk:0.3.0` (Maven) | `new LiansClient(opts)` | [sdk/java](agentmem/sdk/java) |
| **C** (C99 + libcurl) | `cmake --build build` | `lians_client_new(...)` | [sdk/c](agentmem/sdk/c) |
→ **每个语言的一页安装 + 30 秒快速入门**: [docs/install.md](docs/install.md)
所有五个涵盖相同的 REST API:召回,时间点 `recall_at`,快照,回测,加密擦除,审计链验证和关系图(关联/邻居/路径)。
---
## 框架集成
| 框架 | 安装 | 导入 |
| --- | --- | --- |
| **LangChain** | `pip install lians-sdk[langchain]` | `from lians.langchain_integration import LiansChatHistory, build_tools` |
| **LangGraph** | `pip install lians-sdk[langgraph]` | `from lians.langgraph_integration import create_recall_node, create_remember_node` |
| **CrewAI** | `pip install lians-sdk[crewai]` | `from lians.crewai_integration import build_crewai_tools` |
| **OpenAI Agents SDK** | `pip install lians-sdk[openai-agents]` | `from lians.openai_agents_integration import build_openai_agent_tools` |
| **AutoGen v0.4** | `pip install lians-sdk[autogen]` | `from lians.autogen_integration import build_autogen_tools` |
| **TypeScript / Node** | `npm install @lians-ai/lians` | `import { LiansClient } from "@lians-ai/lians"` |
---
## 自托管快速入门
```bash
git clone https://github.com/Lians-ai/Lians.git && cd Lians/agentmem
cp .env.demo .env
docker compose up --build -d
python scripts/seed_demo.py # 打印演示 API 密钥;打开 demo/index.html
```
部署到 Fly.io,Kubernetes 或裸 Docker:[docs/deploy.md](docs/deploy.md)
---
## SDK 参考
```python
# ... (其他代码保持不变)
```
# 三个客户端共用相同的 API 接口
from lians import LiansClient # 同步,连接到托管/自行托管的服务器
from lians import AsyncLiansClient # 异步,用于 FastAPI / 异步框架
from lians import LocalLiansClient # 本地 SQLite,无需服务器
client.add(agent_id, content, event_time, metadata={}, importance=0.5)
client.add_from_messages(agent_id, messages=[{"role": "user", "content": "..."}])
client.recall(agent_id, query, k=5)
client.recall_at(agent_id, query, as_of=datetime(...)) # 时间点
client.snapshot(agent_id, as_of=datetime(...)) # 完整状态导出
client.backtest_check(agent_id, simulation_as_of=...) # 预测偏差检测
client.erase(subject_id, request_ref) # GDPR 加密销毁
---
## 架构
```
┌──────────────┐
│ 大型语言模型 / 代理 │
└──────┬───────┘
│ REST / MCP
┌───────────▼────────────┐
│ Lians API │ FastAPI · 速率限制 · OpenTelemetry
└──┬────────────────┬────┘
┌───────▼──────┐ ┌──────▼───────┐
│ 记忆 │ │ 事件日志 │
│ (加密) │ │ (哈希链) │
│ 双时间 │ │ 仅追加 │
└───────┬───────┘ └──────────────┘
│
┌───────▼───────┐
│ 主体密钥 │ AES-256-GCM per 主体
│ (加密销毁)│ 销毁密钥 = 内容不可恢复
└───────────────┘
Postgres 16 + pgvector (HNSW) Redis (召回热缓存)
```
**召回流程:** BM25 + 余弦(Voyage Finance-2)→ 时间衰减 → 有效性门控(`valid_to IS NULL` 表示当前;`valid_from ≤ as_of < valid_to` 表示时间点)
**取代流程:** 阶段 1(元数据密钥重叠)→ 阶段 2(确定性:SUPERSEDES / CONFIRMS / ADDS)→ 阶段 3(可选的大型语言模型仲裁,用于释义检测)
---
## 配置
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `EMBEDDING_PROVIDER` | `local` | `voyage` · `openai` · `sentence-transformers` · `local` |
| `VOYAGE_API_KEY` | — | `EMBEDDING_PROVIDER=voyage` 时必填 |
| `MASTER_ENCRYPTION_KEY` | — | Base64 32 字节密钥;留空禁用 PII 加密 |
| `KMS_PROVIDER` | `env` | `env` · `aws` · `azure` · `vault` |
| `ADMIN_SECRET` | — | 保护 `/v1/admin/*` — **生产环境中请更改** |
| `SUPERSESSION_LLM_STAGE` | `false` | 启用阶段 3 大型语言模型仲裁(Claude Haiku) |
| `AIRGAP_MODE` | `false` | 启动时如果任何配置将发送数据到外部,则硬故障 |
| `ADMISSION_MODE` | `monitor` | 接纳控制:`off` · `monitor` (标记 + 审计)· `enforce` (拒绝注入/阻止源,保留 PII/PHI/MNPI 进行审查) |
| `SIEM_URL` | — | 将每个审计事件流式传输到 SIEM 收集器(Splunk HEC / Datadog / Elastic) |
| `WORM_MODE` | `false` | 证明一次写入多次读取存储以满足 SEC 17a-4(对象锁定审计,`event_log` 不支持 UPDATE/DELETE) |
| `STRIPE_API_KEY` | — | 启用按命名空间的使用计量 |
完整参考:[agentmem/.env.example](agentmem/.env.example)
---
## 关键端点
| 方法 | 路径 | 描述 |
|--------|------|-------------|
| `POST` | `/v1/memories` | 添加记忆(接纳控制;取代检查;`Idempotency-Key` 用于恰好一次重试) |
| `GET`/`POST` | `/v1/admissions` · `/{id}/resolve` | 审查队列,用于保存的写入(PII/PHI/MNPI)— 批准 / 拒绝 |
| `POST` | `/v1/memories/batch` | 批量导入 |
| `POST` | `/v1/recall` | 混合 BM25+余弦召回;可选 `as_of`,MMR 重新排序(`filters._rerank=mmr`) |
| `POST` | `/v1/context` | 令牌预算,准备注入的上下文块(时间点 + MMR 感知) |
| `POST` | `/v1/erase` | GDPR 加密销毁 `subject_id` |
| `GET` | `/v1/audit/reconstruct` | 在任何过去日期重建代理状态 |
| `GET` | `/v1/admin/audit/verify` | 验证 SHA-256 哈希链完整性 |
| `GET` | `/v1/admin/audit/export` | 导出审计日志(SEC/FINRA/CFTC) |
| `GET` | `/livez` | 存活探测(廉价;进程启动) |
| `GET` | `/readyz` · `/health` | 准备就绪 / 深度健康检查(数据库 + Redis) |
交互式文档:`http://localhost:8000/docs`
---
## 运行测试
```bash
cd agentmem
pip install -e ".[dev]"
pytest -v
# 基准测试(无需 API 密钥)
pytest tests/test_supersession_benchmark.py tests/test_recall_quality.py -v
```
参阅 [docs/testing.md](docs/testing.md) 以了解六个命名不变性(时间健全性、审计不可变性、擦除等)。
---
## 生产和运营
构建为在受监管的生产环境中运行,而不仅仅是演示:
- **恰好一次写入** — `Idempotency-Key` 在 `POST /v1/memories` 上;SDK 自动发送稳定密钥,因此重试写入永远不会重复。
- **弹性客户端** — 具有指数退避的内置重试,用于传输错误 / 5xx / 429。
- **Kubernetes 探测** — 廉价的 `/livez` (存活)和深层 `/readyz` (准备就绪),因此依赖关系波动不会重启健康 Pod。
- **速率限制** — 按 API 密钥的滑动窗口(Redis),失败时打开。
- **访问控制** — 命名空间范围的密钥、`read`/`write`/`admin` 范围、**RBAC 角色** (`owner`/`analyst`/`compliance`/`readonly`),以及通过网关转发身份验证的 SSO。
- **数据库层信息屏障** — `RESTRICTIVE` PostgreSQL RLS,**在 CI 中已证明** 针对非超级用户角色。*以非超级用户数据库角色运行应用程序* — 超级用户绕过 RLS。
- **内存接纳控制** — 控制允许进入内存的内容:PII/PHI/MNPI 检测、源信任、提示注入隔离和风险审查队列 (`ADMISSION_MODE`)。其他内存层不具备此功能。
- **SIEM 流式传输** — 每个审计事件转发到 Splunk HEC / Datadog / Elastic (`SIEM_URL`),即发即弃。
- **可观察性** — Prometheus 指标 + Grafana,OpenTelemetry 跟踪,带有请求 ID 的 JSON 访问日志。
- **评估** — 无需裁判的内存评估框架 (`agentmem/benchmarks/memory_eval.py`),采用 LoCoMo/LongMemEval 形状。
安全和采购文档:[security-whitepaper.md](docs/security-whitepaper.md) · [threat-model.md](docs/threat-model.md) · [soc2-hipaa-readiness.md](docs/soc2-hipaa-readiness.md) · [sso.md](docs/sso.md) · [publishing.md](docs/publishing.md)
---
## 合规性
| 要求 | 功能 |
|-------------|---------|
| SEC 17a-4 篡改证据 | 每个审计行的 SHA-256 哈希链 |
| FINRA 4511 记录保存 | 仅追加 `event_log` |
| GDPR 第 17 条 删除 | 每主体密钥的 AES-256-GCM;加密销毁 |
| MiFID II 时间点 | 双时间:`event_time` + `valid_from/valid_to` |
| 信息屏障 | `barrier_group` 列;PostgreSQL RLS |
| HIPAA §164.312 | 每主体加密、审计控制、传输安全性 |
完整文档:[compliance.md](docs/compliance.md) · [hipaa.md](docs/hipaa.md) · [security-whitepaper.md](docs/security-whitepaper.md) · [threat-model.md](docs/threat-model.md) · [soc2-hipaa-readiness.md](docs/soc2-hipaa-readiness.md) · [sso.md](docs/sso.md) · [worm-storage.md](docs/worm-storage.md)
访问控制:命名空间范围的 API 密钥,具有 `read`/`write`/`admin` 范围和 RBAC 角色 (`owner`/`analyst`/`compliance`/`readonly`);通过网关转发身份验证(任何 OIDC/SAML 身份提供者)。
---
## 包装和定价
Lians 是开源的,可以完全自行托管。对于合规性允许托管处理的客户,提供托管云服务;受监管的买家应根据部署边界和证据要求选择套餐,而不是根据消费者风格的每月层级。
| 套餐 | 最适合 | 部署 | 商业模式 |
|---|---|---|---|
| **开发者** | 本地原型、基准测试、集成 | 本地库或单节点服务器 | 免费 / 基于使用 |
| **团队** | 内部试点和非生产代理工作流 | Docker 或小型 Kubernetes 部署 | 基于使用或团队计划 |
| **受监管的生产** | 敏感、审计、时间相关的代理工作负载 | 客户云、私有 VPC 或本地 | 年度合同 |
| **企业 / 空气隔离** | 银行、医院、律师事务所、保险公司、政府 | 私有云、本地或空气隔离 | 自定义年度合同 |
| **托管云** | 无运维生产环境,托管处理获批 | Lians 管理的环境 | 合同或基于使用 |
医疗保健客户在处理 PHI 的托管环境中需要签署 BAA。金融和法律客户可能需要客户管理的密钥、私有网络、区域驻留、专用环境或空气隔离部署。
完整包装文档:[docs/pricing-tiers.md](docs/pricing-tiers.md) 和 [docs/billing.md](docs/billing.md)
**从另一个系统切换?** [从 mem0 迁移](docs/migrate-from-mem0.md) 或 [从 Zep CE 迁移](docs/migrate-from-zep.md)
---
## 许可证
Apache 2.0 — 参见 [LICENSE](LICENSE)。
<!-- mcp-name: io.github.ebeirne/lians -->
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器