mcpField
H
HEYM

HEYM

远程服务
github.com/heymrun开发工具1.3k今天更新
代码仓库

关于 HEYM

HEYM 是一个可自托管的 AI 工作流自动化平台,提供可视化画布、Agent、RAG、人工审核与可观测性功能。适合需要在自有基础设施上构建和运行 Agent 系统的团队。工作流可通过 /api/mcp/sse 作为 MCP 服务暴露。

主要功能

  1. 01可视化画布与 AI 辅助生成工作流
  2. 02多 Agent 编排与子工作流调用
  3. 03RAG 与按 Agent 的知识图谱记忆
  4. 04人工审核检查点与执行历史
  5. 05执行链路、token 与模型成本追踪
  6. 06REST、SSE 与 MCP 多种调用方式

适用场景

  1. 01在自有服务器上运行多 Agent 业务流程
  2. 02为审批类任务加入人工审核步骤
  3. 03追踪 LLM 调用成本与延迟

MCP 相关

HEYM 可将工作流发布为 MCP 工具,通过 /api/mcp/sse 端点供 Claude Desktop、Cursor 等 MCP 客户端调用。同时它也通过 MCP Call 节点调用外部 MCP 服务。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址http://localhost:4017/api/mcp/sse
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍


Heym Logo

Heym

构建 Agentic 系统。自信地运行它们。

Heym 是一款可自托管的运行时和平台,可在你的基础设施上构建、编排、运行、观测、评估和控制 Agentic 系统。

通过可视化方式编排 Agent 和确定性工作流,或借助 AI 生成它们。连接模型、工具、MCP、公司知识和内部系统,并通过审批检查点、重试以及执行和模型成本可视化来管理它们。

heym.run

本地试用: git clone https://github.com/heymrun/heym.git && cd heym && ./run.sh
快速开始 · 部署并调用工作流 · 扩展 Heym · 安全


PR checks Release image License: MIT Commons Clause Heym Version Python FastAPI Vue.js TypeScript Bun Docker Security


Heym 可自托管 Agentic 运行时动画

什么是 Heym?

在 Heym 中,工作流定义了 Agent、确定性步骤、工具和数据如何协同工作。运行时执行该图,协调依赖和并行任务,记录执行历史,并支持人工审核检查点。

画布只是 Heym 的一个操作界面,并非 Heym 本身。 使用它来构建、检查、调试和了解运行时上运行的系统。同一工作流也可通过 API、计划任务、事件触发器、MCP 客户端和 Portal 对话来运行。

访问产品网站,了解更多:heym.run。

Agent 生命周期的统一运行时

构建 → 编排 → 运行 → 观测 → 评估 → 控制 → 暴露

这些是 Heym 中运行智能体系统的相互关联环节。

阶段在 Heym 中的操作
构建通过可视化方式组合 Agent 和确定性工作流,使用 AI 生成,或从可复用的模板和技能开始。
编排协调 Agent、子 Agent、子工作流和工具,并明确数据流、分支,以及依赖关系允许时的并行执行。
运行通过 API、计划任务、事件触发器或交互式界面执行,并可配置重试、错误路径和浏览器自动化。
观测检查执行历史、实时状态、追踪记录、工具调用、令牌、延迟、错误和模型成本。查看分析数据和告警,并导出 OpenTelemetry 追踪记录。
评估根据预期输出测试提示词和模型响应,比较不同模型的结果,并检查已保存的评估运行记录。
控制在审核检查点暂停 Agent 执行,并在人工作出决定后从已保存的状态恢复。配置防护措施、凭证、身份验证和团队访问权限。
暴露通过 REST、SSE 流式传输、MCP 工具和 Portal 聊天界面提供工作流服务,或将其结果连接到应用内仪表板小组件。

利用观测和评估结果优化提示词、工具和工作流逻辑,然后运行并检查下一轮迭代。

🗺️ 平台概览

工作流定义将构建体验与执行连接起来。运行时使用该定义协调节点和工具,而执行状态则为人们用于检查、审核和使用结果的界面提供数据。

系统组成部分作用
构建和检查画布、AI 助手、模板和 Expression DSL 用于创建和编辑工作流定义。同一画布也可以连接到正在运行的执行实例,以供检查。
编排和执行执行器协调 Agent、确定性节点、子工作流、并行分支、重试和审核检查点。
连接工具和数据节点和 Agent 工具可访问模型、HTTP API、MCP 服务、内部知识、持久化记忆、数据库、队列和文件。
运维和改进历史记录、追踪记录、成本、分析数据、告警、日志和 OpenTelemetry 揭示运行时行为。评估支持提示词和模型迭代;访问控制和人工审核则决定系统的运行方式。
为人员和应用提供服务REST 和 SSE 端点、MCP 工具、Portal 对话、Board 任务和由工作流驱动的仪表板,提供调用系统和使用其结果的方式。

