一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

mohou-mini-app:实践指南

时间:2026-10-06 09:32:01 编辑:袖梨 来源:一聚教程网

团队讨论mohou-mini-app时,我会先把用途说清楚:莫侯,您自己制作迷你应用程序并运行它们的地方。这类日常自动化工具真正难在输入边界、依赖和失败处理如果不清楚就很难稳定复用,仓库说明只能作为第一层证据。我的评估方法是用一项范围明确的真实任务完成最小试跑,然后检查配置时间、输出质量、异常信息和维护痕迹是否与文档一致。我的判断是,它更适合愿意先做小范围验证并复查原始文档的团队;若眼下没有这类需求,先保留观察即可。

mungowang/mohou-mini-app 项目截图 1

墨猴·莫猴

英语 | 中文

莫侯。您自己制作迷你应用程序并运行它们的地方。

  • 它布置了办公桌,因此您已经使用的代理可以构建您的程序库和与之配套的工作台。
  • 货架很稳。你发明。它运行并照顾它们。打开它并开始。
  • 按照您喜欢的方式制作当天的头版。不同的情况有不同的工作台。

阶段看板,从图书馆开放。计数在顶部,下面有四列,以及一个要求模型记录时间的按钮。

这些应用程序回调到这台机器。 ctx.llm 和 ctx.agent 使用提供程序 Shell 启动(Echo,或安装时的 Pi)。 ctx.mcp 调用您已连接的 MCP 服务器。 ctx.bash 在此计算机上运行。

您可以构建什么

你描述一下事情。代理搭建它,打开它,读取错误,然后继续执行,直到屏幕匹配。

这些只需要主机即可。稍后连接您自己的系统,相同的形状会覆盖它们。

你说 你得到
“我粘贴的来源的雷达。根据它们对我的重要性对它们进行排名。打开书面摘要。” 您在应用程序中编辑的来源、每个项目的分数、ctx.llm 的摘要。 ctx.http 获取页面。没有将密钥粘贴到 UI 中。
“我的一天分散在聊天、邮件和三个电子表格中。一个屏幕。告诉我可以先什么。” 一张桌子。该列表位于这台机器上。
“这是一个电子表格。什么改变了,什么看起来有问题?” 文件投放、仅安装到该应用程序中的阅读器 (mini_app_install)、简单的摘要,并且保留每个报告以便可以比较下一个报告。
“我按阶段跟踪订单、索赔和手稿,但我总是丢失被卡住的东西。” 你的舞台上有一块板,每个项目都有一个注释,还有一个没有人移动过的工作栏。
“每天一行:消费、训练、睡眠。然后告诉我一周的情况。” 本地日志、连续记录、图表和书面回顾。
“一键处理周五的杂务:重命名下载、构建发票 PDF、备份此文件夹。” 本机上的 ctx.bash。输出返回到应用程序中。

连接您自己的工具后,它们就会出现相同的模式:JQL 上的 Jira 板、表单后面的内部 API、失败的 CI 步骤、写回的工作日志。

创作技能提供了起始外观,因此上述内容都不是从空目录开始的:今天的桌子、舞台板、信息雷达、电子表格工作台、代理运行器、一键式杂务、手表带、裸露的骨架和主页。请参见 skills/mohou-mini-app/templates/。

一个是如何构建的

代理使用主机的 mini_app_* 工具进行驱动。源代码是用代理自己的文件工具编写的。该技能没有添加自己的write/edit/delete工具。

  1. mini_app_register 创建应用程序目录。代理在其中写入 manifest.json、ui.tsx 和 main.api.ts。
  2. mini_app_reload 编译它。成功重新加载脏树会提交该应用程序的历史记录。
  3. mini_app_call 运行一个方法。 mini_app_errors 和 mini_app_view_eval 读取失败和实时 DOM,而不是从屏幕截图中猜测。
  4. mini_app_open 将应用程序放入库和选项卡中。

mini_app_install 将真正的 npm 包放入该应用程序的 node_modules 及其历史记录中。它不触及全局树。

聊天中的 HTML 文件是不同的对象

代理已经编写了 HTML,并且他们可以在端口上启动 Flask 应用程序。这些都是一击即中的。 HTML 与标签一起模具。 Python 站点由您继续运行。一个迷你应用程序位于该线路的主机端。

