关于 HEYM
HEYM 是一个可自托管的 AI 工作流自动化平台,提供可视化画布、Agent、RAG、人工审核与可观测性功能。适合需要在自有基础设施上构建和运行 Agent 系统的团队。工作流可通过 /api/mcp/sse 作为 MCP 服务暴露。
主要功能
- 01可视化画布与 AI 辅助生成工作流
- 02多 Agent 编排与子工作流调用
- 03RAG 与按 Agent 的知识图谱记忆
- 04人工审核检查点与执行历史
- 05执行链路、token 与模型成本追踪
- 06REST、SSE 与 MCP 多种调用方式
适用场景
- 01在自有服务器上运行多 Agent 业务流程
- 02为审批类任务加入人工审核步骤
- 03追踪 LLM 调用成本与延迟
MCP 相关
HEYM 可将工作流发布为 MCP 工具,通过 /api/mcp/sse 端点供 Claude Desktop、Cursor 等 MCP 客户端调用。同时它也通过 MCP Call 节点调用外部 MCP 服务。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
http://localhost:4017/api/mcp/sseclaude mcp add --transport http heym http://localhost:4017/api/mcp/sse{"mcpServers":{"heym":{"type":"http","url":"http://localhost:4017/api/mcp/sse"}}}在 Cursor 中打开{"servers":{"heym":{"type":"http","url":"http://localhost:4017/api/mcp/sse"}}}在 VS Code 中打开{"mcpServers":{"heym":{"type":"http","url":"http://localhost:4017/api/mcp/sse"}}}{"mcpServers":{"heym":{"serverUrl":"http://localhost:4017/api/mcp/sse"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Heym
构建 Agentic 系统。自信地运行它们。
Heym 是一款可自托管的运行时和平台,可在你的基础设施上构建、编排、运行、观测、评估和控制 Agentic 系统。
通过可视化方式编排 Agent 和确定性工作流,或借助 AI 生成它们。连接模型、工具、MCP、公司知识和内部系统,并通过审批检查点、重试以及执行和模型成本可视化来管理它们。
本地试用: git clone https://github.com/heymrun/heym.git && cd heym && ./run.sh
快速开始 ·
部署并调用工作流 ·
扩展 Heym ·
安全
什么是 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 任务和由工作流驱动的仪表板,提供调用系统和使用其结果的方式。 |

✨ 核心功能
构建: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 中,支持团队共享和共享链接。
🎬 产品导览
以一场电子商务销售活动为例,完整展示从 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 服务:将工作流发布为工具,供 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 API | API 和内部服务 | 使用 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 |
| AI | LLM、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 通过聊天起草并迭代技能。可在工作流和团队间重复使用并共享这些技能。
构建和编排
实时协作
与团队一起打开同一个工作流并协同编辑。画布左上角会以头像显示所有成员,指针以每个人各自的颜色移动,编辑内容会实时同步到所有已打开的画布。点击头像即可跟随查看该成员的视图,包括他们打开的对话框和启动的运行;开启麦克风后,还可以直接通过浏览器通话。
AI 助手
用文本或语音描述你想要的系统。助手会直接在编辑器中生成节点和边,供你检查并完善生成的工作流。
如果工作流中已有 Agent 技能,助手只会将每项技能的 SKILL.md 发送到构建器上下文中。大型 .py 文件和二进制附件不会加入提示词,因此即使画布上加载了复杂技能,工作流编辑也能保持可靠。
AI 技能构建器
在 Agent 节点的 Skills 区域中,使用 AI Build 创建新技能,或点击行内的闪光图标操作来修改现有技能。模态窗口会实时展示聊天对话,预览生成的 SKILL.md 和 .py 文件,并通过与手动上传技能相同的 ZIP 导入流程将它们保存回来。
多 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 提供服务。根据系统的使用方式选择接口:
| 接口 | 端点或入口 | 用途 |
|---|---|---|
| REST | POST /api/workflows/{workflow_id}/execute | 从应用程序或 HTTP Webhook 调用工作流。 |
| SSE | POST /api/workflows/{workflow_id}/execute/stream | 向客户端流式传输执行进度和节点事件。 |
| MCP server | /api/mcp/sse | 将工作流发布为供 MCP 客户端使用的工具。 |
| Portal | /chat/{slug} | 为用户提供由工作流驱动的聊天界面。 |
| Dashboard | Dashboard 选项卡 | 运行由工作流驱动的小组件,生成图表和运营视图。 |
| Board | Board 选项卡 | 将工作流链作为持久化任务运行,并保留卡片上下文和历史记录。 |
| Schedules and events | Cron 和集成触发器 | 响应时间、消息、上传内容或平台事件执行。 |
编辑器中的 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_HOST | DATABASE_URL 为空时使用的数据库主机 | localhost |
POSTGRES_PORT | DATABASE_URL 为空时使用的数据库端口 | 6543 |
SECRET_KEY | JWT 签名密钥 | 未设置 |
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_ENDPOINT | OTLP/HTTP 基础端点,例如 http://collector:4318(跨度会提交到 /v1/traces) | 未设置 |
HEYM_OTEL_EXPORTER_OTLP_HEADERS | 用于身份验证的逗号分隔 key=value 导出器请求头 | 未设置 |
HEYM_OTEL_SERVICE_NAME | service.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 防护)。在托管/多租户环境中请保持为 false | false |
完整参考请参阅 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 采用可查看源代码的方式,遵循 MIT 许可证,并附带 Commons Clause 条款。你可以根据这些条款使用、修改、分发和自托管。对于 Commons Clause 限制的权利,可提供商业授权,包括销售其价值主要源自 Heym 的产品或服务。完整条款请参阅这两个许可证文件。
💬 社区
加入我们的 Discord,与社区交流、提问、分享工作流并了解最新动态:
🧩 分享模板
想要为社区发布工作流模板?直接通过 模板页面 提交:打开对话框,粘贴工作流 DSL,然后发送审核。无需提交拉取请求。
如果你更愿意通过代码贡献,请先 发起讨论,这样我们可以在你开启拉取请求之前一起讨论。
⭐ 关注最新动态

Heym 面向希望掌控一切的开发者,以及需要可靠生产部署路径的企业团队。欢迎在 GitHub 上为 Heym 点亮 ⭐,关注版本发布,并帮助更多开发者发现它。
🏢 企业版
商业许可、部署服务和专业支持,可帮助团队在私有基础设施上构建和运行 Agent 系统。
我们提供:
- 面向你的产品或服务的商业许可
- 部署规划、架构评审和基础设施支持
- 定制集成和功能开发
- 企业安全与身份管理要求方面的协助
- 入门指导、培训、故障排查和解决方案支持
- 优先支持和 SLA 协议
核心运行时功能,包括执行历史记录、可观测性、评估、团队控制、SSO、负载分配和 Portal,均属于可自托管产品的一部分。
📧 联系: [email protected]
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。