Heym 横幅


✨ 核心功能

构建:Agent、工作流与互联工具
  • 可视化与 AI 辅助创作。 在画布上构建和检查工作流图,通过文本或语音使用 AI 助手生成或修改工作流,并复用模板。
  • Agent 与确定性逻辑。 将大模型和 Agent 节点与条件、分支、循环、合并、数据转换及子工作流调用相结合。在支持的节点字段中使用表达式。
  • 多 Agent 编排。 为编排器指定可调用的具名子 Agent 和子工作流。相互独立的子 Agent 调用可以并发执行。
  • 知识与持久化记忆。 使用 Qdrant 或 PostgreSQL 配合 pgvector,通过 RAG 检索文档。启用每个 Agent 的知识图谱以在多次运行中保留事实,并配置 Agent 之间的共享方式。
  • 工具与集成。 通过内置节点、HTTP API 和 MCP 连接通信服务、开发者工具、效率应用、数据库、队列和存储。使用 MCP Call 节点确定性地调用工具。
  • 技能与自定义行为。 为 Agent 附加可复用的 SKILL.md 指令和可选的 Python 工具,使用 AI 创建或修改技能、安装插件,或通过类型化配置和执行处理器实现自定义节点。
运行:执行与协调工作
  • 并行执行与恢复。 并发运行独立节点,使用 Merge 同步分支,并配置重试、退避、错误路径和模型回退。
  • 计划与触发器。 通过 cron、webhook、消息集成、收件箱事件、WebSocket 消息和 Heym 平台事件启动工作流。
  • 浏览器与编码 Agent。 使用 Playwright 自动执行浏览器任务,并借助 AI 辅助恢复选择器。将 Codex 或 OpenCode Go 作为工作流步骤在代码仓库上运行,并输出差异和拉取请求。
  • Agent 式看板。 卡片是持久化的 Agent 任务。将卡片移入某列即可运行按顺序排列的工作流链,并传入卡片内容、评论、历史记录和之前的输出,随后将结果写回卡片。
  • 负载分配。 通过 PostgreSQL 在 Heym 实例之间分配符合条件的后台运行任务,并在 Settings → Instances 中配置执行权重。
观测:了解执行情况与成本
  • 历史记录与实时执行。 从历史记录或看板卡片打开生产运行记录,检查其保存的状态,并跟踪节点实时进度、调试日志和最终输出。
  • 跟踪记录与模型成本。 检查模型请求、响应、工具调用、输入/输出令牌数、延迟和错误。使用维护中的模型定价和自定义覆盖值计算美元成本,并按模型和时间范围查看历史支出。
  • 分析、日志与告警。 跟踪执行量、成功率和持续时间;查看日志;为错误、持续时间、令牌或美元支出以及运行次数设置告警。通过 OpenTelemetry 导出工作流、节点和 Agent 工具跨度。
评估与控制:改进行为并让人类参与
  • 评测与分析。 跨模型运行可重复的提示词评估,对比预期输出与实际输出,并查看历史结果。工作流分析器利用执行上下文生成一份共享且可编辑的 Markdown 报告,说明目的、步骤行为和改进方向。
  • 人工审核。 Agent 检查点会暂停执行,以便接受、编辑或拒绝,然后从已保存的执行快照继续。审核分支可通过现有集成通知相关人员。
  • 安全与访问控制。 配置输入防护、加密凭据、团队共享、执行令牌和工作流身份验证。通过 Keycloak、Okta、Entra ID、Auth0 和 Google 等提供方,使用 JWT 身份验证或 OIDC SSO 登录。
暴露:让系统投入使用
  • REST、SSE 和 MCP。 从应用程序调用工作流、流式传输执行事件,或将工作流发布为供 MCP 客户端使用的工具。
  • 门户和聊天。 发布由工作流支持的聊天界面,支持流式传输、文件上传和对话历史记录。使用「聊天」选项卡调用工作流,并与模型和平台数据交互。
  • 仪表板、数据和文件。 构建由工作流支持的自定义仪表板小组件,管理结构化数据表,并将生成的文件保存在 Heym Drive 中,支持团队共享和共享链接。
Heym 运行时核心功能网格动画

🎬 产品导览

以一场电子商务销售活动为例,完整展示从 AI 助手生成工作流、人工审核、看板执行、结构化数据、仪表板、追踪、RAG、MCP,到分析和团队协作的全过程。

产品演示

演示展示了一个编排器和子 Agent系统从创建到聊天界面的全过程。对于「如何从柏林前往法兰克福?」和「我在那里应该吃什么?」这类请求,编排器可以在同一轮中调用独立的子 Agent,并发执行这些任务,再整合它们的结果。