聊天中的 HTML 代理脚手架的站点 小程序
下周 标签消失了 您保留进程和端口 库中、磁盘上的应用程序,有自己的历史记录
代理修复正在运行的UI 乒乓球截图 重新开始并充满希望 错误和实时 DOM 是它可以调用的工具
一个按钮即可调用您的模型 将密钥粘贴到页面中 您给提供商接线 ctx.llm,提供者Shell启动
按钮运行代理轮次 否 您重建工具循环 ctx.agent,一击,进度流入应用程序
MCP 您已连接的服务器 否 每个应用程序重新授权 ctx.mcp(serverId, toolName, args)
屏幕与主机匹配 无论模型感觉如何顺风 不管 CSS 感觉如何 当屏幕是列表、面板或设置时的套件。或者什么都不做,如果你想要一个自己的页面

六个月后,您打开该应用程序并说出问题所在。代理有错误、实时 DOM 以及该应用程序的历史记录。

应用程序获得什么

main.api.ts 从主机接收 ctx。这些运行方式如下:

ctx.llm(prompt, { schema, system, signal })      // string back
ctx.agent(goal, { streamTo, maxIterations })     // one agent turn; events into the UI
ctx.mcp(serverId, toolName, args)                // a connected MCP server
ctx.http(url, opts)                              // { ok, status, headers, text, json }
ctx.bash(cmd)                                    // { stdout, stderr, exitCode }
ctx.pwsh(cmd)                                    // the Windows pair
ctx.storage                                      // kv, and SQL once a schema file exists
ctx.push(event, payload)                         // backend to every open view of this app
ctx.signal                                       // Stop stops the work

ctx.agent 改变了按钮的含义。按钮可以是“看看这个,使用您需要的工具,完成后告诉我”,每个步骤都会显示在应用程序中。

没有ctx.tool,也没有listTools。工具保留在运行时提供程序上。切换模型不会交换该集合。

套件,当您需要时

@mohou/ui 是当屏幕是列表、面板、设置或仪表板时代理写入的内容。这些部分使用主机的颜色标记,因此新应用程序不会发明第二个调色板。该目录是从套件生成的:skills/mohou-mini-app/references/catalog.md。

页面也可以是普通元素和 Tailwind 元素,也可以是混合元素。使用任何套件都不是有效的应用程序。繁重的编辑器按需加载,因此从不打开代码编辑器的应用程序不会附带该引擎。

三个文件

// ui.tsx
import { Button, useApp } from "@mohou/ui";

export default function Ui() {
  const { call } = useApp();
  return <Button onClick={() => call("ping")}>ping</Button>;
}
// main.api.ts
import { defineApp } from "@mohou/contract";

export default defineApp({
  name: "Ping",
  description: "one-line app",
  api: { ping: async (ctx) => ctx.appId },
});

该视图导入 @mohou/ui 和 react。后端导入@mohou/contract。助手进入 ui/(仅查看)、api/(仅后端)或 shared/(纯,双方)。相对导入不能离开应用程序目录。

尝试一下

Node.js 22.19 或更高版本(或 24+)。 PNPM 11.7.0。生锈,当你建造窗户时。没有 Docker,没有 Python,没有数据库。

git clone <this repo> && cd mohou-mini-app
pnpm install
pnpm build:panel && pnpm build:window
pnpm dev:host

pnpm dev:host 打开窗口。关闭它就退出了。应用程序登陆 ~/.mini-app/runtime。

在已经安装了 Node.js 22+ 的 Mac 上,pnpm dist:app 写入 artifacts/app/Mohou.app、一个 zip 和一个 dmg。该产品也针对Windows。该命令不会构建 Windows 安装程序。

面板启动后,将其粘贴到助手中:

Build me an "AI trend radar" mini-app:

1. Pull public sources (official engineering blogs, paper leaderboards, the tech press that matters). Have the model score each item by how much it matters to me.
2. A strip on top: one trend chart, one line of judgement, 3-5 highlights. Each highlight opens the original.
3. I can filter by topic, star items, and open a past day.
4. I manage the source list inside the app. Nothing hardcoded.
5. Generous whitespace, a clear hierarchy, little decoration. It has to look right in light and in dark.

图书馆:两个应用程序,每个都有自己的历史。搜索、切换卡片样式、在选项卡中打开一个。

包和文档

包角色:packages/README.md。产品用途:docs/product/features.md。命令:docs/development.md。文件助手如下:skills/mohou-mini-app/SKILL.md。

pnpm run check 是 lint、类型检查、覆盖门和技能检查。

信任

这是机器所有者的本地软件。一个迷你应用程序会随着您的运行而运行。 ctx.bash、ctx.http 和 ctx.llm 是真实的。 iframe 可以防止破碎的视图导致面板崩溃。它不限制机器。该项目不限制迷你应用程序在您的计算机上可以执行的操作。

热门栏目