Nuno Campos
467f42d799
Optional 2nd arg to StateGraph with config schema
2024-05-03 10:05:14 -07:00
Nuno Campos
afa6a91934
Implement interrupt_before=* and interrupt_after=*
...
- This interrupts execution before/after all nodes
2024-04-30 10:05:53 -07:00
Nuno Campos
ca2c93e0a1
Lint
2024-04-29 17:41:36 -07:00
Nuno Campos
a3c867d688
Remove add_condition_nodes
2024-04-29 11:13:16 -07:00
Nuno Campos
3a59fb2247
Pass add_condition_node
2024-04-29 11:04:15 -07:00
Nuno Campos
4a28f19922
Remove labels if redundant
2024-04-29 10:44:45 -07:00
Nuno Campos
a83fd19b29
For cond edges support specifying list of possible destinations as a list or typing annotation
2024-04-29 10:38:06 -07:00
Nuno Campos
fd9d30f144
Improve tracing output for function nodes
...
- remove double entry in tracing tree when using functions as nodes
2024-04-29 08:59:56 -07:00
Nuno Campos
42b13ef576
Improvements to get_graph(xray=)
...
- Support xray: int, to control depth, eg xray=1 only exposes one level deep
- In mermaid draw a containing box around subgraphs created from xray
2024-04-25 11:27:13 -07:00
Nuno Campos
3571a893f2
Fix bug where saving a runnable or function in state object would misbehave
...
- the function/runnable would be called when processing the state update
2024-04-24 15:35:02 -07:00
Nuno Campos
79bff13a47
Add then= arg for add_conditional_edge and set_conditional_entry_point
...
- This makes it easy to implement graphs where you want to decide among N possible nodes, and then visit another node after whichever one you chose
2024-04-24 14:06:07 -07:00
Nuno Campos
9ee5699f9a
Fix
2024-04-24 11:22:53 -07:00
Nuno Campos
9f9c08bab9
Lint
2024-04-24 11:22:36 -07:00
Nuno Campos
f2803372ec
Improve graph validation
...
- Move all validation to compile() This allows adding edges before nodes
- Detect more cases of missing edges with shorthand branches
2024-04-24 11:19:40 -07:00
Nuno Campos
85bdc8bdfa
Fix issue when drawing graphs w repeat conditions
2024-04-22 09:53:14 -07:00
Angel Igareta
7f826abaa2
Fix linting
2024-04-18 12:20:31 +02:00
Angel Igareta
6570fd0ccb
Fix get_graph method to define conditional edges
2024-04-18 12:19:07 +02:00
Angel Igareta
4e8e51126d
Fix formatting in graph
2024-04-17 18:03:22 +02:00
Ángel Igareta and GitHub
35fe16b615
Merge branch 'main' into add_condition_nodes_as_optional
2024-04-17 17:53:51 +02:00
Nuno Campos
012bbb961f
Lint
2024-04-16 15:07:51 -07:00
Nuno Campos
bdf0def798
Resolve type annotation forward refs when parsing StateGraph schema type
2024-04-16 15:05:04 -07:00
William FH and GitHub
85f48da84e
Docs Draft ( #286 )
2024-04-15 22:44:12 -07:00
Angel Igareta
0f667cd9eb
Add add_condition_nodes parameter to offer possibility of not including conditional nodes
2024-04-15 10:56:19 +02:00
Nuno Campos
f3ae555b91
Shorten conditional edge names
2024-04-12 09:29:27 -07:00
Nuno Campos
0015cb5f3a
Fix non str values in cond edges
2024-04-11 11:52:20 -07:00
Nuno Campos
641def6fdb
Fix null output for node with conditional edge returning END
2024-04-10 16:10:08 -07:00
Nuno Campos
fd6f44a7e4
feat: Return multiple destinations from conditional edge
2024-04-08 17:05:16 -07:00
Nuno Campos
db3219f77c
Ensure node tracing output is exactly what was returned from node
2024-04-03 13:13:04 -07:00
Nuno Campos
e3a9760bb2
Improve tracing output of state graph
2024-04-02 12:14:08 -07:00
Nuno Campos
2a299d070e
Optimize tracing output of Graph/StateGraph/MessageGraph
...
- control selection of relevant runs (needs langsmith release)
- see output of conditional edge function
- fix issue with conditional entry point not getting full state values as input
2024-04-02 10:32:47 -07:00
Nuno Campos
8b8171724c
Rename ChannelInvoke to PregelNode
...
- ChannelInvoke is a legacy name from when we had ChannelBatch
2024-04-01 19:34:13 -07:00
Nuno Campos
a184600915
MessageGraph now accepts same shorthand message formats as langchain-core
2024-04-01 18:44:06 -07:00
Nuno Campos
961ddd49ed
Add test and notebook for using pydantic base model as state object
2024-04-01 17:40:55 -07:00
Nuno Campos
b6848c5fdf
Optimize tracing run tree
...
- Do not run node if it's a passthrough
- Do not run writers that wouldn't affect any channels
- Combine consecutive writers when it doesn't change semantics
2024-04-01 13:43:23 -07:00
Nuno Campos
2bf66b8834
Add some more docstrings around multi edges
...
- prompted by some github issues
2024-04-01 12:29:00 -07:00
Nuno Campos
4e373b8af2
Remove noisy frames from stack traces
...
- The less frames in library code the less confused the user is
- This doesn't remove all library frames (not possible), but it's a start
2024-03-31 20:19:10 -07:00
Nuno Campos
03bef445c6
Lint
2024-03-31 20:16:50 -07:00
Nuno Campos
7bc95d311c
Lint
2024-03-31 19:15:18 -07:00
Nuno Campos
0d2bbe85c6
Fix default condition name
2024-03-31 18:56:38 -07:00
Nuno Campos
b668bf8eab
Rewrite Graph/StateGraph.compile()
...
- Each iteration of the graph is one single iteration in Pregel (ie. no more "{node}:edges" nodes)
- .update_state() now acts exactly as one of the nodes in the graph (which can be chosen), which makes human-in-the-loop scenarios where you want to override the actions of a specific node a lot easier to build
- Graph/StateGraph.compile() now delegate adding nodes/edges/etc to dedicated methods that operate on the Pregel object, which is 90% of the way towards dynamic graphs where nodes and edges can be added during execution
2024-03-31 17:17:18 -07:00
Nuno Campos
03b7d6fe0d
Remove __end__ node from state graph
...
No longer necessary with stream output modes
2024-03-30 22:04:27 -07:00
Nuno Campos
1ad017781d
Add stream_mode=updates or values
...
- stream(stream_mode="values") yields thre current channel values whenever a channel is updated
- stream(stream_mode="updates") yields the update sent to each channel by each node
- this removes the __end__ value present at the end of each call to Graph/StateGraph/MessageGraph.stream(). To access the __end__ value either call .invoke() or stream(stream_mode="values")
2024-03-30 21:24:39 -07:00
Nuno Campos
5aa036639b
Update
2024-03-26 15:42:16 -07:00
jacoblee93
e79453633d
Simplify
2024-03-26 12:59:26 -07:00
jacoblee93
a6a9def91a
Adds async conditional edge support
2024-03-26 12:46:15 -07:00
Nuno Campos
62dfa48ce5
Lint
2024-03-21 17:58:23 -07:00
Nuno Campos
db2ec5b2de
Rename to add_edge(string[], string)
2024-03-21 17:56:35 -07:00
Nuno Campos
e11153cf09
Fix graph repr
2024-03-21 16:53:59 -07:00
Nuno Campos
01c32c2464
Finish
2024-03-21 15:54:03 -07:00
Nuno Campos
158f84c826
WIP Waiting edge
2024-03-21 14:29:40 -07:00