根据自然语言生成工作流

描述你想要的 Agent、编排模式和面向用户的结果;Heym 会在画布上构建工作流。

工作流创建演示

示例提示词

请为我创建一个包含路线规划 Agent 和美食推荐 Agent 的工作流。当编排器 Agent 收到请求时,它会并行调用这些子 Agent,并将结果返回给用户。

运行和检查系统

从画布启动运行时执行,并检查结果在图中流转时的每个步骤。API、计划任务、触发器和 MCP 都可以调用同一个工作流。

工作流运行演示

为 Agent 创建技能

使用自然语言创建 Agent 技能,预览生成的 SKILL.md,并将其附加到 Agent。

技能创建演示

示例提示词

请为我创建一个技能并将它添加到 Agent。编排器 Agent 会在收到子 Agent 提供的信息后调用此技能,该技能将创建一份简单的执行计划,说明在目的地城市实际可以做些什么。

在聊天中调用工作流

将工作流转化为聊天体验,让用户可以通过自然语言请求调用编排流程。

聊天工作流演示

示例提示词

我住在柏林,计划去法兰克福。走高速公路有多少公里?另外,我可以在哪里找到法兰克福最好吃的烤肉卷?

📸 截图

可视化工作流画布
可视化画布:多 Agent 编排、RAG 和 MCP 节点,以及人在环路中的检查点
MCP 服务设置
MCP 服务:将工作流发布为工具,供 Claude、ChatGPT 或 Cursor 使用
大模型调用追踪
调用追踪:检查模型请求、响应、令牌数、延迟和费用
分析仪表板
分析:每个工作流的执行量、成功率、延迟和节省时间

观看 Heym 教程


🚀 快速开始

想先观看教程?在 2 分钟内在本地设置 Heym 将带你完成整个流程:克隆代码仓库、启动 PostgreSQL,并在本地实例上创建账户。

git clone https://github.com/heymrun/heym.git
cd heym
./run.sh

# OR: with .env file (run.sh auto-generates SECRET_KEY and ENCRYPTION_KEY)
git clone https://github.com/heymrun/heym.git
cd heym
cp .env.example .env
./run.sh

打开 http://localhost:4017 创建账户并开始构建。run.sh 会启动 PostgreSQL、后端和前端,并在需要时生成 SECRET_KEY 和 ENCRYPTION_KEY。

先决条件:Bun、Python 3.11+、UV 和 Docker。如需使用容器,请参阅下方的部署选项。有关所有设置及其默认值,请参阅 ENVIRONMENT-VARIABLES.md。


部署

Heym 可在你的基础设施上运行,并以 PostgreSQL 作为核心数据库。标准 Compose 配置包含 PostgreSQL、后端和前端,并使用本地卷持久化文件。工作流需要 RabbitMQ 和 Redis 时,可连接这两项集成。RAG 可使用内置的 PostgreSQL/pgvector 后端或外部 Qdrant 服务;S3 可通过其集成节点使用。

Docker Compose

使用 Docker Compose 和 Python 3 进行生产部署:

cp .env.example .env
./deploy.sh              # Build and deploy (auto-generates keys if empty)
./deploy.sh --down       # Stop services
./deploy.sh --logs       # View logs
./deploy.sh --restart    # Restart services

请先注册管理员账户,然后在 .env 中设置 ALLOW_REGISTER=false 并重启,以关闭生产环境中的注册功能。

预构建 Docker 镜像

发布镜像包含前端和后端。以下示例将其连接到主机上已有的 PostgreSQL 数据库;请将 DATABASE_URL 设置为数据库地址和凭据。在 Linux 上使用该主机名时,请添加 --add-host=host.docker.internal:host-gateway。

包含持久化文件、插件和编码 Agent 工作区的 Docker 命令
# Docker with .env file
git clone https://github.com/heymrun/heym.git
cd heym
cp .env.example .env
# Generate required keys and write them into the placeholder lines copied from
# .env.example (replace in place: appending with >> would create duplicate entries):
SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(32))")
ENCRYPTION_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))")
sed -i.bak "s|^SECRET_KEY=.*|SECRET_KEY=${SECRET_KEY}|; s|^ENCRYPTION_KEY=.*|ENCRYPTION_KEY=${ENCRYPTION_KEY}|" .env && rm -f .env.bak
docker run --env-file .env \
  -e DATABASE_URL=postgresql+asyncpg://postgres:[email protected]:6543/heym \
  -p 4017:4017 \
  --shm-size 2g \
  -e FILE_STORAGE_DIR=/app/data/files \
  -e HEYM_PLUGINS_DIR=/app/data/plugins \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v "$(pwd)/data/files:/app/data/files" \
  -v "$(pwd)/data/plugins:/app/data/plugins" \
  -v heym-codex-workspaces:/app/data/codex-workspaces \
  -v heym-opencode-workspaces:/app/data/opencode-workspaces \
  ghcr.io/heymrun/heym:latest

