Mercury:那个我们一直想要的AI代理——控制、权限与自主权,终于成真了

本文欲回答的核心问题: 在众多AI代理工具中,有没有一个既能真正替你干活、又不会把你的系统搞得一团糟、还不会月底给你一张惊人账单的选择?

当AI代理成为“麻烦制造者”

你或许已经试过那些号称能帮你写代码、管理文件、发邮件的AI代理。一开始很兴奋,但用着用着,问题就来了。

安全问题首当其冲。 AI代理要执行Shell命令、读写你的文件、安装第三方技能——这就像把一把万能钥匙交给一个你刚认识的人。更糟的是,并非所有技能都值得信任。研究数据显示,仅在某一个生态系统中,就发现了超过800个恶意技能,它们会主动窃取你的凭证。更令人不安的是,某些主流代理的核心架构曾被曝出远程代码执行漏洞,导致数万个实例面临系统完全被攻破的风险。

成本问题同样棘手。 上下文窗口在你不知不觉中膨胀。每次对话,整个历史记录都被原样塞回模型。你运行代理时只能祈祷,月底看到API账单时才知道这个月花了多少钱。

身份问题也不容忽视。 AI代理的个性要么散落在十几个目录里,要么埋在你看不懂的SQLite二进制数据中。你想修改、想版本控制、想真正拥有它?几乎不可能。

面对这三个难题,我们需要的是一个不同的解决方案。

反思: 我见过太多人一开始对AI代理充满热情,几周后就放弃了——不是因为它们不够聪明,而是因为它们太不可控。技术产品最大的失败,不是功能缺失,而是信任崩塌。当你的AI助手可能意外删除文件或因为上下文膨胀而烧掉你的预算,你再也不会放心使用它。

Mercury:为真实世界而生的AI代理

本段欲回答的核心问题: Mercury到底做了什么跟别人不一样的事?

Mercury正是为应对上述现实而构建的。它是一个工具优先、常驻后台的编排器,具备:


  • 偏执级别的权限管控

  • 尊重你钱包的Token预算

  • 四个纯文本文件定义灵魂的归属系统

它不是另一个假装是大脑的聊天封装器,而是一个行动前先问你的可靠工作伙伴

此前,开源社区已经有两款优秀的作品证明了市场的需求:


  • OpenClaw(某同类工具)在几周内获得了10万GitHub星标,证明开发者想要一个能在本地真正执行Shell命令的代理,而不是在浏览器标签里生成文本。

  • Hermes(另一同类工具)带来了持久化的SQLite记忆和自主生成技能的能力。

两者都是工程上的杰作,但它们都留下了相同的三个问题——安全、成本、身份——敞开着。

Mercury正是为了填补这些空白而生。

1. 权限:真正拦住危险操作的闸门

本段欲回答的核心问题: Mercury的权限控制凭什么比别的代理更安全?

其他代理通常需要极其宽泛的访问权限才能工作,依赖未经审核的第三方扩展生态。结果是安全噩梦。除了前面提到的恶意技能外,某些核心架构本身也存在严重漏洞。一个CVSS评分高达8.8的远程代码执行缺陷,曾导致超过40000个实例仅通过一个点击链接就面临系统完全沦陷——本地主机的保护机制形同虚设。

Mercury的立场很明确:你永远不应该盲目信任一个拥有root权限的大语言模型。

它的默认架构是权限硬化的:


  • 读写访问明确限定在特定文件夹范围内。AI不能随意翻看你整个硬盘。

  • 破坏性命令如sudorm -rf /在执行层就被硬屏蔽。这些命令不会触发“请求批准”弹窗——因为它们永远不会被执行。

  • 第三方技能只能通过明确定义的细粒度工具获得提升权限

