Yukta
Orchestrate multi-step workflows with confidence. Define once, execute anywhere, integrate with AI.
     
______________________________________________________________________
问题
您每天都在处理工作流程:
- 开发人员:“格式化后运行测试,但如果linting失败则跳过”
- DevOps工程师:“构建→ Test → 部署,错误时回滚”
- 数据管道:“验证数据→ 变换→ 加载,超时重试“
- AI团队:“运行检查、获取反馈、自动修复、重新运行”
今天,你用以下方式解决这个问题 SHELL脚本 🐚. 明天,你将在凌晨3点调试它们。
#!/bin/bash
./gradlew format || exit 1
./gradlew lint || { echo "lint failed"; slack-notify; exit 1; }
./gradlew test || deploy-rollback问题:脚本是硬编码的,脆弱的,容易出错,并且不与现代人工智能工具集成。
______________________________________________________________________
解决方案:Yukta
汤田 是一个 工作流编排器 它处理了复杂性,所以你不必这么做。
这样想:
| 方法 | 问题 | Yukta解决方案 |
|---|---|---|
| 🐚 Shell脚本 | 难以阅读,容易出错,不可重用 | 📋 JSON DAG(可视化、可重用、经过验证) |
| 🔗 手动编排 | “该步骤运行了吗?什么失败了?” | 🎯 通过REST API+SSE的实时状态 |
| ⚙️ 自定义代码 | 构建需要数周时间,难以维护 | 🔌 16个内置插件,无需代码 |
| 🤖 AI集成 | Webhooks、轮询、手动重试 | 🧠 原生MCP支持,即时反馈 |
| 🚨 错误处理 | if [ $? -eq 0 ] (祝你好运)🌳 分支、重试、条件路由 |
______________________________________________________________________
为什么Yukta对你个人很重要
👨💼 项目经理/技术负责人
“停止批准损坏工作流的修补程序。定义一次,获得可见性,晚上睡觉。”
- 所有工作流程的单一真相来源(无部落知识)
- 实时仪表板(谁在运行什么,什么失败了,为什么)
- 审计追踪(合规、可追溯、无过错)
👨💻 开发者
“编写JSON,而不是bash。在编码时从AI获得即时反馈。”
- 凌晨3点没有shell脚本调试
- 工作流在本地、CI/CD和生产环境中运行——定义相同
- 当测试失败时,AI会自动修复您的代码(通过MCP集成)
- 测试驱动的工作流开发(反应堆流的StepVerifier)
👷 DevOps工程师
“部署一次,到处运行。50MB可执行文件,零操作开销。”
- 本机可执行文件(无JVM,无容器膨胀)
- 用于任何编排工具的REST API+MCP
- 内置可观察性(无需外部监控;事件分批处理100@50ms)
- 可观察:每10秒心跳一次,结构化JSONL日志,实时DAG可视化
🏗️ 建筑师/CTO
“模块化、可测试、可扩展。编写一个插件,随处使用。”
- 干净的三层架构(插件→ 编排→ 运输)
- 16个内置插件,几分钟内即可自定义插件
- 经过实战测试的反应模式(Project Reactor、虚拟线程、\<100ms循环)
- 面向未来:任何通过MCP的AI代理,本地优先设计,无供应商锁定
______________________________________________________________________
它是如何工作的(The Pitch)
对于 开发人员:
{
"sessionId": "my-project",
"workflows": {
"quality-check": {
"description": "Format → Lint → Test",
"nodes": [
{ "nodeId": "format", "type": "PROCESS_EXECUTOR", "config": { "command": ["./gradlew", "spotlessCheck"] } },
{ "nodeId": "lint", "type": "PROCESS_EXECUTOR", "config": { "command": ["./gradlew", "checkstyleMain"] } },
{ "nodeId": "test", "type": "PROCESS_EXECUTOR", "config": { "command": ["./gradlew", "test"] } }
],
"edges": [
{ "source": "format", "target": "lint" },
{ "source": "lint", "target": "test" }
]
}
}
}就这样 没有脚本。不 if 声明。没有手动错误处理。只要描述一下流程,Yukta就会运行它。
对于 DevOps工程师:
# Trigger the workflow
curl -X POST http://localhost:8080/api/workflow/trigger \
-d '{ "sessionId": "my-project", "workflowId": "quality-check", "payload": {} }'
# Returns instantly with execution ID
{ "executionId": "550e8400-e29b-41d4-a716-446655440000" }
# Stream live status (Server-Sent Events)
curl http://localhost:8080/api/workflow/my-project/status/.../stream
# Real-time output:
# { "status": "RUNNING", "tasks": [{ "nodeId": "format", "status": "SUCCESS" }, ...] }
# { "status": "RUNNING", "tasks": [{ "nodeId": "lint", "status": "SUCCESS" }, ...] }
# { "status": "SUCCESS", "tasks": [...] }没有投票。没有webhooks。只需休息+SSE。
对于 AI团队 (任何MCP兼容代理):
# MCP Integration with any AI agent
# Supports: Claude Code, Claude API, and any agent implementing MCP
# Connection:
# AI Agent → MCP Protocol → Yukta (/sse endpoint)
# Capabilities: 13 MCP tools (create_session, trigger_workflow, get_status, etc.)
# Example with Claude Code (SessionStart hook):
# SessionStart → init_session.py → POST /api/config (via MCP)
# Stop → trigger_workflow.py → POST /api/workflow/trigger (via MCP)
# Example with Claude API (custom integration):
# Agent connects to http://localhost:8080/sse (MCP STATELESS protocol)
# Agent calls create_session tool
# Agent calls trigger_workflow tool
# Agent streams status in real-time (no polling)
# AI agent gets instant feedback:
# ✅ Tests passed → commit changes
# ❌ Tests failed → AI reads error, auto-fixes, retriesAI不会等待。它不投票。它通过MCP获得即时反馈并自我纠正。适用于任何支持MCP的AI。
______________________________________________________________________
三层(建筑师会喜欢这个)
┌─────────────────────────────────────┐
│ 3. Transport Layer │
│ REST API (16 endpoints) + MCP │
│ for humans and AI agents │
└──────────────┬──────────────────────┘
↓
┌─────────────────────────────────────┐
│ 2. Orchestration Layer │
│ DAG validator, compiler, executor │
│ Reactive (Mono/Flux), <100ms loops │
└──────────────┬──────────────────────┘
↓
┌─────────────────────────────────────┐
│ 1. Plugin Layer │
│ 16 composable, extensible plugins │
│ (TriggerPlugin, ProcessorPlugin, │
│ TerminalPlugin) │
└─────────────────────────────────────┘每一层都是独立的。 交换插件。更改执行。在任何地方集成。
______________________________________________________________________
是什么让Yukta与众不同
🎯 定义一次,随处执行
- 本地开发机器、CI/CD管道、AI代理回调
- 相同的JSON DAG,不同的执行上下文
⚡ 低于1000毫秒的反馈
- 无功无阻塞(项目反应堆)
- 用于I/O的虚拟线程
- 实时SSE流媒体
🧠 为AI打造
- MCP-本地集成(Claude Code、Claude API等)
- 即时反馈(无投票)
- 自校正工作流程
🔌 16个插件,无限组合
- PROCESS_EXECUTOR(运行任何操作系统命令)
- 分支机构(通过SpEL进行有条件路由)
- 映射器、过滤器、分流器、聚集器、回路、子工作流等
- 在几分钟内编写自定义插件
🛡️ 企业就绪
- 所有边界的输入验证(块注入、路径遍历)
- 会话隔离
- 结构化日志记录(JSONL,可搜索)
- 本地优先(无云供应商锁定)
📊 可观察对象
- 实时ControlBus(心跳、统计)
- 实时DAG可视化(web UI)
- 会话感知日志记录
______________________________________________________________________
真实世界的例子
示例1:CI/CD管道
Build → Test → [Decision] → Deploy (if success) OR Alert (if fail)定义一次。在GitHub Actions、GitLab CI、Jenkins或任何地方使用。
示例2:数据处理
Ingest → Validate → [Filter] → Transform → Load → Archive
↓ (on error)
→ Log Error → Send Alert视觉、可审计、可测试。没有意大利面条代码。
示例3:人工智能驱动开发
Format → Lint → Test
↑ ↓
← (if fail) ←
Any MCP-compatible AI agent auto-fixes and retriesAI从不等待。任何兼容MCP的代理都可以获得即时反馈和自我更正(Claude Code、Claude API或其他代理)。
______________________________________________________________________
⚡ 30秒快速启动(TL;DR)
只是想试试吗? 一个命令:
# 1. Download & run (native executable, no setup needed)
wget https://github.com/infenia/yukta/releases/download/v0.1.0/yukta-$(uname -s)-$(uname -m)
chmod +x yukta-*
./yukta-* &
# 2. Define a workflow (one curl, that's it)
curl -X POST http://localhost:8080/api/config \
-H "Content-Type: application/json" \
-d '{ "sessionId": "demo", "description": "Quick demo", "initiator": "me", "workflows": { "hello": { "description": "Echo", "nodes": [{ "nodeId": "echo", "type": "PROCESS_EXECUTOR", "config": { "command": ["echo", "Hello from Yukta!"] } }], "edges": [] } } }'
# 3. Run it
curl -X POST http://localhost:8080/api/workflow/trigger \
-d '{ "sessionId": "demo", "workflowId": "hello", "payload": {} }'
# 4. See it run (real-time status)
curl http://localhost:8080/api/workflow/demo/status/{executionId}完成。 这是一个工作流程编排器。准备好了吗?请继续阅读。↓
______________________________________________________________________
🚀 入门(选择你的道路)
选项1:MCP集成 (推荐用于AI驱动的工作流)
使用Yukta 任何与MCP兼容的AI代理 (Claude Code、Claude API或任何其他支持MCP的人工智能),用于即时、自动化的工作流程执行。
# 1. Install Yukta (native executable, ~50MB, no JVM needed)
wget https://github.com/infenia/yukta/releases/download/v0.1.0/yukta-linux-x64
chmod +x yukta-linux-x64
./yukta-linux-x64
# 2. Configure your AI agent to use Yukta via MCP
# For Claude Code, add to .claude/settings.json:
{
"mcpServers": {
"yukta": {
"command": "./yukta-linux-x64",
"args": ["--mcp"]
}
}
}
# For Claude API or other agents, use the MCP protocol
# Endpoint: http://localhost:8080/sse
# Protocol: STATELESS, ASYNC
# 3. Your AI agent now has Yukta tools:
# - create_session
# - trigger_workflow
# - get_workflow_status
# - stream_session_logs
# - get_workflow_execution_logs
# - list_plugins
# - get_plugin_details
# - get_control_bus_status
# ... and 5 more结果:AI代理自动运行工作流,检测故障,自我纠正。没有投票。没有webhooks。适用于任何兼容MCP的AI。
______________________________________________________________________
选项2:本机可执行文件 (建议用于生产部署)
零JVM开销。即时启动。GraalVM提前编译。
# 1. Download native executable
wget https://github.com/infenia/yukta/releases/download/v0.1.0/yukta-macos-aarch64
chmod +x yukta-macos-aarch64
./yukta-macos-aarch64
# 2. Define your workflow
curl -X POST http://localhost:8080/api/config \
-H "Content-Type: application/json" \
-d '{
"sessionId": "my-pipeline",
"description": "Data ETL",
"initiator": "devops",
"projectPath": "/data",
"workflows": {
"ingest-transform-load": {
"description": "ETL pipeline",
"nodes": [
{ "nodeId": "validate", "type": "PROCESS_EXECUTOR", "config": { "command": ["./validate.sh"] } },
{ "nodeId": "transform", "type": "PROCESS_EXECUTOR", "config": { "command": ["./transform.sh"] } },
{ "nodeId": "load", "type": "PROCESS_EXECUTOR", "config": { "command": ["./load.sh"] } }
],
"edges": [
{ "source": "validate", "target": "transform" },
{ "source": "transform", "target": "load" }
]
}
}
}'
# 3. Run it
curl -X POST http://localhost:8080/api/workflow/trigger \
-d '{ "sessionId": "my-pipeline", "workflowId": "ingest-transform-load", "payload": {} }'
# 4. Stream live status
curl http://localhost:8080/api/workflow/my-pipeline/status/{executionId}/stream结果:生产就绪,低于100ms的反馈,可观察的工作流程。
______________________________________________________________________
选项3:Java开发 (适用于贡献者和自定义插件)
传统的Spring Boot开发,具有热重载和完全调试功能。
# 1. Clone and build
git clone https://github.com/infenia/yukta.git
cd yukta
./gradlew bootRun
# 2. Open web UI
# http://localhost:8080/swagger-ui.html
# 3. Start developing
# - Add custom plugins (implements ProcessorPlugin)
# - Modify orchestration logic
# - Write tests with StepVerifier结果:完整的IDE调试,即时热重载,测试驱动的插件开发。
______________________________________________________________________
我应该选择哪一个?
| 用例 | 选择此 | 为什么 |
|---|---|---|
| AI驱动开发 (任何与MCP兼容的AI代理) | 选项1:MCP | 本地MCP集成、即时反馈、自校正 |
| 生产部署 (K8s、CI/CD、Docker) | 选项2:本机可执行文件 | 50MB可执行文件,启动时间\<100ms,JVM开销为零 |
| 构建自定义插件 (扩展Yukta) | 选项3:Java开发 | 完全IDE支持、测试、热重载 |
| 我还不知道 | 选项1:MCP | 零设置,适用于支持MCP的任何AI代理 |
______________________________________________________________________
常见问题(我们经常遇到)
Q: 这只适用于集装箱/K8s吗? A: 不是的。它可以在本地、Docker、裸机、K8s和无服务器环境中运行。到处都是相同的工作流程。在JSON中定义一次,在任何地方运行。
Q: 我必须学习一门新语言吗? A: 不是。工作流是JSON。您描述流(节点和边),Yukta处理编排。无特殊语法。
Q: 如果一个步骤失败了怎么办? A: Yukta准确地向您展示了失败的内容(带有错误输出)。您可以选择:自动重试、有条件地分支到错误处理步骤或手动干预。
Q: 这会取代我的CI/CD工具吗? A: 不是的,汤田 补充物 您的CI/CD(GitHub操作、GitLab CI、Jenkins)。Yukta是“内部”编排器——它处理多步骤工作流,您的CI/CD处理触发、通知和机密管理。
Q: 它是开源的吗? A: 是的。Apache 2.0已获得许可。自托管,本地优先,没有供应商锁定。随时随地运行。
Q: 我可以将它与我当前的AI(Claude、ChatGPT、Gemini等)一起使用吗? A: 如果你的AI支持 MCP(模型上下文协议)是的。我们提供原生MCP。如果没有,则直接使用REST API。
Q: 学习曲线是什么? A: 非常低。在5分钟内定义您的第一个工作流(仅JSON)。在一天内取得进步。一周内编写自定义插件。
Q: 这要花多少钱? A: 没什么。它是开源的。自行托管,不收取使用费。
Q: 我可以在生产中运行这个吗? A: 当然。它已为生产做好准备:输入验证、会话隔离、结构化日志记录、错误处理和实时监控。
Q: 表演怎么样? A: 低于100ms的反馈回路(无功无阻塞)。每天处理10k+个工作流,启动时间\<100ms。从1名工程师扩展到100多个并发工作流。
______________________________________________________________________
5分钟动手
现在想试试吗?
# Using native executable
wget https://github.com/infenia/yukta/releases/download/v0.1.0/yukta-$(uname -s)-$(uname -m)
chmod +x yukta-*
./yukta-* &
# Trigger a simple workflow
curl -X POST http://localhost:8080/api/config \
-H "Content-Type: application/json" \
-d '{ "sessionId": "demo", "description": "Quick demo", "initiator": "me", "workflows": { "hello": { "description": "Echo", "nodes": [{ "nodeId": "echo", "type": "PROCESS_EXECUTOR", "config": { "command": ["echo", "Hello from Yukta!"] } }], "edges": [] } } }'
curl -X POST http://localhost:8080/api/workflow/trigger \
-d '{ "sessionId": "demo", "workflowId": "hello", "payload": {} }'
# See it run
curl http://localhost:8080/api/workflow/demo/status/{executionId}完成。 三条执行路径。选择一个适合你工作流程的。
______________________________________________________________________
为什么是Yukta?
| 特写 | 没有汤田 | 有汤田 |
|---|---|---|
| 定义工作流 | 编写shell脚本(容易出错) | JSON DAG(可视化,经过验证) |
| 运行它 | ./script.sh 在一个地方 | REST API、MCP、web UI、任何位置 |
| 查看正在运行的内容 | 尾日志 | 实时状态+DAG可视化 |
| 调试失败 | Grep日志,祈祷 | 结构化日志,执行跟踪 |
| 与AI集成 | Webhooks+轮询 | 原生MCP,即时反馈 |
| 重复使用 | 复制粘贴(坏) | 存储一次,到处运行 |
| 处理错误 | if [ $? -eq 0 ] | 条件分支,重试 |
______________________________________________________________________
为应对当今挑战而打造
- 微服务:跨多个服务进行编排
- AI驱动开发:任何兼容MCP的AI代理+Yukta=自动虚构工作流(Claude Code、Claude API或其他)
- 开发运维:没有YAML shell的CI/CD
- 数据管道:具有可见性和控制的ETL
- 混合工作流:混合人类和人工智能,实时反馈
______________________________________________________________________
技术栈(为好奇者)
- Java 25 (反应式语言特征)
- 弹簧靴4.0.2 (企业级稳定性)
- 项目反应堆 (无阻塞,延迟低于100ms)
- GraalVM 的 (本机映像,50MB可执行文件)
- JTE+Alpine.js (交互式web UI)
- 主控程序 (AI集成)
______________________________________________________________________
今天什么是稳定的
✅ DAG编排 --节点、边、分支、子工作流 ✅ REST API --所有核心端点都经过实战测试 ✅ MCP集成 --完全支持Claude Code ✅ 16个内置插件 --Processs_ECUTOR、BRANCH、MAPPER、FILTER、SPLITTER、AGGREGATOR等 ✅ 会话管理 --文件或内存持久性 ✅ 实时用户界面 --DAG可视化、执行历史、控制台
______________________________________________________________________
入门指南
- 新来的? 从...开始 入门指南 (5分钟教程)
- 想知道细节吗? 阅读 建筑与设计 (深潜)
- 需要API文档吗? 检查 API 参考 (所有端点)
- 构建插件? 看 插件开发 (延伸Yukta)
- 贡献? 阅读 开发设置 (帮助我们改进)
______________________________________________________________________
社区与支持
⭐ 像雪田一样?考虑:
- 主演 仓库❤️
- 共享 您的工作流程(推特、DEV.to、Reddit)
- 贡献 (代码、文档、插件、反馈)
- 赞助 发展
______________________________________________________________________
安全与许可
- 本地优先:没有云供应商,没有数据泄露
- Apache 2.0已获得许可:透明、可审计、企业友好
- 输入已验证:阻止注入、路径遍历、恶意输入
- 完整安全策略
______________________________________________________________________
用❤️
汤田 由开发 英菲尼亚私人有限公司.
- 创造者:阿伦Cherthedath Somanathan(arun@infenia.com)
建立在工作流应该简单、可观察和人工智能友好的信念之上。
______________________________________________________________________
有趣的事实
*汤田* (युक्त) 梵语是 “联合”或“加入”--编排的本质:将不同的工具、系统和代理整合到一个有凝聚力、和谐的工作流程中。 🔗
______________________________________________________________________
准备好编排了吗? ⚡
选择您的路径:
- 🧠 AI驱动:使用任何AI代理设置MCP(选项1)
- 🚀 生产:运行本机可执行文件(选项2)
- 👨💻 发展:克隆仓库和
./gradlew bootRun(选项3)
然后访问 http://localhost:8080/swagger-ui.html 查看您的工作流程。
管弦乐快乐! 🚀
