进程结构

外壳与引擎两层进程、它们之间的 JSON-RPC,以及一个引擎进程承载全部会话。

「核心概念」这一组讲 Klaus 内部怎么运转。日常使用不需要了解,理解限制和排查问题时有用。

Klaus 分成两层。外壳负责窗口、界面、系统集成和一切跟 macOS 打交道的事;引擎是一个独立子进程,负责与模型对话、调用工具、维护会话。两者通过标准输入输出上的 JSON-RPC 通信。

整个应用只启动一个引擎进程,所有会话、定时任务、频道消息共用它。引擎启动后有 20 秒完成握手,超时会被回收并在界面报错,下次操作时重新拉起。一个会话对应引擎里的一条线程,会话 id 会出现在磁盘上那份会话记录的文件名里(见数据都存在哪)。