Commit Graph
127 Commits
Author SHA1 Message Date
Nuno Campos e892c95194 Export all exceptions from langgraph.errors 2024-05-07 08:07:26 -07:00
Nuno CamposandGitHub 5bee63c7d5 Merge pull request #387 from langchain-ai/nc/3may/checkpoint-metadata
Add metadata to checkpoints, checkpoint inputs before first step
2024-05-06 14:41:29 -07:00
Nuno Campos 48865daf02 Fix checkpoint lineage for updates/resumes 2024-05-06 11:53:20 -07:00
Nuno Campos 611ecdb1cd Checkpoint inputs before starting the first step for easier error recovery
- this enables easier retrying, for any error just do .invoke(None, config) no matter which step the error happened on
2024-05-06 11:53:20 -07:00
Nuno Campos f160f82912 Add checkpoint metadata fields
- source: input, update or loop
- step: int
- make step counter continue from previous last step
2024-05-06 11:52:49 -07:00
Nuno Campos 3ff3def62b Remove option to only checkpoint at end of run
- Now that checkpoint at end of each step adds no latency there is not point to keep this
- This will make it easier to add future features
2024-05-06 11:52:49 -07:00
Nuno Campos f304908102 Add metadata to checkpoints
- not yet used in this PR
2024-05-06 11:52:49 -07:00
Nuno Campos 04fe48f661 Add (failing) test for drawing cyclic edge
- fix waiting for new release of langchain-core
2024-05-03 15:17:20 -07:00
Nuno Campos 42d3215e34 Implement cursor pagination for get_state_history (time travel endpoint)
- interface in base checkpointer
- implement in sqlite, aiosqlite, memory
- implement in Pregel.get_state_history()
2024-05-03 10:34:11 -07:00
Nuno Campos 467f42d799 Optional 2nd arg to StateGraph with config schema 2024-05-03 10:05:14 -07:00
Nuno Campos 27efba27c0 Update tests 2024-05-02 09:31:22 -07:00
Nuno Campos 5e322a6550 Implement stream_mode=debug
- outputs 3 types of payloads
-- task: node about to be executed
-- task_result: result of node execution
-- checkpoint: state values at end of superstep
2024-04-30 16:15:38 -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 9a79eb54f9 Finish fixing tests 2024-04-30 09:23:41 -07:00
Nuno Campos 96870c0935 Pregel: Remove implicit creation of channels referenced by nodes
- channels must be declared in the constructor args
2024-04-30 09:04:19 -07:00
Nuno Campos 7554309abf Update tests 2024-04-29 17:46:42 -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 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 61d0f60b8e Update 2024-04-25 11:30:23 -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 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
Nuno Campos 3edf7e4d73 Fix 2024-04-18 10:18:56 -07:00
Nuno Campos 38d990cf99 Merge branch 'main' into improve_visualization_notebook 2024-04-18 09:02:45 -07:00
Nuno Campos 9e6fc78ac2 Make test deterministic 2024-04-18 08:40:56 -07:00
Angel Igareta 99c2754156 Fix tests due to change of style for conditional edges. Migrate ascii to snapshot for system compatiblity 2024-04-18 12:53:43 +02:00
Nuno Campos 322cea054c Fix astream_events modifying output format unexpectedly
- (unrelated) use run_id passed in
- if using a graph as node in another graph ensure stream_mode for inner call is always values
- ensure langchain-core doesn't auto promote streamed dicts to addable dicts, which results in unexpected output (only) when calling astream_events
2024-04-17 15:24:43 -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 a8af7467b8 In stream_mode=values yield all values, instead of only changed ones 2024-04-11 11:12:10 -07:00
Nuno CamposandGitHub 9ffd6d9c78 Merge pull request #296 from langchain-ai/nc/10apr/tool-node
Add prebuilt ToolNode, Make prebuilt create_tool_calling_executor compatible with any tool calling model
2024-04-11 11:10:59 -07:00
Nuno Campos 46e67cff87 Remove flag 2024-04-11 08:44:41 -07:00
hmasdev 236ecb1982 rename node name in tests 2024-04-11 20:34:45 +09:00
hmasdev 42de3304dc Add support for allow_falsy_output parameter in Pregel class 2024-04-11 19:46:01 +09:00
Nuno Campos 7dafc09a5b Add prebuilt ToolNode 2024-04-10 18:15:19 -07:00
Nuno Campos 8788a6adfb Support stream_mode=updates in invoke() 2024-04-10 17:12:09 -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 2f8ae4fdb4 Simplify tool executor 2024-04-02 14:46:14 -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 a184600915 MessageGraph now accepts same shorthand message formats as langchain-core 2024-04-01 18:44:06 -07:00
Nuno Campos 694343c5b5 Update test 2024-04-01 18:03:52 -07:00
Nuno Campos cbd2024dec Add async test, add test for validation error 2024-04-01 17:56:18 -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 f88ef74002 Add tests for both values of CheckpointAt
- fix bug when using at=END_OF_RUN together with interrupt_before
- fix bug when calling update_state after only node has run
- update some notebooks to new streaming format (ie. no __end__ node)
2024-04-01 17:17:39 -07:00
Nuno Campos 2736d72989 Remove __start__ node from stream output 2024-04-01 16:05:12 -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