# OR: minimal, no .env file
docker run \
  -e ENCRYPTION_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))") \
  -e SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))") \
  -e DATABASE_URL=postgresql+asyncpg://postgres:[email protected]:6543/heym \
  -e FILE_STORAGE_DIR=/app/data/files \
  -e HEYM_PLUGINS_DIR=/app/data/plugins \
  -p 4017:4017 \
  --shm-size 2g \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v "$(pwd)/data/files:/app/data/files" \
  -v "$(pwd)/data/plugins:/app/data/plugins" \
  -v heym-codex-workspaces:/app/data/codex-workspaces \
  -v heym-opencode-workspaces:/app/data/opencode-workspaces \
  ghcr.io/heymrun/heym:latest

挂载和运行时设置支持以下功能:

  • Playwright: --shm-size 2g 为 Chromium 提供足够的浏览器任务空间。基于步骤的 Playwright 运行在 Heym 容器内;自定义 playwrightCode 使用一个拥有独立共享内存设置的同级容器。Compose 会为你配置这些设置。
  • Heym Drive: FILE_STORAGE_DIR=/app/data/files 将文件存储指向已挂载目录,使上传的文件和生成的文件在容器重启后仍能保留。
  • 插件: HEYM_PLUGINS_DIR=/app/data/plugins 及其挂载会保留已安装的插件包。
  • 技能和 Codex: heym-codex-workspaces 卷将运行时连接到经过加固的同级容器。每次运行的隔离要求 Docker Engine 25.0+。
  • OpenCode Go: heym-opencode-workspaces 卷会保留与同级运行器共享的工作区。
  • Docker 访问: 套接字支持沙盒容器和 MCP stdio 执行。它授予对主机的广泛控制权限,因此请限制对部署的访问。Docker 日志访问需通过 DOCKER_LOGS_ENABLED 和 DOCKER_LOGS_ALLOWED_EMAILS 单独配置;开放注册前,请先创建允许名单中的账户。
多实例执行

将其他 Heym 实例连接到同一个 PostgreSQL 数据库,以分发符合条件的后台工作流运行。可在 设置 → 实例 中配置它们的份额。队列和协调由 PostgreSQL 承载,因此集群不需要单独的消息代理,也不需要实例间直接连接。

主实例提供 UI、API、MCP 和 Portal,并负责本地文件和已安装插件。工作实例会执行符合条件的排队运行;依赖主实例本地存储或工作区的工作流则在主实例上运行。负载分配指南介绍了运行位置、共享密钥、数据库容量规划、入口流量和升级,并提供了 cluster 和 worker Compose 示例。

Heym 当前处于 1.0 之前的发布系列。请关注版本徽标和发布版本以获取更新。部署指南和安全策略提供了运维配置参考。


扩展 Heym

将 Heym 连接到团队已在使用的系统。可选择内置集成、HTTP API、MCP、可复用技能、插件或自定义节点,将工具和数据引入运行时。

扩展方式最适合工作方式
HTTP APIAPI 和内部服务使用 HTTP 节点配置请求、标头、身份验证和表达式。
插件可安装的节点类型和触发器添加由操作员安装、包含运行时处理程序和编辑器架构的包。请参阅插件编写指南。
自定义节点产品级工作流步骤和集成添加带有编辑器配置、执行行为和架构元数据的类型化节点。
Agent 技能可移植的 Agent 能力将 SKILL.md 文件和可选的 Python 工具附加到 Agent 节点,或使用 AI Build 生成它们。
MCP外部工具和 AI 客户端Agent 节点可使用 MCP 服务,Heym 工作流也可作为 MCP 工具对外提供。
工作流作为工具可复用的自动化通过 REST、SSE、Portal 聊天或 MCP 调用工作流,无需重复实现逻辑。
内置集成和节点库
用途代表性节点和连接
沟通Slack、Discord、Telegram,以及适用于 Gmail 和 Outlook 等邮件服务的 SMTP/IMAP 邮件
开发者工具和生产力GitHub、Jira、Linear、Notion、Google Drive、Google Sheets、Grist 和 Sentry
数据、队列和存储BigQuery、ClickHouse、Supabase、Redis、RabbitMQ、Amazon S3、Heym Data Tables 和 Drive
知识使用 Qdrant 或 PostgreSQL/pgvector 的 RAG,以及每个 Agent 的持久记忆
API 和浏览器HTTP、WebSocket Trigger/Send、MCP Call、Crawler 和 Playwright