实际场景: 假设你让Mercury帮你整理下载文件夹。传统代理可能会直接执行rm -rf ~/Downloads/*,而你只能事后后悔。Mercury呢?它会先检查自己是否有权限访问~/Downloads,然后列出文件让你确认,最后才执行安全的删除操作。如果某个恶意技能试图执行sudo,Mercury会在第一时间拒绝——不是询问,是直接拒绝。

2. Token纪律:从第一原则开始省钱

本段欲回答的核心问题: Mercury怎么控制API成本?它真的能帮我省钱吗?

其他代理以上下文窗口膨胀而“闻名”。它们试图将庞大的JSONL对话历史塞回模型,导致数分钟的静默处理和令人咋舌的API账单。

Mercury将Token效率刻进了骨子里:


  • 每次请求只注入约400个Token的核心人格上下文。

  • 你可以设置每日Token上限

  • 当使用量超过每日预算的**70%**时,自动简洁模式会自动启动,收紧上下文,在保持活跃任务不中断的同时,让你的API账单保持平稳。

实际场景: 你设置每日预算为10万Token。上午你和Mercury聊了两个小时,用了6万Token。下午你让它处理一个复杂任务,当Token用量达到7万时(70%阈值),Mercury自动切换到简洁模式——回复变得更短、更直接,但该做的工作一样没落下。月底一看,账单稳稳控制在预算之内。

反思: Token预算就像健身预算——你永远不知道月底花了多少,直到你开始记录。大多数AI产品的定价模型有意模糊化,让你在不知不觉中超额消费。Mercury把这个问题透明化、自动化,这是一种对用户钱包的基本尊重。

3. “灵魂”系统:可版本控制、可编辑的人格

本段欲回答的核心问题: 怎么让AI代理拥有真正属于我自己的个性和规则?

其他代理依赖散落在各处的不连贯技能文件。而另一些则走向另一个极端,完全依赖自动生成的、存在SQLite数据库中的不透明学习记忆。

Mercury提供了一套高度定型化的四文件Markdown系统:


  • soul.md

  • persona.md

  • taste.md

  • heartbeat.md

你通过纯文本文件,精确定义代理如何思考、如何回应、如何写代码。你甚至可以在taste.md中强制要求“喜欢暗色主题”和“干净的UI组件”。

这意味着:


  • 拥有它。

  • 你用纯文本写它。

  • 你在Git中版本控制它。

这是一个干净的身份系统,不是一个不可预测的黑箱。

实际场景: 你是一个喜欢函数式编程、讨厌类的前端开发者。你在taste.md中写入:“优先使用纯函数,避免class语法。变量命名使用camelCase。代码注释用中文。”从此,每次Mercury生成的代码都符合你的审美。你把这个文件提交到Git仓库,团队成员可以review、可以提PR——AI代理的“性格”第一次像代码一样被管理。

🧠 第二大脑:Mercury记得,而你不用操心

本段欲回答的核心问题: Mercury怎么记忆我的偏好和历史?它会泄露隐私吗?

大多数AI代理在你关闭聊天窗口的那一刻就忘记了一切。Mercury不同——它自动、私密、精准地记住。

它是如何工作的?

  1. 自动提取:每次对话后,Mercury会进行专门的提取工作,拉取0-3条关于你的事实——你的偏好、目标、项目、习惯、关系、决策。每条事实都被赋予类型、置信度(0-1分)、重要性和持久性评级。置信度低于0.55的会被拒绝。
  2. 存储与合并:事实存入带FTS5全文搜索的SQLite数据库。如果相似事实已存在,Mercury执行合并——增加证据计数、更新置信度、解决矛盾。没有重复。
  3. 精准回忆:在你发送下一条消息前,FTS5查询会检索出最相关的5条记忆,且总字符数控制在900以内。只有真正重要的东西进入上下文,你的Token消耗保持在低位。
  4. 整理与修剪:每60分钟:档案综合、反思生成、活跃记忆升级为持久记忆(证据≥3次)。自动修剪:21天无用的活跃记忆被清退,120天低置信度的持久记忆被衰减。

10种记忆类型:身份、偏好、目标、项目、习惯、决策、约束、关系、事件片段、反思——每一种都按置信度、重要性、持久性打分。

你始终保持控制/memory命令让你可以概览、搜索、暂停、清空。第二大脑可以通过配置完全禁用。所有数据留在你本机的~/.mercury/目录下的SQLite中——没有一条数据离开你的机器

实际场景: 你在周一告诉Mercury“我喜欢在下午处理代码审查,早上容易犯困”。周三你又说“我的睡眠质量最近不太好”。Mercury提取出“偏好:下午审代码”(置信度0.9)和“状态:睡眠差”(置信度0.7)。周五你让它安排明天的任务,它自动把代码审查排到了下午,并在早上只安排了简单的文档阅读。它甚至没有问你——它记住了。

反思: 真正的智能不是算得快,而是记得准。很多“智能”助手其实只是长得好看的搜索引擎。Mercury的第二大脑概念让我想到一个点:知识的价值不在于存储,而在于在恰当的时机被唤醒。900字符的上下文预算不是限制,而是对注意力的尊重。

31个内置工具 + 技能系统 + 调度器

本段欲回答的核心问题: Mercury到底能干什么?我能让它帮我做哪些具体的事?

Mercury不只是一个聊天机器人,它是一个拥有31个内置工具的操作系统级编排器

📂 文件系统

read_file, write_file, create_file, edit_file, list_dir, delete_file, send_file, approve_scope

💬 消息

send_message

🐚 Shell

run_command, cd, approve_command

📦 Git

git_status, git_diff, git_log, git_add, git_commit, git_push

🌐 Web

fetch_url

🐙 GitHub

create_pr, review_pr, list_issues, create_issue, github_api——每次提交都有Co-authored-by标记

🧩 技能

install_skill, list_skills, use_skill

⏰ 调度器

schedule_task, list_scheduled_tasks, cancel_scheduled_task

📊 系统

budget_status

🧠 记忆

短期、长期(自动提取、去重)、事件日志(带时间戳)

实际场景(来自真实Mercury会话):

你:读取package.json并告诉我依赖项
[使用:read_file]

你:把版本号改成0.2.0
[使用:edit_file]
成功将“0.1.0”替换为“0.2.0”

你:提交那个更改
[使用:git_add, git_commit]
[git add package.json] [git commit -m "升级版本至0.2.0"]

你:把package.json文件发给我
[使用:send_file]
文件已发送:package.json (1.2KB)

Mercury:完成了!我已读取package.json,更新了版本,提交了更改,并把文件发给你了。还有什么需要?

这只是一个示例。你可以让它每天9点抓取最新的GitHub仓库动态,可以在Telegram上远程管理服务器,可以自动创建PR并邀请团队审阅。

60秒内运行起来

本段欲回答的核心问题: 我该怎么开始用Mercury?安装复杂吗?

第一步:安装

npm i -g @cosmicstack/mercury-agent

或者用npx,无需安装:

npx @cosmicstack/mercury-agent

第二步:设置

mercury

首次运行会启动引导向导:


  • 选择一个或多个AI服务商

  • 验证每个API密钥(通过获取模型列表来确认)

  • 选择默认模型

  • (可选)用机器人令牌和配对码配置Telegram

第三步:运行

mercury start

Mercury启动,加载你的灵魂文件,恢复已调度任务,作为后台守护进程运行。通过Telegram开始对话,或用mercury start --foreground进入附加模式(前台运行)。

平台支持


  • macOS:LaunchAgent(无需sudo)

  • Linux:systemd用户单元(无需sudo)

  • Windows:任务计划程序(无需管理员)

  • 崩溃恢复:带指数退避的看门狗

  • 零依赖:不需要PM2、forever或NSSM

GitHub伴侣:你的代理,你的提交,你的仓库

本段欲回答的核心问题: Mercury怎么帮我处理GitHub上的工作?


  • 共同署名的提交:每次Mercury协助的提交都会带上Co-authored-by: Mercury标记。Mercury的头像会和你的一起出现在GitHub提交历史中。

  • 拉取请求:创建PR、审阅差异、发表审阅评论——全都通过Mercury的工具。只需说“创建一个PR”或“审阅打开的PR”。

  • 问题管理:列出、筛选、创建问题。调度每日问题检查。Mercury让你的 backlog 持续转动,无需你碰浏览器。

  • 自托管认证:使用存储在你机器上的细粒度个人访问令牌。没有账户,没有OAuth服务器,没有云端依赖。你的令牌,你的仓库,你的控制。

配置示例:

$ mercury doctor
GitHub用户名:你的用户名
GitHub邮箱:mercury@你的域名
GitHub PAT(repo范围):••••••••
✓ GitHub工具已注册(5个)

与其他方案的诚实对比

特性 Mercury OpenClaw同类 Hermes同类
灵魂/人格系统 4个Markdown文件 自定义指令 CLAUDE.md
Token预算执行 每日预算+覆盖
多通道(CLI+Telegram) 两者兼有,更多即将到来
技能系统(Agent Skills规范) 安装、调用、调度
Cron+延迟调度 持久化、自动恢复
权限硬化 黑名单+范围+审批 确认提示 权限提示
GitHub伴侣 PR、问题、共同署名提交
主动通知 心跳+任务提醒
自动事实提取 带去重
服务商故障转移 自动(记录最后成功) 手动配置 仅Anthropic
文件上传(Telegram) 支持,自动类型检测
流式输出(CLI) 实时文本流 实时文本流 实时文本流
无头/24×7模式 内置
语言/运行时 TypeScript / Node.js Python TypeScript / Node.js
开源协议 MIT LGPL-2.1 源码可用

精炼的底层架构


  • 核心:TypeScript + Node.js 18+,ESM,tsup构建,SQLite支持的第二大脑

  • AI SDK:Vercel AI SDK v4,streamText + generateText,10步代理循环

  • 服务商:DeepSeek(默认,性价比高)、OpenAI(GPT-4o-mini等)、Anthropic(Claude系列)、Grok(xAI)、Ollama Cloud、Ollama Local(零成本、完全私有)。更多即将到来:Google Gemini、Mistral等。OpenAI兼容架构也支持自定义端点。

  • Telegram:grammY,长轮询,配对码,CLI管理的访问请求,广播,文件上传

  • 运行时数据~/.mercury/——配置、灵魂、记忆、权限、技能、调度——全在你的家目录

反思: 支持Ollama Local这个决定很聪明。不是每个人都能或愿意为每次API调用付费。本地运行意味着你可以用消费级GPU(甚至CPU)跑一个小型模型,让Mercury完成日常任务,成本为零。这打开了大量应用场景——从隐私敏感的企业环境到只是想玩玩的个人开发者。这也是对“AI必须昂贵”这个假设的挑战。

结论:Mercury解决了我们一直忽视的三个问题

当其他AI代理证明了开发者需要本地编排和持久化记忆时,Mercury代表了下一个逻辑迭代:一个精简化、命令行原生、建立在权限硬化基础上的引擎

它内置的工具覆盖了文件操作、深度GitHub管理、多通道集成(从CLI流式输出到Telegram)。框架本身不挡路,让工具真正发挥作用。这是一个为真正的日常使用而构建的编排器,而不仅仅是一个概念验证。

我们不需要另一个过度工程化、假装是大脑的应用。我们需要一个可靠的、常驻后台的工作者,它尊重Token预算,不会盲目执行破坏性Shell命令。

Mercury就是为这个现实而构建的。

实用摘要 / 操作清单

如果你正在考虑采用Mercury,以下是你需要知道的核心要点:


  • [ ] 安装:一条命令 npm i -g @cosmicstack/mercury-agent && mercury

  • [ ] 配置:引导向导会帮你设置API密钥和服务商

  • [ ] 启动mercury start 让它作为守护进程运行

  • [ ] 定义灵魂:编辑 ~/.mercury/soul.md, persona.md, taste.md, heartbeat.md

  • [ ] 设置预算:配置每日Token上限,避免意外高额账单

  • [ ] 连接Telegram:可选,获得移动端的远程控制能力

  • [ ] 安装技能install skill from <URL>

  • [ ] 调度任务schedule_task <技能名> every day at 9am

  • [ ] 管理记忆:用 /memory 命令查看、搜索、管理第二大脑

  • [ ] GitHub集成:运行 mercury doctor 配置你的PAT令牌

一页速览

问题 Mercury的解决方案
安全风险 文件夹级读写范围、命令黑名单(sudo/rm -rf永久禁止)、审批流程
成本失控 每日Token预算,超70%自动简洁模式,每次请求仅注入~400 Token
身份混乱 四个Markdown灵魂文件,可Git版本控制,纯文本可读可编辑
记忆丧失 自动事实提取(10种类型)、SQLite+全文搜索、600分钟整理修剪
部署复杂 零依赖守护进程,跨平台,自动开机启动/崩溃重启
通道单一 CLI+Telegram(更多即将到来:Signal、Discord、Slack、WhatsApp)
GitHub工作流分离 内置PR、问题、共同署名提交

常见问答(FAQ)

问:Mercury会把我私人对话数据上传到云端吗?
不会。所有记忆数据都存在你本机的~/.mercury/目录下的SQLite数据库中。第二大脑可以完全禁用。配置文件中明确控制数据流向。

问:我能用免费的大模型跑Mercury吗?
可以。Mercury支持Ollama Local——完全本地运行,零API成本。也支持Ollama Cloud、DeepSeek(默认,性价比高)、OpenAI、Anthropic、Grok等。

问:Mercury和OpenClaw最大的区别是什么?
权限硬化、Token预算执行、四个Markdown文件的灵魂系统、持久化调度器、内置GitHub伴侣。Mercury是默认安全且常驻后台的,而其他方案需要更多手动干预和信任。

问:我能在团队里共享Mercury配置吗?
可以。灵魂文件是纯文本Markdown,可以放进Git仓库。团队成员可以review、提PR,就像管理代码一样管理AI代理的“人格”。

问:Mercury支持Windows吗?
支持。使用Windows任务计划程序安装为系统服务,无需管理员权限。

问:如果我某个API服务商挂了怎么办?
Mercury有内置的故障转移机制。它会记录最后成功的服务商,自动切换到可用的备选。你无需手动干预。

问:技能系统安全吗?
技能只获得显式定义的细粒度工具权限。破坏性命令在执行层被硬屏蔽。安装技能前,Mercury会提示你确认来源。

问:Mercury是开源的吗?
是的,基于MIT协议开源。代码仓库和文档可以在GitHub上找到。