mcpField
L
logic-server

logic-server

本地服务
github.com/AuctalisAI 与智能体311 周前更新

关于 logic-server

logic-server 是面向 AI 应用的上下文与推理引擎,可从对话提取事实、推断目标相关信息,并返回轮次间的变化,帮助 Agent 开发者减少重复上下文并维护逻辑一致性。

主要功能

  1. 01从对话轮次提取事实
  2. 02按目标进行反向链推理
  3. 03返回轮次间的上下文差异
  4. 04事实维护与矛盾处理
  5. 05提供 Python、TypeScript、REST、命令行和 MCP 接口

适用场景

  1. 01减少发送给 LLM 的重复对话上下文
  2. 02整理与 Agent 当前目标相关的事实
  3. 03跟踪轮次间新增和移除的上下文

MCP 相关

提供符合规范的 MCP 服务,包含用于获取显著性排序工作集的 `context` 工具。可将 HTTP 端点与 MCP 配合,用于按目标组装上下文并获取差异。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ai-nocturnus-logic-server": {
"command": "npx",
"args": [
"-y",
"nocturnusai-mcp"
],
"env": {
"NOCTURNUSAI_URL": "<NOCTURNUSAI_URL>",
"NOCTURNUSAI_API_KEY": "<NOCTURNUSAI_API_KEY>",
"NOCTURNUSAI_DATABASE": "<NOCTURNUSAI_DATABASE>",
"NOCTURNUSAI_TENANT": "<NOCTURNUSAI_TENANT>"
}
}
}
}
启动命令npx -y nocturnusai-mcp
需要配置的环境变量
NOCTURNUSAI_URLBase URL of the NocturnusAI server
NOCTURNUSAI_API_KEY密钥API key for authenticated access
NOCTURNUSAI_DATABASEDatabase name to use
NOCTURNUSAI_TENANTTenant ID for multi-tenant isolation

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmnocturnusai-mcp0.3.11

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

NocturnusAI

CI PyPI npm Docker License: BUSL-1.1 MCP

AI Agent 的上下文工程引擎:只发送发生变化的内容。

NocturnusAI — AI Agent 上下文工程引擎


前后对比

# ❌ Without NocturnusAI — replay everything, every turn
messages = system_prompt + full_history + tool_outputs   # ~1,259 tokens/turn
response = llm(messages)                                 # $13,600/mo at scale

# ✅ With NocturnusAI — send only what changed
ctx = nocturnus.process_turns(raw_turns)                 # extract → infer → delta
messages = system_prompt + ctx.briefing_delta             # ~221 tokens/turn
response = llm(messages)                                 # $2,400/mo. Same accuracy.

数据表现

在实际 API 上测得。15 轮产品支持对话。真实的 usage.input_tokens 计数。亲自运行。

朴素重放RAG 优化NocturnusAI
每轮 Token 数~1,259~800~221
每月成本(1K 请求/小时,Opus 4,$15/1M)$13,600$12,000$2,400
延迟高中低
保留事实准确性否否是

Claude Opus 4:减少 5.7×。Gemini 2.0 Flash:减少 10.0×。完整计算过程。


安装

pip install nocturnusai          # Python
npm install nocturnusai-sdk      # TypeScript
docker run -p 9300:9300 ghcr.io/auctalis/nocturnusai:latest  # Docker

或者使用设置向导:

curl -fsSL https://raw.githubusercontent.com/Auctalis/nocturnusai/main/install.sh | bash

开发者为何给此仓库点星

  • 可复现的 Token 减少效果 — 仓库中提供基准测试,已公开方法,可使用你自己的工作负载运行测试
  • 确定性推理 — 相同查询,每次得到相同结果。没有嵌入漂移,也不靠余弦相似度碰运气
  • 事实维护 — 撤回一项事实,所有派生结论都会自动撤回。没有过时上下文,不会对运行状态产生幻觉
  • 可接入现有技术栈 — LangChain、LlamaIndex、CrewAI、AutoGen、MCP、Vercel AI SDK、OpenAI Agents SDK、Mastra
  • 可与朴素重放进行基准对比 — 数据经过推导,而非捏造。每一项声明都能追溯到 Notebook 单元格