节点库将 Agent 与确定性逻辑、触发器、数据和输出结合起来:

类别节点
触发器Input(Webhook)、Cron、Slack、Discord、Telegram、IMAP、WebSocket、File Upload、Heym 事件、RabbitMQ Receive、Plugin Trigger
AILLM、Agent、RAG、Codex、OpenCode Go
逻辑Condition、Switch、Loop、Merge
数据Set、Variable、DataTable、Execute(子工作流)、Converter
输出和实用工具Output、Chart Output、JSON/HTML Output Mapper、Wait、Console Log、Error Handler、Throw Error、Disable Node、Enable Node、Sticky Note

Heym Drive 可存储上传和生成的文件,并提供公开或受密码保护的分享链接、团队共享,以及批量 ZIP、分享和删除操作。请参阅 Drive。

有关操作、凭据和设置,请参阅节点参考和集成指南。

MCP(Model Context Protocol)

作为客户端: Agent 节点可通过 SSE、Streamable HTTP 或 stdio,发现并调用已配置 MCP 服务中的工具。如果工作流定义了调用,MCP Call 节点会直接调用所选工具。

作为服务端: 将 Heym 工作流发布为 /api/mcp/sse 上的工具,供 Claude Desktop、Cursor 和其他 MCP 客户端使用。请参阅 MCP 配置。

技能系统

技能是可移植的能力包,由一个 SKILL.md 指令文件以及可选的 Python 工具和资源组成。将 .zip 或 .md 拖到 Agent 节点上,或使用 AI Build 通过聊天起草并迭代技能。可在工作流和团队间重复使用并共享这些技能。


构建和编排

用于构建和检查 Heym 运行时执行过程的动画画布
实时协作

与团队一起打开同一个工作流并协同编辑。画布左上角会以头像显示所有成员,指针以每个人各自的颜色移动,编辑内容会实时同步到所有已打开的画布。点击头像即可跟随查看该成员的视图,包括他们打开的对话框和启动的运行;开启麦克风后,还可以直接通过浏览器通话。

AI 助手

用文本或语音描述你想要的系统。助手会直接在编辑器中生成节点和边,供你检查并完善生成的工作流。

如果工作流中已有 Agent 技能,助手只会将每项技能的 SKILL.md 发送到构建器上下文中。大型 .py 文件和二进制附件不会加入提示词,因此即使画布上加载了复杂技能,工作流编辑也能保持可靠。

AI 助手构建工作流的动画
AI 技能构建器

在 Agent 节点的 Skills 区域中,使用 AI Build 创建新技能,或点击行内的闪光图标操作来修改现有技能。模态窗口会实时展示聊天对话,预览生成的 SKILL.md 和 .py 文件,并通过与手动上传技能相同的 ZIP 导入流程将它们保存回来。

多 Agent 编排

以可视化方式构建编排器/子 Agent 流水线。一个 Agent 将任务委派给具名子 Agent 或子工作流,并将其结果汇总为共享响应。为每个 Agent 配置推理力度和温度。

多 Agent 编排动画
内置 RAG 流水线

将 PDF、Markdown、CSV 或 JSON 上传到由 Qdrant 或 PostgreSQL/pgvector 提供支持的托管向量存储。在工作流中接入 RAG 节点进行语义搜索,并将检索到的上下文传递给 LLM 或 Agent 节点。

Input → RAG (search) → LLM (answer with context) → Output
持久化记忆

为 Agent 节点启用知识图谱,以便在多次运行中保留实体和关系。Heym 会将图谱上下文添加到 Agent 的提示词中,并在运行成功后于后台合并新事实。使用图谱编辑器查看和编辑记忆,或授予其他 Agent 只读或读写权限。请参阅Agent 持久化记忆。

LLM 配置和批处理

为 Agent 执行配置推理力度、温度和备用模型。LLM 节点支持文本、视觉、结构化输出,以及适用端点的提供商原生 Batch API 模式,并提供实时状态分支和逐项结果。当 Agent 消息历史接近模型上下文限制时,系统会自动压缩,并在 Debug 日志、History 和 Traces 中显示压缩事件。请参阅 LLM 节点和 Agent 节点参考文档。


执行行为

并行执行

根据图依赖关系并发运行独立节点。使用 Merge 节点同步并行分支并合并其结果。图定义了执行顺序。请参阅并行执行。

浏览器自动化和自动修复

Playwright 节点支持可视化步骤、AI 生成的操作以及完整代码的浏览器自动化。启用 Auto Heal,即可在操作失败时利用页面上下文恢复选择器。有关配置,请参阅 Playwright 节点参考文档。

节点级错误处理

在节点上配置失败重试和错误分支:

