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

墨猴·莫猴
英语 | 中文
莫侯。您自己制作迷你应用程序并运行它们的地方。
阶段看板,从图书馆开放。计数在顶部,下面有四列,以及一个要求模型记录时间的按钮。
这些应用程序回调到这台机器。 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工具。
mini_app_register 创建应用程序目录。代理在其中写入 manifest.json、ui.tsx 和 main.api.ts。mini_app_reload 编译它。成功重新加载脏树会提交该应用程序的历史记录。mini_app_call 运行一个方法。 mini_app_errors 和 mini_app_view_eval 读取失败和实时 DOM,而不是从屏幕截图中猜测。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 ;
}
// 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 && 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 可以防止破碎的视图导致面板崩溃。它不限制机器。该项目不限制迷你应用程序在您的计算机上可以执行的操作。