工作流 📋 6 个步骤 第 596 / 599 篇

用 markus 在本地跑一支会互相评审的多智能体团队(自托管,自带审查工作流)

markus 是一个开源、本地自托管的 AI 劳动力平台:你用自然语言给一个目标,它自动组建多智能体团队、拆解任务并行执行,并通过 peer review 把每一份交付都过一道同伴评审,数据全在本地 SQLite。

2026.11.04· 18 分钟阅读· 约 1879 字· 🤝 markus / 🤖 多智能体

想在自己电脑上跑一支「多智能体团队」——给一个大目标,几个 Agent 分工协作、互相检查,而不是只有一个聊天框?很多框架要你写编排代码、搭消息总线、接可观测性,门槛不低。

markus 走的是另一条路:它是一个开源、本地自托管的 AI 劳动力平台。你用自然语言给一个目标,它自动组建多智能体团队、拆解任务、并行执行,并通过 peer review(同伴评审)把每一份交付都过一道审查闸门。数据全在本地 SQLite,模型密钥你自己填(也支持本地模型完全离线)。它提供桌面 App、CLI 与服务端 Web UI(localhost:8056),适合想「开箱即跑一支 Agent 团队」的开发者。

🧩 本教程适合:想本地跑一支会自我审查的多智能体团队、又不想从零搭编排框架的开发者;以及需要把 Agent 团队接入现有工作流、IM 网关的团队。你需要 Node.js 22+ 和至少一个大模型 API Key(或本地模型)。

先搞懂:markus 把「团队协作」做成了什么

与传统「单一聊天 Agent」不同,markus 的模型是「目标 → 团队 → 分工 → 并行 → 评审」:

环节markus 怎么做
组队给目标后自动装配一组专职 Agent(研究 / 内容 / 开发 / 监控等)
拆解把大目标拆成子任务,可并行执行,带持久记忆
评审每份交付先经同伴评审(peer review),通过才交付
隔离数据在本地 SQLite;自带技能生态与 IM 网关

它是 pre-1.0 软件:markus 当前是 0.12.x,更新频繁、可能有破坏性变更。把它接进生产关键流程前,先在小目标上试跑验证;命令细节以官方文档与 App 内引导为准,本教程给的是通用流程。

Step 1:安装 markus

1 三种装法,挑顺手的

markus 提供一键脚本、npm 全局包和桌面 App,任选其一:

# 方式一:官方一键脚本(macOS / Linux)
curl -fsSL https://markus.global/install.sh | bash

# 方式二:npm 全局(需 Node.js 22+)
npm install -g @markus-global/[email protected]

# 方式三:桌面 App(推荐新手)
#   到官网下载 macOS / Windows / Linux 安装包,双击安装即可

# 验证
markus --version
💡 纯本地、想最省心,直接下桌面 App——它自带移动端适配与「存储自愈」,打开就能用,不用管服务进程。

Step 2:配置模型密钥

2 自带 Key,或本地模型离线跑

markus 是 BYOK(自带密钥),把你的提供商 Key 写进环境变量(或 App 的设置页)。想完全离线,就用本地模型(如 Ollama):

# .env 示例(8 个变量里最常用这几个)
OPENAI_API_KEY=sk-xxxx
ANTHROPIC_API_KEY=sk-ant-xxxx
DEEPSEEK_API_KEY=sk-xxxx
# 本地模型离线:不填任何云 Key,配置 Ollama 地址即可
# DATABASE_URL=~/.markus/data.db   # 默认本地 SQLite,可不改

离线不等于自动离线:只要你在配置里填了云厂商 Key,任务文本就会被发到对应提供商。要做到「数据完全不出本机」,必须显式用本地模型、并且不填任何云 Key。另外 markus 给执行器设了硬约束——No shell / No secrets / No sends:环境文件和凭据全程不可读、不可写,别指望 Agent 去动你机器上的命令。

Step 3:启动并打开工作台

