Vanilla agents for GraphAI.
yarn add @graphai/vanilla
import { GraphAI } from "graphai";
import {
stringEmbeddingsAgent,
stringSplitterAgent,
stringTemplateAgent,
jsonParserAgent,
pushAgent,
popAgent,
shiftAgent,
arrayFlatAgent,
arrayJoinAgent,
dotProductAgent,
sortByValuesAgent,
echoAgent,
bypassAgent,
countingAgent,
copyMessageAgent,
copy2ArrayAgent,
mergeNodeIdAgent,
streamMockAgent,
nestedAgent,
mapAgent,
workerAgent,
totalAgent,
dataSumTemplateAgent,
propertyFilterAgent,
copyAgent,
vanillaFetchAgent
} from "@graphai/vanilla";
const agents = {
stringEmbeddingsAgent,
stringSplitterAgent,
stringTemplateAgent,
jsonParserAgent,
pushAgent,
popAgent,
shiftAgent,
arrayFlatAgent,
arrayJoinAgent,
dotProductAgent,
sortByValuesAgent,
echoAgent,
bypassAgent,
countingAgent,
copyMessageAgent,
copy2ArrayAgent,
mergeNodeIdAgent,
streamMockAgent,
nestedAgent,
mapAgent,
workerAgent,
totalAgent,
dataSumTemplateAgent,
propertyFilterAgent,
copyAgent,
vanillaFetchAgent
};
const graph = new GraphAI(graph_data, agents);
const result = await graph.run();
- stringEmbeddingsAgent
- stringSplitterAgent
- stringTemplateAgent
- jsonParserAgent
- pushAgent
- popAgent
- shiftAgent
- arrayFlatAgent
- arrayJoinAgent
- dotProductAgent
- sortByValuesAgent
- echoAgent
- bypassAgent
- countingAgent
- copyMessageAgent
- copy2ArrayAgent
- mergeNodeIdAgent
- streamMockAgent
- nestedAgent
- mapAgent
- workerAgent
- totalAgent
- dataSumTemplateAgent
- propertyFilterAgent
- copyAgent
- vanillaFetchAgent
{
"version": 0.5,
"nodes": {
"source": {
"value": {
"version": 0.5,
"loop": {
"count": 5
},
"nodes": {
"array": {
"value": [],
"update": ":reducer"
},
"item": {
"agent": "sleeperAgent",
"params": {
"duration": 10,
"value": "hello"
}
},
"reducer": {
"isResult": true,
"agent": "pushAgent",
"inputs": {
"array": ":array",
"item": ":item"
}
}
}
}
},
"nested": {
"agent": "nestedAgent",
"graph": ":source",
"isResult": true
}
}
}
{
"version": 0.5,
"nodes": {
"source": {
"value": "{\"version\":0.5,\"loop\":{\"count\":5},\"nodes\":{\"array\":{\"value\":[],\"update\":\":reducer\"},\"item\":{\"agent\":\"sleeperAgent\",\"params\":{\"duration\":10,\"value\":\"hello\"}},\"reducer\":{\"isResult\":true,\"agent\":\"pushAgent\",\"inputs\":{\"array\":\":array\",\"item\":\":item\"}}}}"
},
"parser": {
"agent": "jsonParserAgent",
"inputs": [
":source"
]
},
"nested": {
"agent": "nestedAgent",
"graph": ":parser",
"isResult": true
}
}
}
{
"version": 0.5,
"nodes": {
"source": {
"value": "```json\n{\"version\":0.5,\"loop\":{\"count\":5},\"nodes\":{\"array\":{\"value\":[],\"update\":\":reducer\"},\"item\":{\"agent\":\"sleeperAgent\",\"params\":{\"duration\":10,\"value\":\"hello\"}},\"reducer\":{\"isResult\":true,\"agent\":\"pushAgent\",\"inputs\":{\"array\":\":array\",\"item\":\":item\"}}}}\n```\n"
},
"parser": {
"agent": "jsonParserAgent",
"inputs": [
":source"
]
},
"nested": {
"agent": "nestedAgent",
"graph": ":parser",
"isResult": true
}
}
}
{
"version": 0.5,
"nodes": {
"source": {
"value": "Hello World"
},
"nestedNode": {
"agent": "nestedAgent",
"inputs": {
"inner0": ":source"
},
"isResult": true,
"graph": {
"nodes": {
"result": {
"agent": "copyAgent",
"inputs": [
":inner0"
],
"isResult": true
}
}
}
}
}
}
{
"version": 0.5,
"nodes": {
"source": {
"value": "Hello World"
},
"nestedNode": {
"agent": "nestedAgent",
"inputs": {
"source": ":source"
},
"isResult": true,
"graph": {
"nodes": {
"result": {
"agent": "copyAgent",
"inputs": [
":source"
],
"isResult": true
}
}
}
}
}
}
{
"version": 0.5,
"nodes": {
"source": {
"value": {
"fruits": [
"apple",
"orange",
"banana",
"lemon",
"melon",
"pineapple",
"tomato"
]
}
},
"nestedNode": {
"agent": "mapAgent",
"inputs": {
"rows": ":source.fruits"
},
"graph": {
"version": 0.5,
"nodes": {
"node2": {
"agent": "stringTemplateAgent",
"params": {
"template": "I love ${0}."
},
"inputs": [
":row"
],
"isResult": true
}
}
}
},
"result": {
"agent": "sleeperAgent",
"inputs": [
":nestedNode.node2"
],
"isResult": true
}
}
}
{
"version": 0.5,
"nodes": {
"source1": {
"value": [
"hello",
"hello2"
]
},
"nestedNode": {
"agent": "mapAgent",
"inputs": {
"rows": ":source1"
},
"graph": {
"version": 0.5,
"nodes": {
"node1": {
"agent": "bypassAgent",
"inputs": [
":row"
],
"isResult": true
}
}
}
},
"result": {
"agent": "bypassAgent",
"inputs": [
":nestedNode.node1"
],
"isResult": true
}
}
}
{
"version": 0.5,
"nodes": {
"source1": {
"value": [
"hello",
"hello2"
]
},
"nestedNode": {
"agent": "mapAgent",
"inputs": {
"rows": ":source1"
},
"graph": {
"version": 0.5,
"nodes": {
"node1": {
"agent": "bypassAgent",
"inputs": [
":row"
],
"isResult": true
}
}
}
},
"result": {
"agent": "bypassAgent",
"params": {
"flat": 1
},
"inputs": [
":nestedNode.node1"
]
}
}
}
{
"version": 0.5,
"nodes": {
"source1": {
"value": [
"hello",
"hello2"
]
},
"nestedNode": {
"agent": "mapAgent",
"inputs": {
"rows": ":source1"
},
"graph": {
"version": 0.5,
"nodes": {
"node1": {
"agent": "bypassAgent",
"inputs": [
":row"
],
"isResult": true
}
}
}
},
"result": {
"agent": "bypassAgent",
"params": {
"flat": 2
},
"inputs": [
":nestedNode.node1"
]
}
}
}
{
"version": 0.5,
"loop": {
"count": 10
},
"nodes": {
"array": {
"value": [],
"update": ":reducer"
},
"item": {
"agent": "sleeperAgent",
"params": {
"duration": 10,
"value": "hello"
}
},
"reducer": {
"isResult": true,
"agent": "pushAgent",
"inputs": {
"array": ":array",
"item": ":item"
}
}
}
}
{
"version": 0.5,
"loop": {
"while": ":source"
},
"nodes": {
"source": {
"value": [
"orange",
"banana",
"lemon"
],
"update": ":popper.array"
},
"result": {
"value": [],
"update": ":reducer"
},
"popper": {
"inputs": {
"array": ":source"
},
"agent": "popAgent"
},
"reducer": {
"agent": "pushAgent",
"inputs": {
"array": ":result",
"item": ":popper.item"
}
}
}
}
{
"version": 0.5,
"nodes": {
"source": {
"value": "hello"
},
"parent": {
"agent": "nestedAgent",
"inputs": {
"source": ":source"
},
"isResult": true,
"graph": {
"loop": {
"count": 10
},
"nodes": {
"array": {
"value": [],
"update": ":reducer"
},
"item": {
"agent": "sleeperAgent",
"params": {
"duration": 10,
"value": ":source"
}
},
"reducer": {
"agent": "pushAgent",
"inputs": {
"array": ":array",
"item": ":item"
},
"isResult": true
}
}
}
}
}
}
{
"version": 0.5,
"nodes": {
"fruits": {
"value": [
"orange",
"banana",
"lemon"
]
},
"parent": {
"agent": "nestedAgent",
"isResult": true,
"inputs": {
"fruits": ":fruits"
},
"graph": {
"loop": {
"while": ":fruits"
},
"nodes": {
"fruits": {
"value": [],
"update": ":popper.array"
},
"result": {
"value": [],
"update": ":reducer",
"isResult": true
},
"popper": {
"inputs": {
"array": ":fruits"
},
"agent": "popAgent"
},
"reducer": {
"agent": "pushAgent",
"inputs": {
"array": ":result",
"item": ":popper.item"
}
}
}
}
}
}
}
{
"version": 0.5,
"nodes": {
"source": {
"value": "hello"
},
"parent": {
"agent": "nestedAgent",
"inputs": {
"inner_source": ":source"
},
"isResult": true,
"graph": {
"loop": {
"count": 10
},
"nodes": {
"array": {
"value": [],
"update": ":reducer"
},
"item": {
"agent": "sleeperAgent",
"params": {
"duration": 10,
"value": ":inner_source"
}
},
"reducer": {
"agent": "pushAgent",
"inputs": {
"array": ":array",
"item": ":item"
},
"isResult": true
}
}
}
}
}
}
{
"version": 0.5,
"nodes": {
"source": {
"value": {
"content": [
{
"level1": {
"level2": "hello1"
}
},
{
"level1": {
"level2": "hello2"
}
}
]
}
},
"mapNode": {
"agent": "mapAgent",
"inputs": {
"rows": ":source.content"
},
"graph": {
"version": 0.5,
"nodes": {
"workingMemory": {
"value": {}
},
"forked": {
"agent": "sleeperAgent",
"inputs": [
":row.level1"
]
},
"forked2": {
"agent": "sleeperAgent",
"inputs": [
":forked"
],
"isResult": true
}
}
}
},
"bypassAgent": {
"agent": "bypassAgent",
"inputs": [
":mapNode"
]
}
}
}
{
"version": 0.5,
"nodes": {
"echo": {
"agent": "echoAgent",
"params": {
"message": "hello"
}
},
"bypassAgent": {
"agent": "bypassAgent",
"inputs": [
":echo"
]
},
"bypassAgent2": {
"agent": "bypassAgent",
"inputs": [
":bypassAgent.$0"
]
}
}
}
{
"version": 0.5,
"nodes": {
"echo": {
"agent": "echoAgent",
"params": {
"message": [
"hello",
"hello"
]
}
},
"mapNode": {
"agent": "mapAgent",
"inputs": {
"rows": ":echo.message"
},
"graph": {
"version": 0.5,
"nodes": {
"bypassAgent": {
"agent": "bypassAgent",
"inputs": [
":row"
],
"isResult": true,
"params": {
"firstElement": true
}
}
}
}
},
"bypassAgent2": {
"agent": "bypassAgent",
"inputs": [
":mapNode.bypassAgent"
]
}
}
}
{
"version": 0.5,
"nodes": {
"echo": {
"agent": "echoAgent",
"params": {
"message": [
"hello",
"hello"
]
}
},
"mapNode": {
"agent": "mapAgent",
"inputs": {
"rows": ":echo.message"
},
"graph": {
"version": 0.5,
"nodes": {
"bypassAgent": {
"agent": "bypassAgent",
"inputs": [
":row"
]
},
"bypassAgent2": {
"agent": "bypassAgent",
"inputs": [
":bypassAgent.$0"
]
},
"bypassAgent3": {
"agent": "bypassAgent",
"inputs": [
":bypassAgent2.$0"
],
"params": {
"firstElement": true
},
"isResult": true
}
}
}
},
"bypassAgent4": {
"agent": "bypassAgent",
"params": {
"firstElement": true
},
"inputs": [
":mapNode.bypassAgent3"
]
}
}
}
{
"version": 0.5,
"nodes": {
"echo": {
"agent": "echoAgent",
"params": {
"message": [
"hello",
"hello"
]
}
},
"mapNode": {
"agent": "mapAgent",
"inputs": {
"rows": ":echo.message"
},
"graph": {
"version": 0.5,
"nodes": {
"bypassAgent": {
"agent": "bypassAgent",
"inputs": [
":row"
]
},
"bypassAgent2": {
"agent": "bypassAgent",
"inputs": [
":bypassAgent.$0",
":row"
],
"isResult": true
}
}
}
},
"bypassAgent3": {
"agent": "bypassAgent",
"inputs": [
":mapNode.bypassAgent2"
],
"params": {
"firstElement": true
}
}
}
}
{
"version": 0.5,
"nodes": {
"echo": {
"agent": "echoAgent",
"params": {
"message": "hello"
}
},
"bypassAgent": {
"agent": "bypassAgent",
"inputs": [
":echo",
":echo",
":echo"
]
},
"bypassAgent2": {
"agent": "bypassAgent",
"inputs": [
":bypassAgent",
":bypassAgent"
]
},
"bypassAgent3": {
"agent": "bypassAgent",
"inputs": [
":bypassAgent2",
":bypassAgent2"
]
}
}
}