Input ──→ HTTP ──→ Output
               └─── error ──→ Error Handler
  • 重试:自动重新运行失败的节点,并可配置尝试次数和退避策略
  • 错误分支:将失败路由到专用路径,而不是停止工作流
  • 错误上下文:在下游节点中访问 $nodeName.error

🔍 可观测性、评估与控制

执行历史和实时状态

查看已保存的输入、输出、节点结果、错误、耗时和执行日志。History 会将一次运行关联到其触发源;在集群中,还会显示执行该运行的实例。

实时查看任意生产运行

在 History 对话框或 Board 卡片内的运行列表中打开一个运行中条目,Heym 就会通过 SSE 将编辑器连接到该次确切的执行。此功能适用于由 Webhook、计划任务、聊天、MCP、集成或 Agentic Kanban Board 启动的运行。已完成 的节点会立即恢复显示;当前和待处理节点会持续闪烁;Debug 日志和 最终输出会逐步显示。离开编辑器只会断开观察连接,不会 取消生产运行。

LLM 跟踪记录

查看模型请求和响应、工具调用详情、每次调用的耗时、Token 用量、错误以及传递给模型的技能。结合工作流历史查看跟踪记录,了解模型行为与周边执行之间的关系。请参阅 Traces。

模型用量与成本可见性

Heym 会记录输入和输出令牌,并根据维护的模型定价数据计算 USD 成本。查看每条追踪的成本,并按模型和时间范围探索历史用量与支出。还可为自己的端点或费率添加自定义模型定价覆盖项。

成本可见性也与运维相关:告警可以在选定的时间窗口内评估令牌或 USD 支出。定价与用量视图请参阅追踪与成本分析。

分析与日志

在分析中查看各工作流的执行量、成功率、延迟和预计节省时间。检查运行时查看增量 Debug 日志,并通过日志标签页启用受访问控制的 Docker 日志查看与流式传输。

告警

针对四项指标,在时间窗口内设置阈值:错误数、运行时长(最大值、平均值或 p95)、LLM 令牌或 USD 支出,以及执行次数。可将告警限定为一个工作流,或所有你有权访问的工作流。

五步向导涵盖类型、范围、条件、响应和审核。用自然语言描述规则,即可通过 AI 填写表单,然后在保存前,根据历史时间窗口预览条件。默认情况下,告警触发一次后,会等待指标恢复,再次触发。

告警可以使用观测值、阈值、时间窗口和相关详情作为输入来运行工作流。使用现有的 Slack、电子邮件或 Telegram 节点发送通知。Chat 标签页可以说明有哪些告警,以及某个告警触发的原因。请参阅告警。

评估:测试、比较、改进

创建包含系统提示词、测试输入和预期输出的套件。使用多个模型运行相同用例,并重复运行以比较响应。检查评分、实际输出与预期输出、延迟、令牌用量以及保存的运行历史。

利用评估结果指导提示词修改、生成更多测试数据,或请求 AI 辅助修订提示词。结合执行追踪和 Workflow Analyzer 报告,改进你所运行的系统。请参阅评估和工作流分析。

人机协作(HITL)

Agent 审核检查点将人工审批纳入执行流程。当 Agent 请求审核时,Heym 会保存执行快照,并将运行标记为待处理。Agent 的 review 分支可以将审核链接和摘要发送到 Slack、电子邮件或其他通知流程。

审核者可以接受、编辑并继续或拒绝。Heym 会从已保存的快照恢复运行,并将审核决定和审核后的文本提供给下游节点。Agent 可以在同一次运行期间请求更多检查点。请参阅人机协作。

防护机制与访问控制

为 LLM 和 Agent 输入消息配置基于类别的多语言防护机制。检查会在调用模型前运行,并通过工作流的错误处理路径处理违规情况。

管理加密凭据和团队共享,使用具有范围限制的执行令牌,配置工作流身份验证和速率限制,并连接 OIDC 身份提供商以实现 SSO。请参阅防护机制、团队、凭据共享、SSO和安全。

OpenTelemetry 追踪

通过 OTLP/HTTP 将每次工作流运行的根跨度、每个节点的子跨度以及 Agent 工具跨度(heym.agent.tool.execute)导出到 Jaeger、Grafana Tempo、Honeycomb、Datadog 或任何 OpenTelemetry 后端。跨度包含工作流 ID、节点类型、状态、耗时、大模型令牌用量以及工具身份/状态,并通过 W3C 跟踪上下文在入站 Webhook、出站 HTTP 和子工作流之间传递。使用 HEYM_OTEL_* 环境变量启用追踪,并在 Settings → Observability 下查看状态。配置和跨度详情请参阅 OpenTelemetry Tracing。


部署和调用工作流

