QILIN ENGINE · 引擎介绍

麒麟引擎

QiLin(麒麟引擎)是一个开源的自主智能体引擎(agent harness)。智能体在可持久化的会话中工作:读写与编辑文件、执行 shell 命令和持久终端、搜索网络、查询语言服务器,并把工作委派给子智能体与后台任务;所有模型可见的输入与输出都记录到可重放的会话日志中。

01一切皆插件

麒麟引擎构建在「一切皆插件」的架构之上,由 Kylin 插件框架驱动(Kylin 源自开源的 Cordis,以 vendor 方式收入仓库)。模型适配器、工具注册表、会话日志以及智能体循环(agent loop)本身都是插件,每一个都可以从配置中替换。

不存在需要打补丁的特权内核:扩展麒麟引擎的方式是把插件挂载到其他插件旁边,而各项注册都是可逆的副作用,会在其插件卸载时自动撤销。这让引擎的任何一个环节——从提示词组装、工具执行到模型流式输出——都能被第三方实现替换或增强,而不必改动核心代码。

02NMO 产品理念

麒麟引擎是 NMO 产品线的锚:引擎本身与运行其上的每个产品都遵循三条原则。新产品在开发功能之前先写明如何遵循;设计争议以三条仲裁;违背任一条的功能不发布。

NATIVE · 事实原生

你拥有

会话、领域与插件的事实由自己的运行时持有,绝不寄存于第三方服务或用户记忆。任意会话可从本地日志完整重建。

MINIMAL · 操作极简

用户只花任务允许的最少操作

自然语言是主操作面;系统负责推断、匹配与执行,打断只发生在不可逆、高成本或诚信关键的决策点。

OPEN · 开放扩展

世界进得来

官方、第三方与用户的能力都经公开契约进入;能力由契约定义,不由实现定义,同一契约下官方实现可被替换。

03核心能力

从一次对话到一个多小时的工作流,引擎把复杂任务拆成可观察、可干预、可复跑的一步步执行。

TOOLS

工具与执行

覆盖一次性与持久 PTY 两种形式的 bash 与 PowerShell、文件读写编辑与图片读取、基于内置 ripgrep 的 glob/grep 发现、LSP 查询、网络搜索与抓取、技能加载、todo/plan/goal 跟踪以及向用户提问的 ask-user 交互。

MODELS

多模型支持

DeepSeek 适配器与多提供方适配器覆盖 Anthropic、OpenAI、Kimi、GLM、豆包、Gemini 等内置提供方,也支持自定义的 OpenAI 或 Anthropic 兼容网关,按会话切换。

SANDBOX

执行世界与沙箱

文件系统、子进程与沙箱 provider 构成可替换的执行世界:默认本机、经成对 provider 的 SSH 远程主机、以 bwrap/Landlock/Seatbelt 为后端的进程隔离;实验包通过注册 provider 提供浏览器与电脑交互。

MEMORY

长短期记忆

跨会话的长短期记忆让智能体持续理解你的偏好与上下文;会话支持 fork、恢复与全文检索,历史即资产。

AGENTS

子智能体与工作流

工作可委派给后台任务、支持模型选择与中途引导的子智能体、脚本化多智能体工作流或定时跟进;目标、清单与定时任务直接进入对话,随时查看、修改、续跑。

SKILLS · MCP

技能与开放生态

内置技能库按需渐进加载;外部 MCP 服务器挂载为原生工具;既有 Claude Code 与 Codex 的 shell 钩子无需修改即可运行;经验证的 webhook 可从外部事件启动会话。

04Kylin 插件内核

引擎底层的 Kylin 框架源自上游 Cordis 的 vendor 源码,其设计参见论文《A Programming Paradigm for Spatiotemporal Composability》。插件作者需要了解五个核心概念:

  • 插件是实现 Service 的对象。它可以是一个带有可选 inject 和 apply(ctx) 字段的函数,也可以是一个 Service 子类,其生命周期由 Kylin 挂载到当前上下文中。
  • 上下文是服务的容器。一个服务占据一个稳定的 ctx.<key>(如 ctx.tools、ctx.llm、ctx.sessions);其他插件通过 key 查找服务,而非导入具体实现。
  • 通过 inject 声明服务依赖。插件声明所需的服务后,会等待这些服务就绪才启动;加载顺序通过服务依赖表达,而非手动编排。
  • 类型化事件用于通信。服务注册事件名后以五种模式分发:观察、包装、并行扇出、按序执行或停在首个 bail 值。
  • 注册是可逆的副作用。提示词片段、工具 schema、适配器与监听器通过 ctx.effect() 或 ctx.on() 安装,reload 和 teardown 时按预期撤销。

事件分发模式

模式是否 await分发顺序是否有返回值
emit否监听器按注册顺序观察否
waterfall否监听器按注册顺序包装是
parallel是所有监听器并行观察事件否
serial是监听器按注册顺序观察是
bail否按注册顺序,直到某个监听器返回 bail 值是

分发模式是事件公开约定的一部分:策略监听器在拥有决策权时可以短路(不调用 next() 直接返回),仅做观察的监听器则必须委托。拦截和策略优先使用事件;直接能力调用优先使用服务方法。

05入口模式与部署形态

同一棵插件树,多种启动方式:CLI 通过具名 profile 从同一基座启动所有模式,一套能力覆盖从浏览器到无人值守的各类场景。

Profile形态适用场景
qilin web浏览器 GUI会话与聊天、模型配置、插件与设置管理、文件预览、终端、会话历史
--profile headless一次性运行执行单个任务,打印最终回答后退出
--profile sdkJSON-RPC 服务器TypeScript 与 Python SDK 驱动的程序化集成
--profile acpACP 服务器面向自动化客户端的 Agent Client Protocol

同一套基座以两种形态交付:Web 多租户——为多个账户服务同一个入口,每个账户一个隔离的运行时,会话、工作区、用量账本、插件与模型设置都归属各自的租户;桌面单用户——把一个本地引擎包进一个窗口,服务于一个人,没有名册、没有账户门,整套基座在本地对着一个数据目录运行。组合机制与各层如何叠加,见技术架构。