For the complete documentation index, see llms.txt. This page is also available as Markdown.

单步工作流

如何创建包含单个节点的第一个工作流

创建工作流

工作流通常实现为一个继承自 Workflow 的类。该类可以定义任意数量的节点,每个节点都是一个类,该类扩展 NeuronAI\Workflow\Node.

首先,让我们创建 MyWorkflow 类:

vendor/bin/neuron make:workflow App\\Neuron\\MyAgent
.\vendor\bin\neuron make:workflow App\Neuron\MyAgent

下面是一个最简单的工作流:

namespace App\Neuron;

use NeuronAI\Workflow\Workflow;

class MyAgent extends Workflow
{
    protected function nodes(): array
    {
        return [
            new InitialNode(),
        ];
    }
}

现在让我们创建节点:

Node 是一个可调用的类,用于处理传入事件,并返回另一个事件:

这将向控制台打印“Hello World!”:

在这段代码中,我们:

1

定义一个类 MyWorkflow 继承自 工作流

2

定义一个实现了 __invoke 方法

3

步骤将事件作为输入,它是以下对象的实例: StartEvent

4

Node 向状态添加一个值并返回一个 StopEvent

5

我们创建一个……的实例 MyWorkflow

6

我们启动工作流并获取结果

7

在控制台中打印结果

Start 和 Stop 事件

StartEventStopEvent 是用于启动和停止工作流的特殊事件。接受 StartEvent 的节点会在你启动工作流时首先被触发。返回 StopEvent 会结束工作流的执行并返回最终状态,即使还有其他节点尚未执行。

事件的类型提示

事件的 $event 类型(例如 StartEvent) 会引导工作流的执行。节点的预期返回类型决定下一个会触发哪个节点。

事件类型会在编译时进行验证,因此如果例如你返回了一个从未被其他 Node 消费的事件,就会得到一条错误消息。

监控与调试

使用 Neuron 构建的许多应用程序会包含多个步骤以及对 LLM 的多次调用。随着这些应用程序变得越来越复杂,能够检查你的代理系统内部到底发生了什么就变得至关重要。实现这一点的最佳方式是使用 Inspector.

最后更新于