文档 / 参考

架构

Yuli 的构建方式:Rust 原生引擎、基于 TypeScript 和 React 的 Electron 界面,以及作为推理层的语言模型。

Yuli 清晰地划分了职责:谁承担繁重工作,谁负责呈现,谁负责推理。

层 技术 职责
原生引擎 Rust 索引与语义分析、Git、进程、调试、数据库、安全、质量以及智能体编排。
界面 Electron、TypeScript 和 React 只负责呈现:编辑器、面板、图表和预览。
语言模型 你选择的提供商或智能体 负责推理:通过受控工具进行规划、决策并操作 IDE 的各项服务。

应用可在 Windows、macOS 和 Linux 上运行,全链路 64 位。

通信方式

Interfaz (Electron + React)
        │  IPC por stdin/stdout
        ▼
Motor (agent-engine, Rust) ──▶ Git, build, depurador, base de datos, índice
        │
        ├──▶ Proveedor de IA (Modo Platform)
        │
        └──◀ yuli-mcp ◀── stdio ── Claude Code, Kiro, Codex, Antigravity
              (TCP 127.0.0.1 + token)
  • 界面以进程形式启动引擎,并通过 stdin/stdout 与其通信。
  • 界面从不自行访问磁盘、Git 或智能体的网络:一切都经由引擎的控制器。
  • 外部智能体通过 yuli-mcp 连接,后者通过带令牌的 loopback 套接字与引擎通信。参见作为 MCP 服务器的 Yuli。

引擎组件

组件 作用
agent-engine 主二进制文件:服务、控制器和智能体编排。
yuli-mcp 面向外部智能体的 MCP 服务器、hooks 和 gate。
code-intelligence 代码智能引擎:图核心、Java、自动补全、调度器以及框架(Struts、JBoss)。
java-debug Java 调试器的 JDWP 客户端。

引擎分层组织:domain(类型与纯规则)、service(逻辑)和 controller(IPC)。界面只与控制器通信。

代码智能

组件 技术
语法分析 Tree-sitter(Java 和 TypeScript)
符号图 petgraph,包含节点(类、方法、字段、Spring bean)和边(调用、继承、实现、注入)
持久化 每个项目在 .ai/codebase/ 中使用 SQLite
失效机制 文件之间的依赖图:编辑一个文件只会重新分析依赖它的部分
类型解析 Java 编译器
调度 优先级队列,优先解析你正在查看的内容

回答有关项目的问题时,智能体接收的是一个有边界的子图,而不是整个文件。这样既不会耗尽上下文窗口,也不会推高令牌成本。

各类内容的存放位置

位置 内容
项目中的 .ai/ 契约、任务、记忆、规则和索引。参见.ai 文件夹。
%APPDATA%\.yulicode(Windows) 设置、自定义提示词、技能和钩子、聊天历史。
%LOCALAPPDATA%\.yulicode(Windows) 运行时、索引、缓存和日志。可以删除。
系统密钥链 API key、密码和令牌。

在 macOS 和 Linux 上,采用相同的划分方式,存放在各系统的标准文件夹中。

确定性规则

安全和质量边界位于引擎中,而不在提示词里:

  • 项目沙箱和受保护的路径。
  • 对每个操作的风险评估。
  • 在机密离开电脑之前进行脱敏。
  • 每个数据库的访问策略。
  • 质量关卡,对人、智能体、Git hooks 和 CI 一视同仁。

模型无法通过说服自己来绕过规则。

扩展

插件无需重新编译即可加载,在隔离环境中运行(出错不会影响 IDE),并在清单中声明其权限。插件可以添加命令和面板、检查、菜单项和状态栏项、自有设置、提供给智能体的数据以及自有翻译。