Agent 上线第一周最常见的死法,不是模型答错,是进程没了。
Python 进程一重启,跑了四十分钟的多步任务连上下文一起消失;想插一个人工审批,就得让某个进程挂着等两天。Orkes 拿 Netflix 2016 年开源的 Conductor 来补这个洞:Agent 定义先编译成一张工作流,交给服务端执行,worker 崩了换一台接着跑。2026 年 4 月,它刚拿了 6000 万美元 B 轮。
一、从 Netflix 的微服务引擎,变成 Agent 执行层
Conductor 最早是 Netflix 撑全球扩张写的微服务编排引擎,2016 年开源。转折在 2023 年 12 月:Netflix 不再维护开源版,Orkes 接手并 fork 出 conductor-oss/conductor。今天这个仓库 32,365 星、Apache-2.0、昨天还在推代码,README 标题已经从 microservices orchestrator 改成「Durable Execution for Workflows and Agents」——定位换了,内核没换:一次执行拆成任务节点,状态存服务端,算到第几步必须记着。
Orkes 由 Conductor 原班架构师在 2020 年成立,2022 年 stealth 拿 930 万美元,2024 年 A 轮 2000 万,2026 年 4 月 B 轮 6000 万(AVP 领投、Vertex Ventures US 参投)。官方口径:客户数自 A 轮翻了三倍,3000 家企业、数百万次安装。名单里有 LinkedIn、Twilio、Quest Diagnostics、United Wholesale Mortgage、Woodside Energy、Naveo Commerce;Conductor 的老用户还有 JPMorgan、Tesla、Atlassian、Oracle、Amex、GE Healthcare。Netflix 自己也在用,官方说内部用量近几个月涨了五倍。
二、它补的是哪个洞
自己写 Agent 的人一般会踩三个坑,Conductor 是照着这三个坑设计的。
第一,Agent 活在进程里。 多数框架默认内存执行,进程一死,跑到第 12 轮的工具调用全没了。checkpoint 能救一部分,存储和恢复逻辑得自己写。
第二,checkpoint 不等于持久化执行。 存了状态,不代表能跨机器接着跑,重试、超时、fan-out、补偿也没人替你管。
第三,人审最难受。 「等主管批一下」在工程上就是「一个进程挂两天」,会超时、会被 OOM、会在部署时被 kill。
答案很直接:执行搬到服务端,本地只留定义和 worker。
三、两条路:编译式 Agent 和自适应图
路线一:编译,不解释。 用 conductor-agent-sdk(Python / TypeScript / C#,MIT)写 Agent,工具用 @tool 装饰;注册时 SDK 把定义编译成静态 workflow JSON。之后每个工具调用变成 task,worker 长轮询领走;每个回合的模型调用是内置 LLM task,支持 15 家以上供应商;@tool(approval_required=True) 变成 Human Task,执行停在服务端等表单。官方 FAQ 说得很直白:一次执行可以为了人审、外部信号或定时器暂停几个月,恢复时从原位置继续,因为内存里没有状态可丢。
路线二:自适应图。 让 LLM 在运行时决定下一步:MCP 发现工具、推理、挑工具、执行,循环到完成。区别是这些选择(循环、分支、fan-out、审批、重试、取消)都落成可检查的持久化节点,而不是散在一个 Python while 循环里。
配套的还有:MCP Gateway 把内部 API 变成工具;事件源支持 cron、Kafka、SQS、AMQP、webhook、数据库变更,每次触发都是有完整历史的 execution;每个执行有 execution ID,任意机器上的任意进程都能拿它查状态、批准、暂停、恢复、取消。
四、上手
最省事是先看托管版:Orkes 的 Developer Playground 免费,注册就能画流程、跑 Agent,不用装东西。
本地起一套是两条命令的事:
npm install -g @conductor-oss/conductor-cli
conductor server start # http://localhost:8080,自带 ui-next
或者直接跑容器(UI 在 5000,API 在 8080):
docker run -p 5000:5000 -p 8080:8080 conductoross/conductor:next
再装 Agent SDK,五行跑起来:
from conductor.ai.agents import Agent, AgentRuntime, tool
@tool
def get_weather(city: str) -> str:
"""查天气"""
return f"{city} 晴,22 度"
agent = Agent(name="weatherbot", model="openai/gpt-4o", tools=[get_weather])
with AgentRuntime() as runtime:
runtime.run(agent, "北京今天天气怎么样").print_result()
有个坑必须提醒:网上大量教程还在教你装 agentspan、跑 agentspan server start。AgentSpan 已在 2026 年 8 月 17 日并进 Orkes Conductor,原仓库归档只读,主线换成 conductor-agent-sdk。老包还能装,但别拿旧文档当准。
五、实话
1)它是执行引擎,不是画布工具。 没有拖拽界面,得写代码、懂 task 模型和 workflow DSL。想让业务同学点鼠标的,去看 Camunda 那类 BPMN 路线。
2)确定性是拿灵活性换的。 编译式 Agent 不能跑到一半改流程,只能靠 Plan-Execute 在计划阶段把话说清楚;自适应图给了自由,治理成本又回来。任务越探索,约束越难受。
3)开源版和企业版差在治理。 RBAC、SSO、审计、BYOK、跨区容灾、99.99% SLA 都在商业版。Apache-2.0 给的是引擎,不是运维团队。
4)价格不透明。 官网只写 Playground 免费、企业版 custom;第三方目录上的「825 美元/月」是旧价,真要买得让销售报价。
5)和 Temporal 不是一类东西。 Temporal 是代码即工作流,if/else 写在 SDK 里;Conductor 是 JSON 图加事件驱动,业务方能在 UI 里看到执行卡在哪一步。选哪个,取决于你更信代码还是更信图。
一句话:如果你已经有微服务、消息队列和一堆内部 API,想让 Agent 真进生产流程、还要人审和审计,Conductor + Orkes 是目前少见的「老引擎 + 新 Agent 层」组合;如果只是想让 Agent 帮你写个脚本,这套东西太重了。