定位与架构
English | 简体中文
Octoscript 是一门让 LLM 生成工作流的通用 DSL。模型可以用简洁的代码表达工具编排、数据转换和多步骤行为,供应用审查与执行。
宿主提供可用服务及其接口约定。工作流可以运行在服务端、设备上,也可以成为交互应用的一部分。App Card 是其中一种应用:模型围绕数据和操作组合界面,由宿主持续管理这些数据和操作。
共享 VM 与宿主分工
Octoscript 和 Makepad 的 Splash UI 宿主使用同一套 makepad-script VM 实现。本仓库通过固定提交的依赖,使用 OctoSense-org/makepad 的 octoscript 分支。VM 修改在该仓库进行;依赖版本与更新流程见上游依赖策略。
| 部分 | 职责 |
|---|---|
Makepad makepad-script | 共享 VM、解析器与脚本执行机制 |
| Octoscript | 工作流语言约定、审查、执行限制、能力 API、工作流数据流,以及 UI 规范校验与实例化 |
| 工作流嵌入宿主 | 注册服务、绑定账户和数据、授权操作、调度任务、保存应用状态 |
| Octoscript-Makepad | 将 UI 节点转换为 Makepad 组件 DSL,并提供原生组件 kit |
| Makepad Splash 宿主 | 提供组件绑定、挂载生成的组件 DSL,并处理原生渲染与交互 |
| OctoScript-App-Design-Flow | 应用创作、组件组合、CLI 启动与设计到卡片的流程 |
| App Hub | 应用包准入、安装、容器 UI 宿主与宿主服务传输 |
| OctoSense + octos | Shell 持有应用数据与服务适配器;内核负责 Agent turn、session 与 Peer 路由 |
共享 VM 实现不要求共用同一个 VM 实例、堆或宿主绑定。工作流宿主暴露注册的工具;UI 宿主安装视图所需的组件模块,并接入事件循环。
工作流执行路径
LLM 输出
→ Octoscript 源码,或包含源码步骤的有序草案
→ 语法与工具调用审查
→ 宿主选择工具、数据约定与执行策略
→ 在 makepad-script 上执行
→ 宿主管理结果、工作流状态与外部操作
工作流语言支持函数、控制流、结构化数据和显式工具调用。宿主可以通过 mod.tool 暴露已注册的普通工具,也可以提供经过审查的直接模块接口。延迟调用会把控制权交还给宿主,结果就绪后再恢复执行。
对于多步骤任务,模型提出仅包含数据的草案。宿主创建可执行计划、提供输入、连接已完成步骤的输出,并分配权限。草案本身不会授权工具调用。详见工作流草案(英文)、工具目录(英文)和工作流检查点(英文)。
可选的 UI 路径
生成的 L0/L1 声明
→ 实例化后的语义卡片树与数据绑定
→ 主题/组件 kit 与渲染器节点
→ Makepad Splash DSL
→ 使用 makepad-script 的 Splash 宿主
→ Makepad 原生组件
这条路径让宿主把 UI 交给渲染层。独立工作流 CLI 无需加载 Makepad 组件,工作流也可以完全不生成界面。宿主把卡片操作连接到应用服务,并向视图提供更新后的数据。
L0 是声明式 UI 规范,包含组件、插槽、数据源、带键集合、状态和事件转换;实例化本身不需要 VM。L1 在此基础上增加有界的纯算术表达式。它们是与工作流语言并列的 UI 规范,并非产品或渲染层的分级。正式 UI 规范(英文)定义可接受的源码;Makepad 集成指南说明渲染交接过程。
应用创作流程位于 OctoScript-App-Design-Flow,原生渲染器与 kit API 位于 OctoScript-Makepad。本站的应用与 Agent 导读说明当前 Shell 集成、运行命令与工具边界。
从哪里开始
编写生成源码时,阅读 LLM 编写指南(英文)和正式语法(英文)。接入应用服务时,阅读工具目录(英文)和 JSON 数据约定(英文)。运行时、存储和 worker 主题可从文档索引查找。
宿主负责应用权限、需要持久记录的服务操作,以及所需的操作系统隔离。具体实现边界见安全模型(英文)和生产集成指南(英文)。