使用 Mework
本页按你每天实际接触它们的顺序,介绍应用的各个部分。这里说明当前版本的行为;如有刻意设置的限制,也会明确指出。
工作区与对话
工作区是磁盘上的一个文件夹。文件工具受其边界约束,Shell 从其中启动,项目记忆和项目说明从其 .mework/ 目录读取,并会发现其中的 hooks.json / tool-descriptions/。在侧边栏中通过添加工作区添加(会打开原生文件夹选择器;宿主仅信任你通过此方式选择的文件夹)。没有文件夹的工作区是应用数据目录下的临时暂存区域。
对话(侧边栏中称为“任务”)属于某个工作区,并有自己的设置、历史记录和后台任务。创建方式有三种:
- 工作区行上的 + 按以下顺序使用:该工作区的默认预设、工作区上一次对话的设置、全局默认预设。
- 侧边栏顶部的新建任务、
Ctrl+N和空状态按钮始终使用全局默认预设。 - 从消息菜单中选择分叉,会将截至该消息的历史记录复制到新对话中。
对话历史可编辑:你可以插入或编辑用户消息和模型回复、删除上下文,以及创建分支。编辑会持久化到宿主,下一次请求会从持久化的历史记录重新构建,绝不会依据渲染器当前碰巧显示的内容。
预设与对话设置
预设是可复用的模板(设置 → 对话预设)。应用预设会将其字段复制到对话中,之后二者互不关联:编辑预设绝不会更改已有对话,编辑对话也绝不会回写预设。“设为默认”会将该预设标记为新对话的起始预设。
预设字段也是每个对话抽屉(输入框旁的滑块图标)中的字段:
| 字段 | 含义 |
|---|---|
| 系统提示词 | 系统提示词的基础,也是唯一的基础——Mework 没有自己的默认值。留空时,组装出的提示词直接从能力段落(技能、MCP 服务器、钩子、应用数据行)开始。 |
| 启用工具 | 模型可调用的 27 个工具。记忆工具、task_wait、task_list 和 skill 由开关派生,不在此处列出。 |
| 代理角色 | 命名的子代理角色:它们运行的模型、可用工具、使用的搜索后端,以及模型看到的说明。 |
| 技能、MCP 服务器、钩子 | 从已安装或已发现的项目中直接选择;悬空 id 会保持选中,但不会激活。 |
| 工具描述 | 此对话使用的提示词档案(工具描述文件)。默认使用内置英文档案。参见提示词档案。 |
| 联网搜索 | 原生提供商搜索或目录中的某个提供商,以及每次调用的搜索上限。 |
| 记忆 | 两个相互独立的开关:全局记忆(~/.mework)和项目记忆(<workspace>/.mework)。 |
| 技能传递 | 关闭:选定技能的正文会粘贴到系统提示词中。开启:skill 工具会按需加载它们。 |
| 安全策略 | request_approval、allow_edits、plan 或 full_access —— 见下文。 |
| 包含应用数据目录 | 仅限对话:在系统提示词中公开绝对应用数据路径。 |
| 推理强度 | 仅限对话:模型支持时会传递给提供商。 |
工具与批准
按组划分的 27 个内置工具:
- 文件系统 —
ls、grep、read、write、edit、find。受限于工作区和受信任根目录;符号链接、联接和..无法逃逸;写入是原子的,并返回差异。 - Shell —
powershell、bash。可在前台或后台(run_in_background)运行;批准卡会完整显示命令文本。 - 网络 —
web_search、web_fetch和playwright(通过内置浏览器提供 23 个浏览器操作)。 - 编排 —
agent_spawn、send_message、followup_task、task_wait、task_list、workflow、fork、skill、todo、ask_user。 - 记忆 —
read/create/edit_global_memory、read/create/edit_project_memory。
安全层级决定哪些调用会先向你询问:
| 层级 | 读取工作区内内容 | 写入工作区内内容 | 读取外部内容 | 写入外部内容 | 子代理 | 分叉 | Shell、网络、工作流 |
|---|---|---|---|---|---|---|---|
request_approval |
允许 | 询问 | 询问 | 询问 | 询问 | 询问 | 询问 |
allow_edits |
允许 | 允许 | 允许 | 询问 | 允许 | 询问 | 询问 |
plan |
同手动 | 拒绝 | 询问 | 拒绝 | 询问 | 询问 | 询问 |
full_access |
允许 | 允许 | 允许 | 允许 | 允许 | 询问 | 允许 |
计划模式
计划模式是只读的规划阶段:工作区读取与手动相同,而任何文件系统写入或编辑都会被直接拒绝,不会显示批准卡。Shell、联网搜索与抓取、浏览器交互、工作流、MCP 调用和子代理派生仍和手动一样询问;截图仍可使用。宿主会自动提供三个派生工具,它们不会出现在工具选择器或预设中:处于计划模式时,plan 可读取或整体替换宿主存储的 Markdown 计划,exit_plan_mode 可提交计划供审阅;在计划模式外,enter_plan_mode 可请求切换进入。子代理会继承只读的计划模式,且永远不会获得这些工具。
调用 exit_plan_mode 会打开批准卡,并直接将消息区带到计划预览页面,不会展开任务容器。卡片提供是,自动接受编辑、是,手动批准编辑和否,继续规划三个选项;最后一项需要反馈文本,并让模型留在计划模式。已保存的计划会以任务容器中的实施计划行出现,点击即可打开 Markdown 计划页。任一“是”都会在同一回合中分别把对话切换到允许编辑或手动,输入框会立即显示新的层级。
有些确认无法由任何层级或钩子关闭:触及根目录、主目录或系统路径的递归删除;写入全局记忆;声明 anthropic/requiresUserInteraction 的 MCP 工具;以及接管你亲自登录过的浏览器页面。
批准卡会显示工具、最终参数(任何钩子重写之后)、风险级别以及触发的规则。始终允许会记住该对话中对此工具的决定,但上限为你所回答卡片的风险级别;Shell 工具和 playwright 永远不能获得长期许可。后台任务发出的卡片会在回合结束后继续保留,并在重新加载后再次出现。
fork 在包括完全访问在内的每个安全级别都会提出一张非阻塞请求卡,绝不自动创建子对话。除非模型显式传入 inherit_context: true,子对话只带自己的 prompt 开始;批准和拒绝的决定会留在任务容器中,但永远不会报告给模型。
运行环境
输入框上方的运行地点标签决定 bash / powershell 在何处执行:此计算机、某个 WSL 发行版,或你注册的 SSH 计算机。每个地点都可以携带注入这些命令的环境变量;行上的齿轮可编辑它们。文件工具始终操作本地工作区——在 WSL 中,相同文件可通过自动挂载访问;通过 SSH 时远程端是独立世界,选择器只会将命令发送到那里。批准会连同环境生成指纹,因此更改环境会使待处理的批准失效。
子代理、工作流与任务
持续运行的一切都是任务,并显示在任务面板中且带有停止按钮:子代理、工作流运行、后台 Shell 命令、终端和浏览器标签页。
agent_spawn启动在后台运行的子代理(最多同时 8 个)。它获得父级的工具但不包括编排工具,仅在请求时获得对话历史副本(context: "conversation"),以及来自提示词档案的子级附录。send_message会将消息排队;followup_task通过新回合唤醒空闲的子代理。task_wait会阻塞至指定任务结算;未收集的任何内容会在下一轮边界以<task-notification>的形式发送。- 角色(预设或对话中的代理定义)让模型可按名称选择子代理;由你决定该名称背后的模型、工具和搜索后端。存在角色时,除非开启“允许无角色子代理”,否则
agent_spawn必须使用一个角色。 workflow在带有持久化日志的私有池中运行 JavaScript 编排脚本——agent()、parallel()、pipeline()、phase()、log()、args、budget。运行在重启后仍会保留,可使用resume_run_id恢复,并可将步骤隔离在 Git 工作树中。它是一个普通工具,默认关闭。todo维护由模型管理的任务列表;ask_user会通过由你在输入框中回答的问题卡暂停回合。
网络搜索与抓取
web_search 有两个后端:原生(对话自身的模型在隔离请求中运行其提供商侧搜索,不使用客户端工具)和目录提供商(Tavily、Exa、SearXNG、Jina、Firecrawl、Bocha、Zhipu、……),后者由宿主自行调用。web_fetch 始终使用在设置 → 搜索提供商下配置的目录抓取提供商。两者都是异步工具:一次批准覆盖该调用的全部网络操作,结果以标记为 untrustedWebContent 的工具结果返回,并且系统提示词会告知模型网络文本是证据,绝非指令。
内置浏览器
playwright 通过无障碍快照(snapshot)、来自这些快照的引用(click、type、fill_form、select、……)、导航、截图、控制台和网络读取以及标签页管理来驱动内置浏览器。每个标签页都是一次性、隔离的 WebView2 配置文件:不共享 Cookie,不会导入日常浏览器中的内容,关闭时即销毁。如果你亲自在标签页中登录网站,模型必须先请求批准才能在该页面上操作。远程内容永远无法访问应用的 IPC 表面。
长期记忆
两层纯 Markdown,每层都有相同的布局:
~/.mework/ <workspace>/.mework/
MEWORK.md MEWORK.md standing instructions (you write these)
memory/MEMORY.md memory/MEMORY.md index (the host maintains it)
memory/<topic>.md memory/<topic>.md memory documents (the model writes these)
启用某层的开关后,其 MEWORK.md 和 MEMORY.md 会粘贴到请求中,并且其三个工具可用;需要时按名称获取文档正文。写入全局记忆始终需要确认。记忆是模型的低优先级上下文,不是策略:必须始终成立的规则应写在钩子或安全层级中。
项目说明文件(工作区中 MEWORK.md、AGENTS.md、CLAUDE.md 风格的文件)也会在启动时发现,并作为不受信任的文件上下文块注入,独立于记忆开关。
图像
将图像拖入或粘贴到输入框中;每张图像都会在你的消息中获得一个模型可引用的 [Image #N] 占位符。产生图像的工具结果(对图像文件执行 read、浏览器截图)也会获得编号,playwright upload_image 可将其中一张发送到页面。图像会以内容寻址方式存储在应用数据目录下。
Git 与终端
Git 审查面板显示工作区的状态、差异和分支,并且在你配置 GitHub 写入身份后,可以提交、推送和打开拉取请求。对话也可以在专用的工作树中工作(输入框上方的标签)。终端面板会打开一个由你亲自操作的 PowerShell;模型只将它视为可等待的任务。
键盘、外观与依赖
设置 → 快捷键列出每项命令,并让你重新绑定它们(缩放快捷键固定)。外观涵盖主题、强调色、字体、缩放、消息布局和自定义 CSS。环境依赖会在你的 PATH 中探测 git、node、python、rg、fd、gh、uv、bun——仅检测,不会安装。
数据与重置
设置文档带有版本。来自较新或较旧架构的数据会被隔离并重建,绝不会静默迁移。若要在开发期间重新开始:
npm run reset:data # wipe app data (add --keys to also remove stored API keys)
卸载应用不会删除 %APPDATA%\com.mework.app、%LOCALAPPDATA%\com.mework.app、凭据管理器条目或 ~/.mework。