框架快速入门

框架集成方式链接
LangChain / LangGraph可直接替换的 NocturnusContextProvider,透传 LangSmith 跟踪信息文档
CrewAI按 Agent 角色限定任务范围内的上下文文档
AutoGen任何 Agent 都可调用的上下文服务文档
MCP符合规范的服务,适用于 Claude Desktop、Cursor、Continue配置
OpenAI Agents SDK上下文中间件,无需修改工具文档
Vercel AI SDK适用于 Next.js、Nuxt、SvelteKit 的边缘兼容适配器文档
Python SDKpip install nocturnusai文档
TypeScript SDKnpm install nocturnusai-sdk文档

工作原理

每轮都分为三个步骤。

  1. 提取 — 将原始对话轮次通过 LLM 提取为结构化事实
  2. 推断 — 通过反向链推理,只查找从 Agent 当前目标可达的事实
  3. 返回增量 — 返回仅包含自上一轮以来变化内容的 briefingDelta

这不是向量搜索,也不是摘要,而是在逻辑引擎上进行确定性推理 — 使用 Hexastore 索引、反向链推理 和 真值维护。


工作循环

自然语言轮次需要 LLM。 以下示例会将原始文本轮次发送给 LLM,以提取结构化事实。如果启动服务时未配置 LLM 提供商,自然语言轮次将返回零条事实。设置选项请参阅快速入门,也可以使用无需 LLM 即可运行的谓词语法(例如,"customer_tier(acme_corp, enterprise)")。

1. 首次精简:POST /context
curl -X POST http://localhost:9300/context \
  -H 'Content-Type: application/json' \
  -H 'X-Tenant-ID: default' \
  -d '{
    "turns": [
      "user: Customer says they are enterprise and blocked on SLA credits.",
      "tool: CRM says account is Acme Corp with a 2M ARR contract.",
      "agent: Last week support promised to review SLA eligibility.",
      "tool: Billing note says renewal is due next month."
    ],
    "maxFacts": 12
  }'
2. 目标驱动处理:POST /memory/context
curl -X POST http://localhost:9300/memory/context \
  -H 'Content-Type: application/json' \
  -H 'X-Tenant-ID: default' \
  -d '{
    "goals": [{"predicate":"eligible_for_sla","args":["acme_corp"]}],
    "maxFacts": 12,
    "sessionId": "ticket-42"
  }'
3. 后续轮次:POST /context/diff
curl -X POST http://localhost:9300/context/diff \
  -H 'Content-Type: application/json' \
  -H 'X-Tenant-ID: default' \
  -d '{"sessionId": "ticket-42", "maxFacts": 12}'

仅返回快照之间新增和移除的条目。

4. 线程结束时:POST /context/session/clear
curl -X POST http://localhost:9300/context/session/clear \
  -H 'Content-Type: application/json' \
  -H 'X-Tenant-ID: default' \
  -d '{"sessionId":"ticket-42"}'

选择使用方式

Python SDK
from nocturnusai import SyncNocturnusAIClient

with SyncNocturnusAIClient("http://localhost:9300") as client:
    ctx = client.process_turns(
        turns=[
            "user: Customer says they are enterprise and blocked on SLA credits.",
            "tool: CRM says account is Acme Corp with a 2M ARR contract.",
        ],
        scope="ticket-42",
        session_id="ticket-42",
    )

    diff = client.diff_context(session_id="ticket-42", max_facts=12)
    client.clear_context_session("ticket-42")

    print(ctx.briefing_delta)
TypeScript SDK
import { NocturnusAIClient } from 'nocturnusai-sdk';

const client = new NocturnusAIClient({
  baseUrl: 'http://localhost:9300',
  tenantId: 'default',
});

const ctx = await client.processTurns({
  turns: [
    'user: Customer says they are enterprise and blocked on SLA credits.',
    'tool: CRM says account is Acme Corp with a 2M ARR contract.',
  ],
  scope: 'ticket-42',
  sessionId: 'ticket-42',
});

