AI Skill Hub 推荐使用:OxyJen 是一款优质的Agent工作流。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的Agent工作流解决方案,这是一个值得深入了解的选择。
OxyJen是开源的Java框架,用于orchestrating LLM工作负载,突出其在AI工作流中的价值
OxyJen 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
OxyJen是开源的Java框架,用于orchestrating LLM工作负载,突出其在AI工作流中的价值
OxyJen 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 克隆仓库 git clone https://github.com/11divyansh/OxyJen cd OxyJen # 查看安装说明 cat README.md # 按 README 完成环境依赖安装后即可使用
# 查看帮助 oxyjen --help # 基本运行 oxyjen [options] <input> # 详细使用说明请查阅文档 # https://github.com/11divyansh/OxyJen
# oxyjen 配置说明 # 查看配置选项 oxyjen --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export OXYJEN_CONFIG="/path/to/config.yml"
OxyJen is the missing deterministic AI Runtime for Java & JVM enterprises.
Deterministic AI Workflow Runtime for the JVM - Build complex AI pipelines with simplicity and power.
---
Built with ❤️ by Divyansh Bhatt - a BTech CS student who believes Java deserves world-class AI tooling.
This started as a learning project, but I'm committed to making it production-ready. I know this is not big yet, but lets make it valuable.
git clone https://github.com/11divyansh/OxyJen.git
cd OxyJen
mvn clean install
After installation, verify by importing:
```java import io.oxyjen.core.; import io.oxyjen.llm.; import io.oxyjen.tools.*;
// Build a 3-step text processing pipeline
Graph pipeline = GraphBuilder.named("text-processor")
.addNode(new UppercaseNode())
.addNode(new ReverseNode())
.addNode(new PrefixNode("OUTPUT: "))
.build();
// Execute with context
NodeContext context = new NodeContext();
Executor executor = new Executor();
String result = executor.run(pipeline, "hello world", context);
System.out.println(result);
// Output: OUTPUT: DLROW OLLEH
That's it! Clean, simple, powerful.
---
package examples;
import io.oxyjen.core.*;
public class ContentPipeline {
public static void main(String[] args) {
// Step 1: Define your nodes
NodePlugin<String, String> validator = new ValidationNode();
NodePlugin<String, String> processor = new ProcessingNode();
NodePlugin<String, String> formatter = new FormatterNode();
// Step 2: Build your graph
Graph pipeline = GraphBuilder.named("content-pipeline")
.addNode(validator)
.addNode(processor)
.addNode(formatter)
.build();
// Step 3: Create execution context
NodeContext context = new NodeContext();
context.set("max_length", 100);
// Step 4: Execute
Executor executor = new Executor();
String result = executor.run(pipeline, "Raw input text", context);
System.out.println("Final output: " + result);
System.out.println("Word count: " + context.get("word_count"));
}
}
// Example node implementations
class ValidationNode implements NodePlugin<String, String> {
@Override
public String process(String input, NodeContext ctx) {
if (input == null || input.isEmpty()) {
throw new IllegalArgumentException("Input cannot be empty");
}
ctx.getLogger().info("✓ Input validated");
return input;
}
}
class ProcessingNode implements NodePlugin<String, String> {
@Override
public String process(String input, NodeContext ctx) {
String processed = input.toUpperCase().trim();
ctx.set("word_count", processed.split(" ").length);
ctx.getLogger().info("✓ Text processed");
return processed;
}
}
class FormatterNode implements NodePlugin<String, String> {
@Override
public String process(String input, NodeContext ctx) {
Integer maxLength = ctx.get("max_length");
String formatted = input.length() > maxLength
? input.substring(0, maxLength) + "..."
: input;
ctx.getLogger().info("✓ Text formatted");
return formatted;
}
}
---
A Graph defines the structure of your pipeline - which nodes run in what order.
public class Graph {
private final String name;
private final List<NodePlugin<?, ?>> nodes;
// Add nodes to your pipeline
public Graph addNode(NodePlugin<?, ?> node);
// Get all nodes in execution order
public List<NodePlugin<?, ?>> getNodes();
}
Think of it as: Your pipeline's DNA - it knows what needs to happen, but doesn't execute anything.
A NodePlugin is a single step in your pipeline. Each node transforms input into output.
public interface NodePlugin<I, O> {
// Core processing logic
O process(I input, NodeContext context);
// Unique identifier for this node
default String getName() {
return this.getClass().getSimpleName();
}
// Lifecycle hooks for setup/cleanup
default void onStart(NodeContext context) {}
default void onFinish(NodeContext context) {}
default void onError(Exception e, NodeContext context) {}
}
Think of it as: A Lego brick - small, focused, composable.
Example node:
public class SummarizerNode implements NodePlugin<String, String> {
@Override
public String process(String input, NodeContext context) {
context.getLogger().info("Summarizing text...");
// Your logic here (will be LLM call in v0.2)
return "Summary: " + input.substring(0, 100);
}
@Override
public void onStart(NodeContext context) {
context.getLogger().info("Summarizer node starting");
}
}
OxyJen是一个开源的Java框架,用于orchestrating LLM工作负载,具有很好的扩展性和可靠性,但其文档和社区支持需要进一步改善
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。
总体来看,OxyJen 是一款质量良好的Agent工作流,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | OxyJen |
| Topics | workflowagentsaichatgptdaggraphjava |
| GitHub | https://github.com/11divyansh/OxyJen |
| License | Apache-2.0 |
| 语言 | Java |
收录时间:2026-05-24 · 更新时间:2026-05-24 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端