3 进 Web UI 或桌面 App

桌面 App 直接打开即可;CLI 起服务后访问 Web UI:

# 桌面 App:双击打开,自动起本地服务
# CLI / 服务器:启动后访问
open http://localhost:8056

# 服务器部署(Linux 一键)
curl -fsSL https://markus.global/install.sh | bash
# 启动后同样访问 :8056,可配远程访问与多用户

进入工作台后,你会看到目标输入框、团队运行状态、任务队列与评审面板。所有运行数据落在本地 ~/.markus/data.db。

🔑 关键技巧:第一次先用一个极小目标试跑(比如「整理桌面某个文件夹的命名」),看它怎么组队、拆任务、出评审,确认无误再放大到正式工作。

Step 4:给一个高层目标,看它组队与拆解

4 用自然语言派活

在工作台输入一个清晰的目标,markus 会装配团队、拆分任务并行执行,并保留持久记忆(跨会话记住上下文):

# 目标示例(越具体越好)
"调研 3 个竞品的价格与核心功能,产出一张对比表,
 结论附来源链接"

# markus 会:
#   1) 组队:研究员 + 写手 + 审校
#   2) 拆解:找资料 / 抽字段 / 写表格 / 交叉核对
#   3) 并行执行,带持久记忆

目标清晰度决定拆解质量:模糊的「帮我研究一下」会得到松散结果;带范围、产出形态、验收标准的指令,团队分工才明确。把目标当成给真人的 brief 来写。

Step 5:走 peer review 闸门

5 每份交付先过同伴评审

markus 把每份交付先过一道同伴评审(peer review)。在 Web UI 的评审面板里你可以接受或驳回;它还按任务价值分档:

档位能拉的活适合
Level 1$ 与 $ 低/中价值行政、邮件、杂活、会议
Level 2+$$ 高价值销售、战略、产品

规则是「Level 1 代理只拉低价值活,Level 2+ 才碰高价值活」。评审通过的交付才会进下一步;被驳回的会回到对应 Agent 重做。

💡 高价值任务(销售 / 战略 / 产品)让 Level 2+ 代理去拉,日常杂活交给 Level 1,避免浪费高级模型额度。这也是它「分级治理」的核心用法。

Step 6:接工作流与多通道

6 把团队接进你现有系统

跑顺单目标后,可以用 Workflows 定义可复用的流水线(官方 0.12.x 已带 P0+ 引擎与 Work 页),并通过 REST + WebSocket API、IM 网关把团队接进你现有系统:

# 概念:定义一个可复用工作流
#   Workflows: P0 + W2 引擎,把「调研→写稿→评审」固化成流水线
# 接入方式:
#   - REST + WebSocket API:让你的程序调用 markus 团队
#   - IM 网关:把任务/结果接到聊天/工单系统
#   - 技能生态:复用社区/团队沉淀的可复用技能

成本是并行执行的代价:多 Agent 并行会消耗较多 token。先用小目标试跑,在 Web UI 估一下每轮消耗,再决定是否放大到整支团队跑大目标。pre-1.0 下 Workflows 的具体字段与 CLI 子命令可能随版本变化,以 App 内引导与官方文档为准。

预期效果与常见问题

预期效果:跑完上面六步,你本地就有了一支「给目标→自动组队→并行执行→同伴评审」的 Agent 团队,所有运行数据在本地 SQLite,模型密钥你掌控。给一个清晰目标,它能产出带来源、经过互审的结果,而不是单 Agent 的一锤子输出。

你遇到的现象大概率原因与解决
起不来 / 端口冲突默认 8056,释放后重试;服务器部署确认防火墙与端口映射
结果质量松散目标太模糊,按 brief 写法补范围、产出形态、验收标准
数据疑似外发检查是否误填云 Key;要离线就只用本地模型且不填任何云 Key
token 消耗快并行团队大目标先小跑估成本;高价值活限定 Level 2+ 代理
← 返回教程中心