const diff = await client.diffContext({ sessionId: 'ticket-42', maxFacts: 12 });
await client.clearContextSession('ticket-42');
console.log(ctx.briefingDelta);
MCP
{
  "mcpServers": {
    "nocturnus": {
      "url": "http://localhost:9300/mcp/sse",
      "transport": "sse"
    }
  }
}

每轮使用 context 工具,获取按显著性排序的工作集。需要目标驱动的内容组装和差异对比时,可将 MCP 与 HTTP 上下文端点配合使用。


工作流背后的功能

需要了解后端机制时,NocturnusAI 可提供以下功能:

  • 确定性事实和规则存储
  • 支持证明链的反向链推理
  • 真值维护与矛盾处理
  • 带有 ttl、validFrom 和 validUntil 的时间事实
  • 通过 X-Database 和 X-Tenant-ID 实现多租户
  • 基于同一引擎提供 MCP、REST、Python SDK、TypeScript SDK 和 CLI 接口

快速入门

Docker(最快)
docker run -d --name nocturnusai -p 9300:9300 \
  --restart unless-stopped \
  -v nocturnusai-data:/data \
  ghcr.io/auctalis/nocturnusai:latest
curl http://localhost:9300/health   # Verify it's running
使用 Ollama 的 Docker(启用自然语言提取)
docker run -d --name nocturnusai -p 9300:9300 \
  --add-host=host.docker.internal:host-gateway \
  -e LLM_PROVIDER=ollama \
  -e LLM_MODEL=granite3.3:8b \
  -e LLM_BASE_URL=http://host.docker.internal:11434/v1 \
  -e EXTRACTION_ENABLED=true \
  ghcr.io/auctalis/nocturnusai:latest
从此代码仓库启动
make up-ollama && make smoke

CLI

nocturnusai                                # Interactive REPL
nocturnusai -e "context 10"               # Salience-ranked working set
nocturnusai -e "compress"                 # POST /memory/compress
nocturnusai -e "cleanup 0.05"             # POST /memory/cleanup

文档

完整文档:nocturnus.ai

从这里开始轮次精简工作流
上下文工作流原始轮次 → 优化 → 差异对比 → 清除
API 参考REST 端点和响应结构
SDKPython 和 TypeScript 客户端方法
集成LangChain、CrewAI、AutoGen、MCP 等
基准测试在实时 API 上测得的令牌缩减效果
计算过程所有数字的推导过程
工作原理提取 → 推断 → 增量的处理流程

Docker Compose(高级)

git clone https://github.com/Auctalis/nocturnusai.git && cd nocturnusai

make up                                        # Server using .env.example defaults
make up-ollama                                 # + Ollama (reuses host or starts bundled)
make up-monitoring                             # + Prometheus + Grafana
make smoke                                     # Verify health + context endpoint

从源代码构建

需要 JDK 17+。

./gradlew :nocturnusai-server:run              # HTTP server on :9300
./gradlew :nocturnusai-cli:run                 # Interactive REPL (JVM)
./gradlew :nocturnusai-cli:nativeCompile       # Build native binary
./gradlew test                                 # Full test suite

参与贡献

请参阅 CONTRIBUTING.md。标记为 good first issue 的问题适合作为入门任务。

安全

请通过 GitHub 安全公告私下报告漏洞。请参阅 SECURITY.md。

许可证

Business Source License 1.1(SPDX:BUSL-1.1)。可在贵组织内部免费使用,包括内部生产环境。若要将 NocturnusAI 或其大部分功能作为产品/托管服务提供给第三方,则需要商业许可证([email protected])。该许可证将于 2030-02-19 转为 Apache 2.0。请参阅 LICENSE 和 DISCLAIMER.md。


法律与安全声明

NocturnusAI 是一个确定性推理引擎,但其输出的可靠性仅取决于提供给它的事实。

  1. 不保证内容属实。“已验证”指推理在逻辑上保持一致,并不代表现实世界主张准确无误。
  2. **不得用于自主处理高风险决策。**未经独立的人工核验,不得将此引擎用于无人监督的医疗、金融、法律或人身安全决策。
  3. **仅提供逻辑层。**NocturnusAI 提供信息和推理,不会执行操作。
  4. **不承担责任。**请参阅 DISCLAIMER.md 和 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。