Tat Dat Duong
dfeb9d3b46
release(langgraph): 0.3.25
2025-04-03 22:12:16 +02:00
David Duong and GitHub
81935a73d8
feat(langgraph): Add UI messages API ( #4157 )
...
Sample usage:
```python
from typing import Annotated, Sequence, TypedDict
from langchain_core.messages import BaseMessage
from langchain_openai import ChatOpenAI
from langgraph.graph import StateGraph
from langgraph.graph.message import add_messages
from langgraph.graph.ui import AnyUIMessage, ui_message_reducer, push_ui_message
class AgentState(TypedDict): # noqa: D101
messages: Annotated[Sequence[BaseMessage], add_messages]
ui: Annotated[Sequence[AnyUIMessage], ui_message_reducer]
async def agent(state: AgentState): # noqa: D103
message = await ChatOpenAI(model="gpt-4o-mini", temperature=0).ainvoke(
state["messages"]
)
# Also directly writes the message to `ui`
push_ui_message("simple", {"hello": "123"}, message=message, state_key="ui")
return {"messages": [message]}
```
2025-04-03 22:10:18 +02:00
Tat Dat Duong
615fc8b4ae
Update naming
2025-04-03 21:58:16 +02:00
Vadym Barda and GitHub
e89633f30b
prebuilt: release 0.1.8 ( #4161 )
2025-04-03 12:01:18 -04:00
Tat Dat Duong
cba240e70e
release(cli): 0.1.84
2025-04-03 15:15:52 +02:00
Tat Dat Duong
af6552a17e
Move to langgraph/graph
2025-04-03 14:13:26 +02:00
Tat Dat Duong
e38c30a434
Other docstring changes
2025-04-03 14:13:26 +02:00
Tat Dat Duong
e41dea4cf9
Remove unnecessary return value
2025-04-03 14:13:26 +02:00
Tat Dat Duong
f9f8c19ec4
Update docstrings
2025-04-03 14:13:26 +02:00
Tat Dat Duong
64ab3217f6
Add UI messages API
2025-04-03 14:13:26 +02:00
David Duong and GitHub
9af243d138
feat(cli): pass ui and ui config to inmem server, handle Docker setup for UI ( #4100 )
2025-04-03 14:11:30 +02:00
David Duong and GitHub
3f1d440aee
fix(sdk-js): send accepts any input ( #4099 )
2025-04-03 14:00:31 +02:00
Tat Dat Duong
78901599e6
Add test for UI config
2025-04-03 13:48:14 +02:00
Tat Dat Duong
958c0df2d7
Install Node.js runtime and run the build process to get the UI
2025-04-03 13:48:14 +02:00
Tat Dat Duong
6919de8b3e
feat(cli): pass ui and ui config to inmem server
2025-04-03 13:48:14 +02:00
Nuno Campos and GitHub
e9a66cef46
Update jinja2 dev dep ( #4150 )
2025-04-02 16:02:25 -07:00
Nuno Campos and GitHub
728679e48e
Bump langchain-core from 0.3.0 to 0.3.15 in /libs/checkpoint-sqlite ( #3978 )
...
Bumps [langchain-core](https://github.com/langchain-ai/langchain ) from
0.3.0 to 0.3.15.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langchain/commit/25a103187137077d4331e7153fe119e1c0c3ffb6 "><code>25a1031</code></a>
community: Fix a validation error for MoonshotChat (<a
href="https://redirect.github.com/langchain-ai/langchain/issues/27801 ">#27801</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchain/commit/e4e2aa0b78e6662bb5cebb06b15c19ddbe96ae43 "><code>e4e2aa0</code></a>
core[patch]: update image util err msg (<a
href="https://redirect.github.com/langchain-ai/langchain/issues/27803 ">#27803</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchain/commit/181bcd05778ff08688ea22f8dab81a6bd27501fd "><code>181bcd0</code></a>
core[patch]: Release 0.3.15 (<a
href="https://redirect.github.com/langchain-ai/langchain/issues/27802 ">#27802</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchain/commit/c1e742347f9701aadba8920e4d1f79a636e50b68 "><code>c1e7423</code></a>
core[patch]: rm image loading (<a
href="https://redirect.github.com/langchain-ai/langchain/issues/27797 ">#27797</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchain/commit/ad0387ac97e0c8feee4272f4ed98f0d65bd616ba "><code>ad0387a</code></a>
Improvement [docs] Improve api docs (<a
href="https://redirect.github.com/langchain-ai/langchain/issues/27787 ">#27787</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchain/commit/d9163e7afa0e5e975d36b7482c6a101e5c5dc375 "><code>d9163e7</code></a>
community[docs]: Add content for the Lora adapter in the VLLM page. (<a
href="https://redirect.github.com/langchain-ai/langchain/issues/27788 ">#27788</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchain/commit/0172d938b4bf1e9da9f3b796dbfce64c565ce565 "><code>0172d93</code></a>
community: add AzureOpenAIWhisperParser (<a
href="https://redirect.github.com/langchain-ai/langchain/issues/27796 ">#27796</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchain/commit/b631b0a5964bcdd46cf30fa0e91925d724ec7ae8 "><code>b631b0a</code></a>
community[patch]: cap SQLAlchemy and update deps (<a
href="https://redirect.github.com/langchain-ai/langchain/issues/27792 ">#27792</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchain/commit/8ad7adad8784d01ad1cbbb8b4c5f8102dbf11a63 "><code>8ad7ada</code></a>
infra: build api docs from package listing (<a
href="https://redirect.github.com/langchain-ai/langchain/issues/27774 ">#27774</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchain/commit/3952ee31b8fc95b1ed74b83429002a7b5da630a3 "><code>3952ee3</code></a>
ollama: add pydocstyle linting for ollama (<a
href="https://redirect.github.com/langchain-ai/langchain/issues/27686 ">#27686</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langchain/compare/langchain-core==0.3.0...langchain-core==0.3.15 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraph/network/alerts ).
</details>
2025-04-02 15:57:14 -07:00
Nuno Campos
f118a61101
Update jinja2 dev dep
2025-04-02 15:56:00 -07:00
dependabot[bot] and Nuno Campos
8963bb2b68
Bump langchain-core from 0.3.0 to 0.3.15 in /libs/checkpoint-sqlite
...
Bumps [langchain-core](https://github.com/langchain-ai/langchain ) from 0.3.0 to 0.3.15.
- [Release notes](https://github.com/langchain-ai/langchain/releases )
- [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==0.3.0...langchain-core==0.3.15 )
---
updated-dependencies:
- dependency-name: langchain-core
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-04-02 15:50:49 -07:00
dependabot[bot] and Nuno Campos
499a1812e8
Bump langchain-core from 0.2.38 to 0.2.43 in /libs/checkpoint
...
Bumps [langchain-core](https://github.com/langchain-ai/langchain ) from 0.2.38 to 0.2.43.
- [Release notes](https://github.com/langchain-ai/langchain/releases )
- [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==0.2.38...langchain-core==0.2.43 )
---
updated-dependencies:
- dependency-name: langchain-core
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-04-02 15:49:49 -07:00
Nuno Campos
2cb81201b2
0.3.24
2025-04-02 15:45:06 -07:00
Nuno Campos
494cd4f6ad
checkpoint 2.0.24
2025-04-02 15:44:58 -07:00
Nuno Campos and GitHub
9226b42150
Add checkpoint migrations for state graph internal channels ( #4125 )
2025-04-02 15:42:28 -07:00
Eugene Yurtsev and GitHub
5e0a843423
sdk-py: release 0.1.61 ( #4148 )
2025-04-02 15:34:36 -07:00
6e54f74fa9
sdk-py: Add option to set description via client sdk ( #4147 )
...
Co-authored-by: William FH <13333726+hinthornw@users.noreply.github.com >
2025-04-02 21:26:14 +00:00
Nuno Campos
ffb8400b19
Disable tests in 3.9
2025-04-02 14:05:15 -07:00
Nuno Campos
b6b40149a9
Fix
2025-04-02 13:56:29 -07:00
Nuno Campos
5eecd2ac3a
Update
2025-04-02 13:31:36 -07:00
Nuno Campos
c38f7be89c
Migrate quadratic channels too
2025-04-02 13:24:20 -07:00
Nuno Campos
2d406f03a2
Lint
2025-04-02 12:56:09 -07:00
Nuno Campos
1c48ec0aba
Lint
2025-04-02 12:48:10 -07:00
Nuno Campos
4dda404da3
Implement checkpoint migration
...
- Migrate start:{node} channels to branch:to:{node}
- Migrate {node} channels to branch:to:{node}
2025-04-02 12:44:59 -07:00
Vadym Barda and GitHub
67e8f8fc11
prebuilt: add optional pre-model hook that runs before calling LLM in create_react_agent ( #4059 )
...
Example:
```python
from typing import Any
from langchain_openai import ChatOpenAI
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_core.messages import AnyMessage
from langchain_core.messages.utils import count_tokens_approximately
from langgraph.graph import MessagesState
from langgraph.prebuilt.chat_agent_executor import create_react_agent, AgentState
from langgraph.checkpoint.memory import InMemorySaver
from langmem.short_term import SummarizationNode, RunningSummary
class State(MessagesState):
context: dict[str, Any]
search = TavilySearchResults(max_results=3)
tools = [search]
model = ChatOpenAI(model="gpt-4o")
summarization_model = model.bind(max_tokens=256)
summarization_node = SummarizationNode(
token_counter=count_tokens_approximately,
model=summarization_model,
max_tokens=2048,
max_summary_tokens=256,
output_messages_key="messages"
# output_messages_key="llm_input_messages"
)
checkpointer = InMemorySaver()
class State(AgentState):
user_language: str
# summarization-related keys
context: dict[str, Any]
def prompt(state):
language = state["user_language"]
system_msg = f"Always respond in {language}"
return [{"role": "system", "content": system_msg}] + state["messages"]
graph = create_react_agent(
model,
tools,
prompt=prompt,
pre_model_hook=summarization_node,
state_schema=State,
checkpointer=checkpointer
)
```
2025-04-02 15:41:31 +00:00
Nuno Campos and Nuno Campos
6fe319ed1b
WIP: Add migrate_checkpoint
2025-04-02 07:24:55 -07:00
Vadym Barda and GitHub
55f922cf2f
langgraph: release 0.3.23 ( #4141 )
2025-04-02 09:50:18 -04:00
Nuno Campos
6efeefe424
Maintain checkpoint LATEST_VERSION constant in langgraph lib
...
- This should be controlled by the langgraph version, not the version of langgraph-checkpoint installed
2025-04-01 21:46:38 -07:00
William FH and GitHub
da8b8c606a
Release CLI ( #4124 )
...
Signed-off-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com >
2025-04-01 21:28:58 -07:00
William FH and GitHub
dcda8c24d6
Add checkpointer configuration support in langgraph.json ( #4122 )
...
Signed-off-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com >
2025-04-01 21:16:12 -07:00
Vadym Barda and GitHub
e3d697620b
langgraph: support removing all messages with RemoveMessage ( #4117 )
2025-04-01 17:51:54 -04:00
Nuno Campos
30883729f0
0.3.22
2025-04-01 07:54:24 -07:00
William Fu-Hinthorn
9bd78ed483
Allow blocking in dev
...
Signed-off-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com >
2025-04-01 05:45:47 -07:00
Nuno Campos
e85b7e6cd9
Lint
2025-03-31 18:46:51 -07:00
Nuno Campos
94fa46f9fa
Avoid creating checkpoint unless we're saving it
...
- When checkpointing is disabled don't call create_checkpoint in PregelLoop
- In local_read apply writes directly to copies of updated channels
- Add BaseChannel.copy() method to create channel copies with less overhead
2025-03-31 18:37:13 -07:00
Nuno Campos
fd64ada9de
Avoid raise-catch strategy in BaseChannel.checkpoint()
...
- This mirrors the work done earlier on BaseChannel.get()
- Comparing to a sentinel value is significantly faster than raising and catching an exception
2025-03-31 17:48:19 -07:00
Nuno Campos
5e9e7b79fe
Lint
2025-03-31 17:36:00 -07:00
Nuno Campos
c49a077789
Lint
2025-03-31 17:24:26 -07:00
Nuno Campos
881b07cf7f
Lint
2025-03-31 16:36:16 -07:00
Nuno Campos
0425d4e65d
Update
2025-03-31 16:29:07 -07:00
Nuno Campos
118016a21c
Add fast path to serialize None values
2025-03-31 16:15:56 -07:00
Nuno Campos
067b99c789
Lazily create atomic counters in pregel scratchpad
...
- many times these aren't actually used, so makes sense to delay creation until needed
2025-03-31 15:19:53 -07:00