对比
HumanLayer 的替代方案:智能体审批
2026年11月4日 · 阅读约 5 分钟
简要结论
HumanLayer 最初是一个 SDK,让智能体在行动之前先问一个人:用 require_approval 给函数加一道关卡,用 human_as_tool 提问。如今 HumanLayer 做的是编码智能体 IDE,审批 SDK 自 2025 年 6 月以来没有发布过新版本。如果你仍然依赖它,Run it by 覆盖同样的两种模式,而且回复的人只需要一个链接。
已于 2026 年 11 月对照 HumanLayer 自己的页面核实。我们没有找到官方的弃用通知,所以在依据我们的判断做规划之前,请先向 HumanLayer 确认。
HumanLayer 发生了什么变化
- humanlayer.dev 现在介绍的是一个多人协作的编码智能体 IDE,以及用来运行 Claude Code、Codex 和其他编码智能体的云服务。
- PyPI 上 humanlayer 包的最新版本是 0.7.9,发布于 2025 年 6 月。
- 审批文档已从网站上消失,代码仓库里现在放的是新产品。
这对 HumanLayer 来说是合理的选择,如果你要以团队方式监督编码智能体,他们的新产品正是为此设计的。只是,需要真人点头的智能体因此失去了原来用的 SDK。
在 Run it by 中实现同样的模式
-
为某个操作设卡(
require_approval):创建mode: "approval"的请求,写明理由和做决定的人。只有当审批结果为approved时才执行。 -
提问(
human_as_tool):创建mode: "form"的请求,并给出回答用的 JSON Schema。返回的回答已按该 schema 校验。 -
获知回复:带签名的 Webhook,最多等待 25 秒的
getStatus,或者在 Builder 和 Pro 套餐上通过 MCP,在有人回复的那一刻收到通知。
示例
一个基于 REST API 的 Python 版小型 require_approval。它会在调用中等待;生产环境中建议使用 Webhook。
import os, requests
API = "https://runitby.app/v1/requests"
AUTH = {"Authorization": f"Bearer {os.environ['RUNITBY_API_KEY']}"}
def require_approval(reason, approvers):
request = requests.post(API, headers=AUTH, json={
"mode": "approval",
"title": reason,
"requester": "The billing agent",
"audience": {"kind": "named", "recipients": approvers},
"approval": {"reason": reason, "policy": "any", "verify": "email"},
"expiresIn": "24h",
"sendEmail": True,
}).json()
while True:
status = requests.get(
f"{API}/{request['requestId']}?wait=25", headers=AUTH
).json()
if status["verdict"]:
return status["verdict"] == "approved"
if require_approval("Refund order #4821, $1,200",
[{"name": "Emily Lee", "email": "emily@acme.com"}]):
issue_refund("4821")
declined 和 expired 都返回 False,所以沉默绝不会变成一笔退款。
有何不同
- 审批人不需要 Slack,也不需要账号。每位指定的人会通过邮件收到自己的链接,你也可以自己转交链接,包括发到 Slack 里。
- 多位审批人配合审批规则(any、all、majority 或一个数字),可选的每人邮件验证码,以及以
expired结束的有效期。 - 没有可以包裹你函数的装饰器,你直接调用 API 或 MCP 工具。如果你依赖的是带按钮的 Slack 消息形式的审批,Run it by 不支持这种方式。
想更全面地了解各种选择,请看 Run it by 与审批工具对比。
让你的智能体试试
每月 250 个请求免费,无需绑卡。一条命令就能从 Claude Code 或 Codex 添加 MCP 服务器,也可以使用 REST API。