同一运行时可为用户、后端服务和外部 Agent 提供服务。根据系统的使用方式选择接口:

接口端点或入口用途
RESTPOST /api/workflows/{workflow_id}/execute从应用程序或 HTTP Webhook 调用工作流。
SSEPOST /api/workflows/{workflow_id}/execute/stream向客户端流式传输执行进度和节点事件。
MCP server/api/mcp/sse将工作流发布为供 MCP 客户端使用的工具。
Portal/chat/{slug}为用户提供由工作流驱动的聊天界面。
DashboardDashboard 选项卡运行由工作流驱动的小组件,生成图表和运营视图。
BoardBoard 选项卡将工作流链作为持久化任务运行,并保留卡片上下文和历史记录。
Schedules and eventsCron 和集成触发器响应时间、消息、上传内容或平台事件执行。

编辑器中的 Run with cURL 对话框会生成 REST 或 SSE 命令,其中包含逐节点启动消息和实时事件输出。有关身份验证、请求正文和事件格式,请参阅 Webhooks 和 SSE Streaming。

Portal

在 /chat/{slug} 创建面向公众的聊天界面,支持可选的逐用户身份验证、流式响应、文件上传和多轮对话历史记录。直接通过工作流构建内部工具和面向客户的聊天界面。请参阅 Portal。

由工作流驱动的仪表盘

每个自定义仪表盘小组件都由其专属的隐藏式 Heym 工作流提供支持。通过工作流逻辑获取、转换、检索或生成数据,并在仪表盘中将结果显示为图表。请参阅 Dashboard。


📝 表达式 DSL

使用简洁的语法引用并转换节点之间的数据:

$input.text                         // Trigger input
$nodeName.field                     // Any upstream node output
$global.variableName                // Persistent global variable
$now.format("YYYY-MM-DD HH:mm")    // Date/time formatting
$UUID                               // Random unique ID
$range(1, 10)                       // Generate number range
$input.items.filter("item.active")  // Array filtering
$input.users.map("item.email")      // Array mapping
$input.text.upper()                // String helpers

在受支持的节点字段中使用表达式,包括提示词、HTTP 标头、条件、电子邮件正文和 Redis 键。请参阅表达式 DSL 参考。


🏗️ 技术栈

层技术
前端Vue.js 3 + TypeScript(严格模式)+ Vite + Bun
UI 组件Shadcn Vue + Tailwind CSS
画布Vue Flow
状态管理Pinia
后端Python 3.11+ + FastAPI + UV
数据库PostgreSQL 16 + SQLAlchemy 2.0(异步)
身份验证JWT(访问令牌 + 刷新令牌)、bcrypt、可选的 OpenID Connect SSO 登录

📁 项目结构

heym/
├── frontend/src/
│   ├── components/     # Canvas, Nodes, Panels, Credentials, Evals, MCP, Teams
│   ├── views/          # DashboardView, EditorView, ChatPortalView
│   ├── stores/         # Pinia (workflow, auth, folder)
│   ├── services/       # API clients
│   └── docs/content/   # In-app documentation (Markdown)
├── backend/
│   ├── app/
│   │   ├── api/        # Routes: workflows, auth, mcp, portal, evals, traces
│   │   ├── models/     # Pydantic schemas
│   │   ├── services/   # Executor, node handlers, LLM, RAG, agent engine
│   │   └── db/         # SQLAlchemy models and database configuration
│   ├── tests/          # Backend unit tests
│   └── alembic/        # Database migrations
├── docker-compose.yml
├── run.sh              # Local development launcher
├── check.sh            # Project validation script
└── deploy.sh           # Docker production deployer

⚙️ 环境变量

变量描述默认值
DATABASE_URL可选的数据库连接字符串覆盖值根据 POSTGRES_* 自动构建
POSTGRES_HOSTDATABASE_URL 为空时使用的数据库主机localhost
POSTGRES_PORTDATABASE_URL 为空时使用的数据库端口6543
SECRET_KEYJWT 签名密钥未设置
ENCRYPTION_KEY加密静态存储的凭据。启动时必需;使用 python -c "import secrets; print(secrets.token_hex(32))" 生成未设置
BACKEND_PORT后端服务端口10105
FRONTEND_PORT前端服务端口4017
ALLOW_REGISTER启用用户注册true
REQUEST_BODY_MAX_SIZE_MB后端 HTTP 请求正文的最大大小;默认为 100,比 FILE_MAX_SIZE_MB 大 1 MB,以容纳 multipart 开销100
HEYM_OTEL_ENABLED为工作流、节点和 Agent 工具执行启用 OpenTelemetry 跟踪false
HEYM_OTEL_EXPORTER_OTLP_ENDPOINTOTLP/HTTP 基础端点,例如 http://collector:4318(跨度会提交到 /v1/traces)未设置
HEYM_OTEL_EXPORTER_OTLP_HEADERS用于身份验证的逗号分隔 key=value 导出器请求头未设置
HEYM_OTEL_SERVICE_NAMEservice.name 资源属性heym
HEYM_OTEL_TRACES_SAMPLER_RATIO基于父级的头部采样比例(0.0–1.0)1.0
HEYM_OTEL_CAPTURE_NODE_IO将截断后的节点输入/输出附加到节点跨度false
HEYM_MCP_ALLOW_PRIVATE_URLS允许 MCP HTTP/SSE 服务使用私有/环回/元数据地址(关闭 SSRF 防护)。在托管/多租户环境中请保持为 falsefalse

