Ilina Engine 是一个以对话树为核心的 AI 聊天后端系统。支持树状对话、读写文件、MCP 和 Skills
Project description
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、工具调用与长期记忆提供更灵活的上下文管理能力
对话不再是一条线,而是一张不断生长的思维树。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ilinaengine-0.8.1.tar.gz.
File metadata
- Download URL: ilinaengine-0.8.1.tar.gz
- Upload date:
- Size: 21.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5cb41a8629e0983f42b044a5b5a256d661fa4b5a81279b158dee0efbcf80a51
|
|
| MD5 |
228af8bf213e0fd51ad03d009a7460ee
|
|
| BLAKE2b-256 |
a401e0b20e95f2a0354b6c44a2cb142518fd88993a3e741cadf4834d2e05f786
|
File details
Details for the file ilinaengine-0.8.1-py3-none-any.whl.
File metadata
- Download URL: ilinaengine-0.8.1-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7e3b2e00d88c93e46c33be6a7509d080fbab41745fe8bd1b6806e91c2e9e6b4
|
|
| MD5 |
c1fb2a957d22c6b01cca2e7732937db5
|
|
| BLAKE2b-256 |
bd2d5aa572d6b8698561120e724ddcfa299bfa24b8586613a89df935ef6a6b9d
|