HomeRail:语音驱动的家庭 DAG Agent 运行时,19天 693⭐

lxiol

从单次 Chat 到可审计复用的 DAG 工作流,HomeRail 试图把 Agent 编排搬进你家 NAS。

一句话定位

HomeRail 是一个 语音优先、本地部署的 Agent 编排运行时,把一次性的 Agent 对话变成可审计、可重放、可复用的 DAG 工作流。名字拆开就是它的全部野心:Home(跑在你的 NAS/家庭服务器上,服务家人)+ Rail(DAG 轨道形状,Agent 工作沿边流动而非汇集在单一聊天里)。

1
语音输入 → Manager Agent → DAG 计划 → Node → Docker Worker → 生成式 UI 输出

为什么不是又一个 Chat Agent?

HomeRail 的核心设计赌注是:人的注意力是自动化中最稀缺的资源。所以它做成一个”倒漏斗”——窄的一头对着人,宽的一头对着机器:

维度 Chat Agent(Claude Code / Codex) HomeRail
交互模型 单线程对话,上下文膨胀 DAG 多节点并行,每次只传必要 handoff
可审计性 聊天记录,难复现 DAG + scorecard + eval-run + replay
模型策略 一个模型扛所有 聪明模型做计划/审查,便宜模型做执行
运行位置 本地终端 家庭数据中心(NAS / Homelab)
默认输入 文本 语音(中文默认)
输出 日志/文本 生成式 UI(渐进探索中)

现在能干什么(已实现)

1. DAG 运行时(最成熟)

多 Agent 编排,显式 handoff、每次运行工作区隔离、replay、scorecard、run evaluation。核心概念:

1
Plan → Implement → Test → Review → Summarize

每个节点在自己的上下文窗口中运行,上下文不会膨胀成一条巨大的消息线。因为节点独立,模板可以通过 provider / model 映射让不同节点用不同模型。

2. CLI hr — 主力操作入口

1
2
3
4
5
6
7
8
hr start                 # 启动 Manager + Node
hr doctor # 检查可达性/模型设置
hr run <template> # 运行 DAG
hr dag supervise <run_id> # 实时监控手交流程
hr scorecard <run_id> # 评估评分卡
hr eval-run <run_id> # 运行评估
hr replay <run_id> # 完全重放
hr smoke dag # 全链路冒烟测试

3. 语音表面

内置 ASR / TTS / VAD 的 Voice Surface Contract,默认中文,通过桌面语音 Shell 提供服务。Agent 在执行前会跨多轮收集意图,消除歧义。Codex harness 是目前唯一能自动从推理流合成语音 commentary 通道的路径——用户能在等待时听到进度。

4. Docker Worker

Manager + Node 作为本地服务运行;Node 用 Docker 为每个 DAG 节点分配独立的 Worker 容器,共享 workspace/<run_id>

5. Hand-this-README-to-an-agent

README 写了”双重用途”——人可以读,Agent 也可以直接拿着它安装、配置、验证 HomeRail。这是目前见到的最清晰的 “agent-readable runbook” 设计。

架构一览

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌─────────────┐
│ agent-ui │ ← 浏览器 UI(语音 + 生成式 UI 渲染)
└──────┬──────┘

┌──────▼──────────────────────────────────────┐
│ homerail_manager │
│ Manager 服务 + DAG 协调器 │
│ 持有语音表面 + 生成式 UI 契约 │
└──────┬──────────────────────────────────────┘

┌──────▼──────────┐ ┌───────────────────────┐
│ homerail_node │───▶│ Docker Worker 容器 │
│ Node 服务 │ │ (每个 DAG 节点一个) │
└─────────────────┘ └───────────────────────┘

┌──────────────────────┴──────────────┐
│ homerail_worker │
│ Claude Agent SDK / 兼容后端适配器 │
└─────────────────────────────────────┘

homerail_protocol 是所有包之间的消息与校验契约的单一事实来源;homerail_cli 是统一的入口 CLI。

快速上手

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 前置条件:Node 20+、Docker、Claude Agent SDK 兼容端点
npm run install:all && npm run build
cd homerail_cli && npm link && cd ..

# 启动 Manager + Node
hr start

# 健康检查
hr doctor

# 跑一个离线拓扑检查(无需模型)
hr run assets/orchestrations/public-two-node.yaml.template \
--profile offline-deterministic \
--prompt "Draft a short checklist for a backend release"

# 完整冒烟测试(需要配置模型)
hr model configure <provider> --model-name <id> --api-key-stdin
hr smoke dag

编程 Agent 驱动 CLI:第二种用法

除了对着 Manager Agent 说话,还可以让你已有的编程 Agent(Claude Code / Codex)直接驱动 hr CLI

1
2
you ↔ coding agent ↔ hr CLI ↔ Manager service ↔ DAG nodes
(planning) (coordination) (execution)

编程 Agent 接管”规划”角色:读模板、改参数、跑 DAG、审查结果、迭代。全程走 DAG 审计和评估,不经过 Manager Agent 层。这是调试和调优 DAG 时的自然循环。

DAG 模式库

内置可复用的控制流模式:

1
2
3
hr patterns list        # 列出所有模式
hr patterns show quorum # 查看 quorum 模式
hr patterns instantiate quorum --set workflow_id=release-quorum --set threshold=2

Manager Agent 每轮自动发现 ${HOMERAIL_HOME}/skills 下的 SKILL.md 目录并安装缺失的内置 homerail-* 技能。

为什么值得关注

  1. 设计哲学正确 — “人的注意力是最稀缺的资源” 这条洞察让所有设计决策有了锚点:语音优先进、生成式 UI 出、DAG 不膨胀上下文、聪明模型只做关键决策
  2. 本地优先 + 家庭数据中心 — 不依赖云服务,跑在自己的 NAS/HomeLab 上
  3. 可审计性突围 — Chat Agent 最大的痛点就是”刚才发生了什么?” DAG + replay + scorecard 是系统性的回答
  4. Agent-readable 设计 — README 即是 runbook,Agent 可以直接拿着它自我部署
  5. MIT 开源,19 天 693⭐ — 虽是新项目但社区认可度已经相当高

潜在风险

  • 项目极新(2026-07-07 创建),API 和契约可能频繁变化
  • 生成式 UI 仍在探索,目前只是一个方向声明
  • 中文语音默认是双刃剑——对中文用户友好,但英文 ASR 支持需自己适配
  • 依赖 Docker 排除了不想装 Docker 的用户
  • Windows 支持有限(CLI 只兼容 Git Bash / POSIX shell)

GitHub: xiaotianfotos/homerail | 693⭐ | MIT | TypeScript

如果把 Agent 编排比作铁路系统,HomeRail 想当的就是你家客厅里的那个调度中心——语音进、UI 出、DAG 在中间跑。

  • 标题: HomeRail:语音驱动的家庭 DAG Agent 运行时,19天 693⭐
  • 作者: lxiol
  • 创建于 : 2026-07-26 00:00:00
  • 更新于 : 2026-07-26 23:04:01
  • 链接: https://blog.lxiol.cn/2026/07/26/homerail-voice-first-dag-agent-runtime/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。