完整参考请参阅 ENVIRONMENT-VARIABLES.md。


🛠️ 开发

先决条件: Bun ≥ 1.0 · Python ≥ 3.11 · UV · Docker

# Start all services (recommended)
./run.sh
./run.sh --no-debug    # INFO logging instead of DEBUG

或者手动启动各项服务:

# Start database only
docker-compose up -d postgres

# Backend
cd backend && uv sync && uv run alembic upgrade head
uv run uvicorn app.main:app --reload --port 10105

# Frontend (separate terminal)
cd frontend && bun install && bun run dev

验证:

./check.sh    # Frontend lint/typecheck; backend format, lint, and tests
# If SECRET_KEY is not exported locally:
SECRET_KEY=test-secret-key-for-tests-only-32-bytes ./check.sh

# Frontend unit and browser tests run separately
(cd frontend && bun run test)
./run_e2e.sh

或者分别运行:

(cd frontend && bun run lint && bun run typecheck && bun run test)
(cd backend && uv run ruff check . && uv run ruff format .)

每个拉取请求都会运行 PR 检查工作流:文件行数限制检查、前端 ESLint、TypeScript 严格类型检查、前端 Vitest 单元测试、生产构建、后端 Ruff 格式检查和 lint、后端单元测试套件,以及针对实时 Postgres 服务运行的 Playwright E2E 测试。

后端会在后端服务的 /docs 发布 OpenAPI 参考(本地开发中的端口为 10105)。


文档与完整功能集

所有功能及其简短说明的完整列表,请参阅 完整功能集。其中涵盖入门指南、每种节点类型、参考主题(表达式 DSL、工作流结构、实时画布协作、webhook、SSE 流式传输、AI 助手、与文档对话、Portal、安全等),以及所有仪表板标签页(工作流、模板、变量、聊天、凭据、向量存储、MCP、跟踪、警报、分析、评估、团队、日志等)。

如需基于当前文章内容提问,请使用文档页眉中的 与文档对话。按 Ctrl+K 可通过命令面板打开搜索、导航和工作流操作。

Heym 完整功能集动态展示

📄 许可证

Heym 采用可查看源代码的方式,遵循 MIT 许可证,并附带 Commons Clause 条款。你可以根据这些条款使用、修改、分发和自托管。对于 Commons Clause 限制的权利,可提供商业授权,包括销售其价值主要源自 Heym 的产品或服务。完整条款请参阅这两个许可证文件。


💬 社区

加入我们的 Discord,与社区交流、提问、分享工作流并了解最新动态:

Discord


🧩 分享模板

想要为社区发布工作流模板?直接通过 模板页面 提交:打开对话框,粘贴工作流 DSL,然后发送审核。无需提交拉取请求。

如果你更愿意通过代码贡献,请先 发起讨论,这样我们可以在你开启拉取请求之前一起讨论。


⭐ 关注最新动态

工作流创建演示

Heym 面向希望掌控一切的开发者,以及需要可靠生产部署路径的企业团队。欢迎在 GitHub 上为 Heym 点亮 ⭐,关注版本发布,并帮助更多开发者发现它。


🏢 企业版

商业许可、部署服务和专业支持,可帮助团队在私有基础设施上构建和运行 Agent 系统。

我们提供:

  • 面向你的产品或服务的商业许可
  • 部署规划、架构评审和基础设施支持
  • 定制集成和功能开发
  • 企业安全与身份管理要求方面的协助
  • 入门指导、培训、故障排查和解决方案支持
  • 优先支持和 SLA 协议

核心运行时功能,包括执行历史记录、可观测性、评估、团队控制、SSO、负载分配和 Portal,均属于可自托管产品的一部分。

在可自托管的 Heym 运行时中构建和运行系统所需的核心功能

📧 联系: [email protected]


倾注 ❤️,使用 Vue.js、FastAPI 和大量 LLM 令牌构建。

⭐ 为此仓库点星 · 🐛 报告错误 · 💡 请求功能

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。