mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-08-24 00:22:25 +02:00
more
This commit is contained in:
@@ -57,7 +57,7 @@ func goNodeCallback(userData C.ulong, node *C.char, argJSON *C.char, stateJSON *
|
||||
sends := make([]map[string]any, 0, len(cmd.Goto))
|
||||
for _, send := range cmd.Goto {
|
||||
sends = append(sends, map[string]any{
|
||||
"node": send.Node,
|
||||
"node": NodeName(send.Node),
|
||||
"arg": send.NodeInput,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ type WaitEvent struct {
|
||||
}
|
||||
|
||||
type Send struct {
|
||||
Node string
|
||||
Node NodeFunc
|
||||
NodeInput any
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ func (m *mockLLM) invoke() []decision {
|
||||
|
||||
type lunchWorkflow struct {
|
||||
planner *mockLLM
|
||||
names map[string]string
|
||||
names map[string]ag.NodeFunc
|
||||
}
|
||||
|
||||
func outputSlice(state map[string]any) []string {
|
||||
@@ -151,7 +151,7 @@ func TestSubAgentsEquivalentFlow(t *testing.T) {
|
||||
}
|
||||
workflow := &lunchWorkflow{
|
||||
planner: planner,
|
||||
names: make(map[string]string),
|
||||
names: make(map[string]ag.NodeFunc),
|
||||
}
|
||||
|
||||
graph := ag.NewAdvancedStateGraph()
|
||||
@@ -159,11 +159,16 @@ func TestSubAgentsEquivalentFlow(t *testing.T) {
|
||||
graph.AddAsyncChannel("subagent_completion_channel")
|
||||
graph.AddAsyncChannel("user_input_channel")
|
||||
|
||||
workflow.names["llm"] = graph.AddNode(workflow.llmNode)
|
||||
workflow.names["wait"] = graph.AddNode(workflow.waitNode)
|
||||
workflow.names["tool"] = graph.AddNode(workflow.toolNode)
|
||||
workflow.names["sub"] = graph.AddNode(workflow.subAgentNode)
|
||||
workflow.names["order"] = graph.AddNode(workflow.orderFoodNode)
|
||||
graph.AddNode(workflow.llmNode)
|
||||
graph.AddNode(workflow.waitNode)
|
||||
graph.AddNode(workflow.toolNode)
|
||||
graph.AddNode(workflow.subAgentNode)
|
||||
graph.AddNode(workflow.orderFoodNode)
|
||||
workflow.names["llm"] = workflow.llmNode
|
||||
workflow.names["wait"] = workflow.waitNode
|
||||
workflow.names["tool"] = workflow.toolNode
|
||||
workflow.names["sub"] = workflow.subAgentNode
|
||||
workflow.names["order"] = workflow.orderFoodNode
|
||||
|
||||
graph.SetEntryNode(workflow.llmNode)
|
||||
graph.SetFinishNode(workflow.orderFoodNode)
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
)
|
||||
|
||||
type primitiveWorkflow struct {
|
||||
names map[string]string
|
||||
}
|
||||
|
||||
func logsSlice(state map[string]any) []string {
|
||||
@@ -38,7 +37,7 @@ func (w *primitiveWorkflow) startNode(ctx *ag.Context, _ any, state map[string]a
|
||||
return ag.Command{
|
||||
Update: state,
|
||||
Goto: []ag.Send{
|
||||
{Node: w.names["middle"], NodeInput: "from_start"},
|
||||
{Node: w.middleNode, NodeInput: "from_start"},
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
@@ -50,7 +49,7 @@ func (w *primitiveWorkflow) middleNode(ctx *ag.Context, input any, state map[str
|
||||
return ag.Command{
|
||||
Update: state,
|
||||
Goto: []ag.Send{
|
||||
{Node: w.names["finish"], NodeInput: "from_middle"},
|
||||
{Node: w.finishNode, NodeInput: "from_middle"},
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
@@ -64,12 +63,12 @@ func (w *primitiveWorkflow) finishNode(ctx *ag.Context, input any, state map[str
|
||||
}
|
||||
|
||||
func TestInputAndStatePrimitivesCompatible(t *testing.T) {
|
||||
workflow := &primitiveWorkflow{names: make(map[string]string)}
|
||||
workflow := &primitiveWorkflow{}
|
||||
graph := ag.NewAdvancedStateGraph()
|
||||
|
||||
workflow.names["start"] = graph.AddNode(workflow.startNode)
|
||||
workflow.names["middle"] = graph.AddNode(workflow.middleNode)
|
||||
workflow.names["finish"] = graph.AddNode(workflow.finishNode)
|
||||
graph.AddNode(workflow.startNode)
|
||||
graph.AddNode(workflow.middleNode)
|
||||
graph.AddNode(workflow.finishNode)
|
||||
graph.SetEntryNode(workflow.startNode)
|
||||
graph.SetFinishNode(workflow.finishNode)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user