IlinaEngine
Ilina Engine 是一个以对话树为核心的 AI 聊天后端系统。支持树状对话、读写文件、MCP 和 Skills
重要说明
当前版本 (0.8.x) 还是一个开发中版本,许多功能也许不稳定,也有可能会增删接口,请务必注意。
关于版本更新的详细内容请见后文。
安装方法
Ilina Engine 已经发布到 PyPI,你可以使用下面的命令安装:
pip install IlinaEngine
你也可以前往这个页面,看看我为 Ilina Engine 开发的 GUI,然后直接使用。 https://github.com/Foves7017/IlinaGUI
本项目的地址: https://github.com/Foves7017/IlinaEngine
配置 IlinaEngine
首次启动后,IlinaEngine会使用默认配置创建 ./configs/ai.json,你可以在启动前手动创建它,也可以启动后手动修改,但之后可能需要重新运行程序。
这里介绍了所有的配置项。
请首先至少配置可用的主要模型和辅助模型。
对话引擎
对于对话树的操作全部可以通过 Engine 模块实现,Engine 模块同时也提供了直接调用 API 生成回复的能力。 这里记录了所有引擎可以调用的接口,上述的 GUI 则是使用这些接口的示例。
对话树(Conversation Tree)
与传统聊天软件的线性消息列表不同,IlinaEngine 使用**树结构(Tree)**存储整个对话。
每一条消息都是一个节点(Node),节点之间通过父子关系连接,形成一棵完整的对话树。
基本结构
System
└── User:你好
└── Assistant:你好,请问有什么可以帮助你?
├── User:介绍一下 Python
│ └── Assistant:Python 是一种...
│
└── User:介绍一下 C++
└── Assistant:C++ 是一种...
每个节点都可以是:
- User(用户消息)
- Assistant(模型回复)
- Tool(工具调用结果)
- System(系统提示词)
- Error(错误节点)
树中的每一条路径都代表一次完整的对话上下文。
分支机制
在任意节点上:
- 修改消息
- 重新生成回答
- 从历史节点继续对话
都不会覆盖原有内容。
系统会创建一个新的子节点作为新的分支。
例如:
User:推荐一本书
└── Assistant:推荐《三体》
├── User:为什么?
│ └── Assistant:因为...
│
└── User:换一本
└── Assistant:推荐《银河帝国》
原始对话会被完整保留。
你可以随时切换到任意分支继续对话。
当前分支
每个节点都记录一个指向子节点的指针(Pointer)。
Pointer 用来标记:
“当前正在使用哪一条分支”。
例如:
User
└── Assistant
├── User A
│ └── Assistant A
│
└▶ User B
└▶ Assistant B
带有 ▶ 标记的路径就是当前活跃分支。
当模型生成回复时,系统会沿着这条路径向下收集消息,构造发送给模型的上下文。
修改历史
由于所有旧节点都会被保留,因此:
- 可以查看任意历史版本
- 可以比较不同回答
- 可以回到过去的任意时间点
- 可以从任意节点创建新的对话路线
整个对话过程类似于 Git 的提交树:
A
└── B
├── C
│ └── D
│
└── E
└── F
不同的是,这里的节点不是代码提交,而是一次次对话消息。
优势
相比传统线性聊天记录,对话树能够:
- 保留所有历史版本
- 支持无限分支探索
- 支持多次重新生成而不丢失旧结果
- 支持修改任意历史消息
- 支持从任意节点继续对话
- 为 AI Agent、工具调用与长期记忆提供更灵活的上下文管理能力
对话不再是一条线,而是一张不断生长的思维树。
更新日志
v0.8.9
- 添加 replace 在替换前后相等时报错
- 修复了 search_in_file 工具会在二进制文件中查找的BUG
- 优化了 MCP Loader,现在可以指定环境,并会自动将 cwd 设置为工作目录。而且还可以在配置文件中设置禁用的mcp
v0.8.8
- MCP 遇到错误时现在会跳过添加
- 给 engine 添加了
.warning_list属性,类型是list[str], 用来保存引擎初始化过程中的警告消息(如跳过MCP加载)
v0.8.5
- 修复了系统路径的问题
v0.8.4
- 修复了弹窗工具的错误
v0.8.3
- 修复了修改根节点是产生的“没有找到父节点”的错误,现在可以正常编辑根节点了。
- 添加了一系列工具
Metadata
Release files for IlinaEngine 0.8.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ilinaengine-0.8.9.tar.gz | 25.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ilinaengine-0.8.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.2 kB
Release files / ilinaengine-0.8.9.tar.gz
| Download URL | ilinaengine-0.8.9.tar.gz |
|---|---|
| Size | 25.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7b269d15516e678863f8a1993cbd6e8ae2b2013149f9d0dfd53136f366845ed
|
|
BLAKE2b-256 checksum How to use checksums |
e1849bed83c72f98138fd79b65c73ffaee35ed165743d96292c92d56a282ba1b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / ilinaengine-0.8.9-py3-none-any.whl
| Download URL | ilinaengine-0.8.9-py3-none-any.whl |
|---|---|
| Size | 25.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d73b8bd4873bda38d6ea7cdbb6ab200850e39b030bd0c4f2914632cf8d91b05e
|
|
BLAKE2b-256 checksum How to use checksums |
4bbcc9e2f8892acba5142e43beaa1c38c9daa7c68b1daefc4348fd493d9d56f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|