ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Makepad Agent Runbook:AI 代理在 Makepad 仓库中的协同开发工作流

Makepad Agent Runbook:AI 代理在 Makepad 仓库中的协同开发工作流 前端UI组件3D渲染跨平台游戏开发【免费下载链接】makepadMakepad is a creative software development platform for Rust that compiles to wasm/webGL, osx/metal, windows/dx11 linux/opengl项目地址https://gitcode.com/gh_mirrors/ma/makepad点击查看免费下载导读本文基于仓库根目录的 AGENTS.mdMakepad Agent Runbook2026-09-16 版工作流及其链接的参考文档系统梳理 AI 代理在 Makepad 开源仓库中执行开发任务时必须遵守的运行规则从本地工作目录约定、local → work → dev三级提交流水线、发布构建与运行时验证门禁到--remote远程控制、线程实时性约束、平台层改动中立的工程纪律再到 Director 多代理协作树与 Splash 脚本语法要点。读完本文你将掌握如何在 Makepad 仓库内以合规、可验证、可复现的方式驱动 Agent 完成从设计、编码、构建、测试到成果提交的完整闭环。一、Runbook 的定位与文档体系根目录AGENTS.md是一份仓库级规则Repository-wide rules它要求代理在任务需要时先阅读链接的参考文档并以当前源码为准获取 API 签名和可用示例而不是照搬历史 API。整个 Agent 协作的知识体系由一份主文档与四份专题文档构成全部存放在仓库内以下均为仓库根相对路径文档主题AGENTS.md仓库级运行总规则工作流、提交、构建验证、远程控制、线程、平台中立、Splash 要点apps/director/AGENTS.mdDirector 的 Studio 迭代流与多代理委托细则docs/agents/app-remote.md应用远程控制协议--remote、HTTP 路由、抓帧docs/agents/splash.mdSplash 脚本语言与 widget 参考script_mod!语法docs/agents/tweaker.md实时样式调整与源码回写Tweaker 覆盖层例如远程控制的实现本体在 platform/src/remote.rsTweaker 覆盖层在 widgets/families/tweaker/src/tweaker.rs。文档明确提示运行实例上执行GET /会返回当前路由列表可能比静态文档更新——以运行为准是这套文档体系的一贯原则。二、本地工作与文档规范Runbook 对代理产生的文件划分了严格边界计划写入local/plans/topic.md其他任务设计文档与报告写入local/agent_state/topic/并且必须保持本地私有不得发布为托管页面或工件可复用的仓库文档必须落在受版本控制的文件中工作流不得依赖可能随local/消失的辅助脚本或状态新增示例 crate 时需要同步更新其所属的 Cargo workspace 与根目录的makepad.splash。源码检索上Runbook 明确优先使用rg/rg --files在修改 Splash 语法之前应先查看 widgets/core/src/、widgets/families/、code_editor/ 和 apps/director/ 中已有的写法。特别强调已归档的old/目录树不是当前 widget API 的参考依据。三、当前 Agent 工作流角色分工与会话纪律截至 2026-09-16仓库采用了三角色分工并明确取代旧版角色分配此前的 local skills / memories 中的旧角色定义一律让位Codex 负责管理工作设计系统与交互评审 Fable 的设计与成果Fable 负责设计与执行困难实现工作并可独立提供设计与代码评审Grok 承担有边界的机械性工作与验证需在精确的简报下执行。会话纪律上有三条关键要求对关联任务保持一个持久的 Fable 会话后续请求发往该会话或以既有上下文恢复它不要反复新建 Fable 会话并重复支付相同的输入上下文等待关联工作时保持空闲不进行轮询/模型往返在委托场景中必须保留管理/实现的分工manager/implementer split不得混用。这一分工在 apps/director/AGENTS.md 中被进一步细化Codex / Astra 管理、Fable 实现、Grok 机械验证并要求在所有新建与恢复的 lane车道以及每个委托子任务中保留该上下文。四、软件安装必须显式审批一条不可逾越的红线Runbook 对安装软件设定了极严格的门槛未经用户对该软件及安装行为的事先明确批准绝不安装、升级、引导或下载运行任何外部软件。范围覆盖工具、应用、运行时、SDK、插件、包管理器安装以及从下载源码编译的第三方工具且同样适用于系统级、用户级、虚拟环境、仓库内与临时目录安装——把可执行文件放进local/、/tmp、~/.local/或绕开管理员权限都不豁免仅为本地使用编译第三方工具也算安装。特别值得注意的判定边界功能请求、构建/测试许可或缺失依赖不等于安装许可安装前必须说明软件与版本、来源、安装位置、用途、以及将执行的命令或系统改动然后等待显式批准不得把外部运行时静默塞进 Studio 或其他应用作为变通方案优先使用已安装的工具和本仓库的正常构建确需额外软件时将安装事项挂起并说明限制继续做不依赖它的工作。五、提交内容与 Studio 迭代历史local → work → dev5.1 分支纪律Runbook 对仓库makepad/makepad的提交和分支有硬性规定绝不创建或发布额外的公共分支只走既定的local → work → dev流程local保持私有、永不推送特性、测试、发布、打包与分发工作都不构成另开公共分支的理由使用独立 checkout 或 worktree 也不改变此规则local记录每一次构建迭代私有并发分支使用流程分配的local-*命名其 checkpoint 引用与祖先链永不推送、永不合并进公共分支晋升只允许squashlocal压入work再把特性组从work压入命名dev里程碑拉取/同步work与dev时不得重写已发布历史或丢弃无关工作。5.2 提交内容边界AI 生成的 Markdown、计划、报告、临时脚本、日志、录制、截屏、构建输出等临时工件不得进入提交AGENTS.md这类既有说明文件是唯一的 Markdown 例外绝不提交第三方源码快照cargo vendor输出、拷贝的 crate、SDK 树、模型权重、数据集或媒体转储——GitHub 保留每个推送 blob一次这样的提交会让仓库的所有克隆永久膨胀。依赖来自 crates.io 或仓库内libs/移植离线镜像放在仓库外每次提交前执行git diff --stat遇到非自己写入的路径立即停下运行仓库既有测试做验证除非用户明确要求不新增生成测试文件、内联测试代码或测试脚手架保留既有测试不得删除或削弱它们来换取通过。5.3 Studio 托管构建的固定顺序对 Studio 管理的流构建Runbook 规定了严格的执行顺序平台构建检查platform build checks对变更的 Rust 执行 rustfmt若格式化改变了源码则重复检查将确切的合格源码提交到local发布二进制构建运行既有原生测试启动运行。二进制需与 checkpoint 哈希及证据一同记录复用有边界的 worktree禁止每次构建新建一个。5.4 验证门禁Validation Gate一个被认定为已验证的修订需要同时满足在其支持平台上cargo check零警告、零错误在当前宿主机通过既有原生测试适用时完成发布构建/运行时检查。判定规则同样严格缺失 SDK、runner 或必需测试属于被阻塞的覆盖率blocked coverage不是通过不得通过压制警告来换取绿色门禁。对每个特性/里程碑晋升都要验证确切的最终源码树使dev保持可 bisect 的价值公开 squash/push 操作必须说明其来源、目标、包含的变更、验证结果与冲突。六、构建与运行时验证以真实后端为唯一标准6.1 构建方式运行时验证、性能剖析、基准与计时测试一律使用发布构建除非用户明确要求 debug从包所属的 workspace 执行cargo build --release -p package然后从本 checkout 启动生成的独立可执行文件注意部分应用有自己的 workspace需检查 target 目录与资源工作目录构建 profile 定义在根 Cargo.tomldev 仅保留行号表release 为无 LTO 的增量构建cargo-makepad 的打包命令则进行非增量发布构建根级Cargo.toml通过cfg(any())路径依赖把apps/name下的私有应用 crate 纳入同一 workspace匹配apps/*/src/..使所有 Makepad crate 对全部应用只编译一次Cargo.lock不提交并行 rustc 前端是本地可选优化绝不用在 CI 或发布构建稳定版需要RUSTC_BOOTSTRAP约可将干净 dev 构建提速一半。必须写入用户配置~/.cargo/config.toml以保证整机一致标志差异会触发每个 crate 的重编禁止用 shell 级RUSTFLAGS临时设置[env] RUSTC_BOOTSTRAP 1 [build] rustflags [-Zthreads8]6.2 调试手段使用printf 风格调试log!、eprintln!或等价 tracing禁止启动或附加 LLDB / GDB 等调试器——调试器访问会触发系统权限弹窗。6.3 渲染验证必须在真实 GPU 后端Runbook 明确了一条关于渲染验证的关键纪律用户原话在 headless 上追 bug 毫无用处任何涉及画面、像素、轮廓、颜色、LOD、瓦片或帧时序的问题都必须用真实 GPU 后端macOS 上为 Metal上--remote实例的发布构建回答通过/g//gseq抓帧并以 RGB 比对MAKEPADgpusimCPU 模拟 GPU 后端旧称 headless只用于逻辑与数据结构测试布局、预算、顺序、解析器gpusim 光栅门禁永远不能替代 GPU 证明也不得用于诊断渲染 bug。gpusim 源码位于platform/src/os/gpusim/隐藏窗口实例MAKEPAD_HIDE_WINDOWS1 原生后端是常规的像素级验证装置/g强制呈现隐藏窗口上约 2 秒/帧只有静止/稳定计时类证明才需要自行呈现的窗口。6.4 应用嵌入 AI 聊天的构建边界嵌入 AI 聊天的应用只构建其 CLI/MCP/云端后端本地模型运行时Metal/CUDA 上的 Qwen、metallib 与 kernel 构建通过应用自己的localaicargo 特性引入cargo build --release -p app --features localai该特性仅在应用自身任务运行本地模型时默认开启如apps/ai-hub、route 与 files。七、应用归属、焦点与截屏策略这是代理与用户共享机器时的行为准则用--remote启动打算检查或驱动的任何应用不驱动、不停用无关的用户实例对活跃开发工作流中的应用替换品就绪后可直接优雅关闭并重启无需单独的用户关闭确认新启动前须先优雅关闭上一个工作流实例并确认其退出远程窗口保持可见但不聚焦除非用户明确要求不得激活它们或使用MAKEPAD_FOCUS1用户在活跃工作流应用上的交互不会暂停代理测试也不要求交接代理可持续检查、驱动、关闭并重启该应用2026-09-22 用户常设授权同时保留其 workspace 与已保存状态每个有界输入序列前读取/activity并携带if_user_seq计数器变化或 HTTP 409 使该序列的证据失效但不撤销继续授权——检查动作是否生效、读取新计数器后重试或重启序列不要盲目重放已应用的开关或编辑详见 App remote control子代理验证运行使用MAKEPAD_HIDE_WINDOWS1 bin --remote只有主会话打开可见检查窗口避免重复CEF 应用的浏览器 profilecookie、登录态默认存放在$HOME/.makepad-cef/可执行名除非MAKEPAD_CEF_PROFILE_DIR指定替换用户 CEF 应用时必须把MAKEPAD_CEF_PROFILE_DIR指向用户实例原本使用的 profile隐藏原生测试使用各自独立的测试 profile绝不允许两个实例同时使用用户的 profile只允许通过/g、/gq、/tweak/grab或应用提供的捕获钩子抓取应用自身的 drawable禁止 OS/窗口/显示器截屏若涉及原生 chrome 或其他应用需向用户索要图片日志中的user closed表示用户关窗而非崩溃测试会话以GET /gq抓帧并退出收尾抓帧不可用时用/close和/或/quit优雅清理失败时才允许停止其确切归属的 PID除非用户明确要求保留代理启动的任何进程都不得比任务存活更久。八、远程控制快速上手6 步标准流程Runbook 给出了代理驱动 Makepad 应用的标准流程构建发布二进制并以--remote启动自己的实例读取启动行的端口、PID 与抓帧目录GET /获取运行中二进制当前的协议用/snap?q...查找 widget 矩形然后注入输入通过快照/日志检查结果必要时用/g抓帧以/gq收尾并确认关闭。坐标是窗口本地布局点无需 DPI 换算给输入请求加wait1可等待结果帧。8.1 启动与发现文档中的标准示例在仓库根目录用隐藏窗口做验证运行cargo build --release -p makepad-example-splash MAKEPAD_HIDE_WINDOWS1 ./target/release/makepad-example-splash --remote启动输出包含寻址与清理所需的全部信息[makepad-remote] listening on 127.0.0.1:53412 pid9931 appmakepad-example-splash grabs/tmp/makepad-remote/makepad-example-splash-9931端口是临时的--remotePORT可固定端口MAKEPAD_REMOTE1或MAKEPAD_REMOTEPORT同样启用该服务。代理检查应优先使用显式启动参数。macOS 上--focus会在窗口打开时将其带到前台。8.2 常用路由一览路由用途/,/help当前协议帮助/s?wID应用/PID 与窗口几何省略w列出窗口/g?wIDscale0.5、/gseq?n8every_ms50scale0.5抓取下一呈现帧或按请求节奏抓 N 帧1–64 帧、≥8 ms、≤60 s 跨度返回绝对 PNG 路径与每帧capture_ms/encode_ms/g?raw1直接返回 PNG 字节而非路径/gq?scale0.5抓帧后退出返回png路径与quit:1/snap?qTEXTwIDall1widget id/类型/文本及窗口局部矩形/d,/dump缩进 widget 树/m?kclickxXyY鼠标输入kind 还有 move、down、up、scroll/click?xXyY点击别名/k?kpresscKeyA按键输入另支持 down/up/t?tTEXT、/k?tTEXT文本/IME 输入/drop?pathABSOLUTE_PATHxXyY通过原生拖放事件注入一个文件/log?n50sinceN应用日志尾部n为最新序号/close?wID正常关闭一个窗口/quit无最终抓帧的优雅退出输入细节鼠标按键b0左、b1右、b2中滚动取dx/dy测试硬件指针锁定时加hw1键盘修饰键为shift1、ctrl1、alt1、cmd1。POST 平铺 JSON body 同样受支持解析器也接受长名称window、kind、button、text、code。8.3 与人类共享实例时的纪律驱动前读取/activity/s也含同一对象它报告user_active、单调递增的user_seq、idle_ms、两秒quiet_ms、输入是否held及最后输入的种类与窗口——但绝不暴露键入文本、键值与指针坐标。只有原生输入推进计数器HTTP 与 Studio 注入一律标记为 remote。自动化序列必须在每个变更请求上携带if_user_seqN用户自 N 后交互过则请求被拒HTTP 409。/gq也会在抓帧后复查计数器若拒绝退出检查状态后用新计数器重试。每次 HTTP 响应含原始 PNG都带X-Makepad-User-Seq-Start与X-Makepad-User-Seq头。wait1命令在帧确认前被打断会返回applied:true动作已执行重试可能重复副作用dispatch 前被拒则applied:false。8.4 已知远程风险隐藏窗口点击偶发丢失Event::MouseDown不送达——调试前先重新启动tick 采样按键需要/k?kdown… ≥150 ms …/k?kuppress会落在 tick 之间在 code map 中每个/g都会夺走键盘焦点下一次按键批处理前需先点击 mapMAKEPAD_HIDE_WINDOWS仅在 macOS 实现有音频或共享 home 的应用的测试实例应使用SANDBOX_MUTE1及各自的SANDBOX_HOME/--state-dir。仓库中的 tools/remote_smoke.sh 脚本在示例应用间跑通整个协议可作冒烟验证参考。九、线程与实时性所有权UI 线程的锁纪律Runbook 对多线程安全给出了明确的架构红线任何 UI 相关代码都必须遵守UI 线程绝不获取另一线程可能持有的Mutex、RwLock或Condvar也绝不等待 channelUI → worker/audio 的命令使用有界、非阻塞发送队列满时报告并保留/重试到下一帧worker/audio 通过原子量、三缓冲或try_recv消费的 channel发布快照大负载PCM、stems、网格、图像以Arc形式穿越 channel替换下来的负载要归还给 UI 处置绝不在实时回调中做最终 drop实时音频回调拥有自己的状态热路径上不分配内存也绝不在 UI 或 worker 可能持有的锁上等待原生与 wasm 使用同一机制不得在桌面保留共享锁路径的同时在 wasm 另搞 workaroundUI/audio 线程不得使用Atomics.wait或自旋等待回退lock_from_ui只允许用于可证明仅由 UI 触碰的状态不要为每个任务临时 spawn 线程使用cx.thread_spawner()、池化 TaskHandle API或由 channel 喂养的长期平台 worker。十、平台层改动保持应用中立platform/、widgets/、draw/及其他共享层服务于所有应用。Runbook 规定为提速或修复某个特定应用而做的平台改动不得凭代理自己的判断落地必须先陈述拟议的平台改动及动机应用取得用户反馈与检查绝不把应用特定内容泄漏进这些层不出现应用名、应用数据形状、应用专属 flag 或仅为单一调用者存在的代码路径需求要表达为带通用名字的通用设施否则留在应用内平台优化落地前须在提出需求的应用之外证明并在提交中说明检查了哪些应用。十一、Splash 与着色器要点Splash 是 Makepad 的脚本语言/着色器 DSL。Runbook 对当前script_mod!时代的写法给出以下纪律使用script_mod!与当前 widget API对象属性用name: value命名 widget 实例用name : Type{...}模块赋值mod.widgets.Name ...有效保留继承字段时用:合并类型化属性draw_bg : {color: #f00}使用类型化布局值如padding: Inset{left: 10}、align: Align{x: 0.5 y: 0.5}逐绘制值用instance(...)、实例共享值用uniform(...)hover 的渐变色绝不能误做成 uniformRust 插值用#(expr)Rust 宏内当数字后跟e/E会触发指数分词时使用#x颜色前缀如#x1e1e2e在 UI 使用 widget/组件模块之前完成注册匹配当前应用的启动与查找签名不要照抄旧代码自定义 draw shader 需要#[repr(C)]非实例字段放在#[deref]draw 基类之前着色器实例字段只放之后——实例缓冲区是连续读取的顺序错误会破坏它着色器内优先用带 catch-all 的 enummatch若受支持的 enum 匹配失败应新增编译器回归用例并修复编译器而不是用整型式if/else链替换。11.1 最小应用骨架来自 Splash and widget referencepub use makepad_widgets; use makepad_widgets::*; app_main!(App); script_mod! { use mod.prelude.widgets.* startup() do #(App::script_component(vm)){ ui: Root{ main_window : Window{ window.inner_size: vec2(420, 220) body : { flow: Down status : Label{text: Ready} press : Button{text: Press} } } } } } #[derive(Script, ScriptHook)] pub struct App { #[live] ui: WidgetRef, } impl MatchEvent for App { fn handle_actions(mut self, cx: mut Cx, actions: Actions) { if self.ui.button(cx, ids!(press)).clicked(actions) { self.ui.label(cx, ids!(status)).set_text(cx, Pressed); } } }11.2 自定义 draw shader 的内存布局#[derive(Script, ScriptHook)] #[repr(C)] pub struct MyDrawShader { #[rust] cached_state: bool, #[deref] draw_super: DrawQuad, #[live] tint: Vec4f, }DrawVars::as_slice()会从基类跨到尾部实例字段连续读取非实例状态混入该区域会破坏 GPU 实例缓冲区。11.3 相关实现入口Runbook 建议以这些源码为当前 API 的活参考小应用与启动看 examples/counter/src/main.rs更广的 widget 示例看 examples/splash/src/main.rswidget 注册与导出看 widgets/core/src/lib.rs样式与动画看 widgets/core/src/button.rs虚拟化列表模板看 widgets/core/src/portal_list.rs生成式 widget API 看 widgets/derive_widget/src/derive_widget.rs。十二、Director多代理协作树与 Studio 迭代流apps/director/AGENTS.md 统管运行 Studio 迭代流与实现 Studio 本身的代理行为并要求代理使用运行中的服务清单与当前源码获取确切的工具签名——不得虚构成功的工具响应或绕过不可用的操作。12.1 委托上下文与 Agent 树每个 lane 是以其稳定终端来源为键的代理节点合成 Director 根持有独立的根 lane每个代理可再委托子代理子代理可再委托递归委托委托可见工作只通过限定操作进行flow_agent经POST /call或director-flow agent {action:start,provider:codex,title:...,task:...,repo:/abs/worktree}provider取值claude、codex或grokDirector 记录子流程、父边与任务作为子代理的第一个需求创建其控制目录、发布回调绑定然后在仓库的makepad-agentshelper 中启动已安装的 provider预算上限4 个活跃/停止根 lane、总计 16 个活跃/停止代理、每代理 8 个活跃子代理、深度 6 层、64 个保留 lane、每 lane 64 个启动请求、每子代理 8 个工件授权归档可释放名额应用进程另有独立预算所有 lane 最多同时 4 个应用进程含嵌入与独立、人类与测试全局status是有界索引序列化回复不超过 12 KiB 且始终是完整 JSONflows.counts永远完整通信原语agent list查看直接子代理与未读数status/result加child检查单个子代理message带to、kindtask/note/result与text向直接子代理或父代理排队文本to可用保留值parentinbox读取未读消息、inbox加ack确认结果通过持久 inbox 异步送达Director 只在接收方终端输入提示可证明为空时才以一次括号粘贴加一次回车把结果键入其终端且前缀发送方与消息 id否则保持queued绝不向 shell 或未识别程序键入内容。12.2 上下文文件与启动上下文代理 lane 的启动上下文是 lane 工作目录内的文件cwd/local/director/agent_context/session-created.context.md仅属主可读每次启动、恢复与恢复时重写provider 的首个提示只提及该文件并请代理阅读它——因此不读取工作目录之外的内容。该文件不含 URL 或 token向每个子代理逐级传递委托规则路径上的三个目录必须是真实目录符号链接/junction/reparse point 一律拒绝。12.3 Todo 增量与反馈协议每个新用户消息必须先经其回调到达 Studio然后才进入实现。发送紧凑的范围 todo 增量curl -sS --json {i:msg-17,v:0,q:Animate feedback folding,u:[[fold,w,Animate feedback folding]]} $($MAKEPAD_STUDIO_CLI --url)/feedbackv是检视到的 todo 修订号成功仅当两处变更都持久化后返回{v:1,r:1}。后续进度省略q{i:msg-18,v:1,u:[[fold,d]]}。todo 状态为q排队、w工作中、d已实现、b阻塞绿色d只表示代理报告已实现但未验证绝不等于人类接受。每个不同 delta 用新的i重试用相同 ID 与 body旧 ID 换参数会被拒。stale 修订时先取/brief调和再更新绝不盲目覆盖更新的 todo。202只是意图需读GET /feedback/i获取紧凑结果。12.4 运行、观察与测试应用test start优先走 Director 托管路径mode默认embeddedDirector 经 broker 注册运行并以--stdin-loop及全部宿主设置启动保留可执行文件人可在其 lane 中观看测试绝不自己裸启带--stdin-loop的二进制托管启动完成以应用以其拥有 PID 应答远程端口、宿主传输呈现首帧first_frame端口存活不能证明渲染表面且读到输入守卫为准宿主不可用或 20 秒内未发布端点/呈现帧时Director 关闭该次尝试、等待退出与注销然后以新 run id 启动一个 standalone 替换品旧 run 返回replaced_byAI 拥有的预览只读鼠标、键盘、IME、拖放、剪贴板都不穿透应用不能改人的剪贴板不可 pop out测试输入以应用的人类输入计数器为证据读取/activity、每个有界序列携带if_user_seq重试前检查响应计数器与applied每个受支持的 UI 测试都录制为MP4并保留最终帧、run 身份、checkpoint 哈希、结果与录制路径隐藏测试窗口也必须发布可观察帧演示新行为director-flow test {action:start,artifact_id:artifact,demo:Counter increments}随后用test {action:snapshot,run_id:run}与test {action:input,run_id:run,input:click,x:390,y:279}驱动坐标取自该应用的 snapshot每个有意义状态暂停至少两秒最后test {action:stop,run_id:run}并轮询完成、确认 MP4 定稿。演示行为标记为demonstrated与测试成功或human accepted严格区分。12.5 本地源码与验证预运行顺序平台cargo check→ rustfmt → 重新检查格式化后的源码 →local提交 → 发布二进制构建 → 既有原生仓库测试 → 启动所有声明的支持平台都要检查零警告零错误是硬性要求不得压制警告、削弱检查、改写既有测试或将生成的测试脚手架入提交晋升前给出确切的源/目标哈希、变更路径、验证与冲突local → worksquash 连贯特性work → devsquash 更大命名组验证确切结果树保持 dev 可 bisect。12.6 工具链与构建方式Director 与代理终端 helper 一起构建cargo build --release -p makepad-agents -p makepad-directormakepad-agentscrate 清单见 tools/agents/Cargo.tomlTUI 入口在 tools/agents/src/main.rs是tools/agentsWindows 上为tools/agents.ps1构建的 release helper打开其 Rust TUI 管理 provider 会话C 启动 Codex、A 启动 Claude、R 刷新、Q 退出另有四行可选的新代理行与两行恢复行Codex--yolo、Claude--dangerously-skip-permissions粘贴 UUID 恢复会话。helper 支持 macOS/Linux PTY 与 Windows ConPTY共享终端解析/渲染。外部终端也可附加makepad-agents attach --state-dir studio-state/agent_sessions --session session-idCtrlD 分离该客户端并保持代理运行。Director 本身从仓库 workspace 构建运行cargo build --release -p makepad-director ./target/release/director验证用cargo test --release -p makepad-directorDirector 的实现位于 apps/director/src/迭代流、代理树、用量等模块测试在 apps/director/tests/architecture_plan.rs 与 apps/director/tests/mcp_battery.rs。需要受控检查实例时加--remote并按 the app remote guide 操作--cwd absolute-directory设置初始终端/仓库上下文--state-dir directory覆盖默认的~/.makepad/studio位置。12.7 持久终端与 oversightlane 的终端连接非排他另一视图连接不会影响既有客户端与 lane 的原始会话最后发出 resize 的客户端决定共享 PTY 大小关闭终端视图或 Studio 只分离detach不停止显式 Stop 在保留可证明的代理恢复身份后才结束会话核心 AI 进程跨 Studio UI 重启保持持久会话关闭展示标签/窗口不构成停止代理或在新会话身份下重启它的许可历史拆分用 lane 的 split 工具Split here选中项及更新内容成为新 lane 的历史更早前缀归档仍可检视flow_lane工具接受state:split、flow、title、itemartifact/id、feedback/id、attachment/id或recording/idF10 仪表板必须用证据链接汇总摄入的观察区分观察到的活动、推断活动、未知结果与样本数据绝不以 demo 输出冒充实时测试或虚构截屏。十三、综合核对清单一个符合 Runbook 的 Agent 任务应能对以下问题全部作答计划与报告是否落在local/plans/、local/agent_state/未入提交是否未经显式审批就安装/编译了任何软件是否遵守local → work → dev且只 squash 晋升、未建公共分支提交前是否git diff --stat检查、杜绝第三方快照与生成工件是否在支持平台零警告通过cargo check、跑通既有原生测试、完成发布构建UI/渲染结论是否基于真实 GPU 后端如 Metal的--remote发布实例与/g抓帧而非 gpusim是否只用/g、/gq、/tweak/grab捕获 drawable全程携带if_user_seq并以/gq收尾且确认进程退出UI 线程是否未触碰任何可被其他线程持有的锁worker 快照是否走原子/三缓冲/try_recv大负载是否走Arc平台层改动是否应用中立、经用户反馈并多应用证明Splash/着色器改动是否符合script_mod!时代语法、#[repr(C)]字段顺序与instance/uniform语义Runbook 的最终立意是让 AI 代理在复杂的多应用仓库中既能高效产出又不污染 Git 历史、不越权操作系统、不伪造验证证据——所有结论都要求可观察、可追溯、可复现。赞分享前端UI组件3D渲染跨平台游戏开发【免费下载链接】makepadMakepad is a creative software development platform for Rust that compiles to wasm/webGL, osx/metal, windows/dx11 linux/opengl项目地址https://gitcode.com/gh_mirrors/ma/makepad点击查看免费下载相关推荐Makepad与Rust生态完美集成如何与tokio、serde等核心库协同工作Makepad与Rust生态完美集成如何与tokio、serde等核心库协同工作 Makepad是一款创新的Rust软件开发平台专为跨平台应用设计能够编译前端UI组件3D渲染跨平台游戏开发Makepad构建系统完全指南掌握cargo-makepad跨平台开发工具链Makepad构建系统完全指南掌握cargo makepad跨平台开发工具链 Makepad是一个创新的Rust创意软件开发平台其强大的 cargo mak前端UI组件3D渲染跨平台游戏开发tsParticles Particles Effecttsparticles/effect-particles变更日志深度解析与实战指南tsParticles Particles Effecttsparticles/effect particles变更日志深度解析与实战指南 导读 本文以前端UI组件3D渲染跨平台游戏开发上一篇LLaMA3-8B-Instruct WebDemo 部署实战基于 Streamlit 搭建本地聊天机器人self-llm 食用指南下一篇CopilotKit Frontend Tools 实战用 useFrontendTool 让 Agent 直接操控你的 React 界面创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表