langchain-dev-utils 1.2.15__py3-none-any.whl → 1.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- __version__ = "1.2.15"
1
+ __version__ = "1.2.16"
@@ -7,6 +7,7 @@ from langchain.agents.middleware.types import (
7
7
  ResponseT,
8
8
  _InputAgentState,
9
9
  _OutputAgentState,
10
+ StateT_co,
10
11
  )
11
12
  from langchain.agents.structured_output import ResponseFormat
12
13
  from langchain_core.messages import SystemMessage
@@ -25,8 +26,8 @@ def create_agent( # noqa: PLR0915
25
26
  tools: Sequence[BaseTool | Callable | dict[str, Any]] | None = None,
26
27
  *,
27
28
  system_prompt: str | SystemMessage | None = None,
28
- middleware: Sequence[AgentMiddleware[AgentState[ResponseT], ContextT]] = (),
29
29
  response_format: ResponseFormat[ResponseT] | type[ResponseT] | None = None,
30
+ middleware: Sequence[AgentMiddleware[StateT_co, ContextT]] = (),
30
31
  state_schema: type[AgentState[ResponseT]] | None = None,
31
32
  context_schema: type[ContextT] | None = None,
32
33
  checkpointer: Checkpointer | None = None,
@@ -32,7 +32,7 @@ def format_prompt(request: ModelRequest) -> str:
32
32
  ... {
33
33
  ... "messages": [HumanMessage(content="Hello")],
34
34
  ... },
35
- ... context=Context(name="assistant", user="tbice"),
35
+ ... context=Context(name="assistant", user="Tom"),
36
36
  ... )
37
37
 
38
38
  """
@@ -22,7 +22,7 @@ class ModelFallbackMiddleware(_ModelFallbackMiddleware):
22
22
 
23
23
  fallback = ModelFallbackMiddleware(
24
24
  "vllm:qwen3-8b", ## Try first on error
25
- "openrouter:meta-llama/llama-3.3-8b-instruct:free" #Then this
25
+ "vllm:gpt-oss-20b", #Then this
26
26
  )
27
27
 
28
28
  agent = create_agent(
@@ -30,7 +30,7 @@ class ModelFallbackMiddleware(_ModelFallbackMiddleware):
30
30
  middleware=[fallback],
31
31
  )
32
32
 
33
- # If primary fails: tries qwen3-8b, then llama-3.3-8b-instruct
33
+ # If primary fails: tries qwen3-8b, then gpt-oss-20b
34
34
  result = await agent.invoke({"messages": [HumanMessage("Hello")]})
35
35
  ```
36
36
  """
@@ -1,8 +1,8 @@
1
- from typing import Any, Awaitable, Callable, NotRequired, Optional, cast
1
+ from typing import Annotated, Any, Awaitable, Callable, NotRequired, Optional, cast
2
2
 
3
3
  from langchain.agents import AgentState
4
4
  from langchain.agents.middleware import AgentMiddleware, ModelRequest, ModelResponse
5
- from langchain.agents.middleware.types import ModelCallResult
5
+ from langchain.agents.middleware.types import ModelCallResult, OmitFromInput
6
6
  from langchain_core.language_models import BaseChatModel
7
7
  from langchain_core.messages import AnyMessage, SystemMessage
8
8
  from langchain_core.tools import BaseTool
@@ -65,7 +65,7 @@ Strictly adhere to tool call requirements!
65
65
 
66
66
 
67
67
  class ModelRouterState(AgentState):
68
- router_model_selection: str
68
+ router_model_selection: Annotated[str, OmitFromInput]
69
69
 
70
70
 
71
71
  class ModelRouterMiddleware(AgentMiddleware):
@@ -126,13 +126,12 @@ class _BaseChatOpenAICompatible(BaseChatOpenAI):
126
126
  Base template class for OpenAI-compatible chat model implementations.
127
127
 
128
128
  This class provides a foundation for integrating various LLM providers that
129
- offer OpenAI-compatible APIs (such as vLLM, OpenRouter, ZAI, Moonshot,
130
- and many others). It enhances the base OpenAI functionality by:
129
+ offer OpenAI-compatible APIs. It enhances the base OpenAI functionality by:
131
130
 
132
131
  **1. Supports output of more types of reasoning content (reasoning_content)**
133
132
  ChatOpenAI can only output reasoning content natively supported by official
134
133
  OpenAI models, while OpenAICompatibleChatModel can output reasoning content
135
- from other model providers (e.g., OpenRouter, vLLM).
134
+ from other model providers.
136
135
 
137
136
  **2. Dynamically adapts to choose the most suitable structured-output method**
138
137
  OpenAICompatibleChatModel adds method="auto" (default), which selects the best
@@ -593,7 +592,7 @@ def _create_openai_compatible_model(
593
592
  configuring environment variable mappings and default base URLs specific to each provider.
594
593
 
595
594
  Args:
596
- provider: Provider identifier (e.g., `vllm`,`openrouter`)
595
+ provider: Provider identifier (e.g.`vllm`)
597
596
  base_url: Default API base URL for the provider
598
597
  compatibility_options: Optional configuration for the provider
599
598
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langchain-dev-utils
3
- Version: 1.2.15
3
+ Version: 1.3.0
4
4
  Summary: A practical utility library for LangChain and LangGraph development
5
5
  Project-URL: Source Code, https://github.com/TBice123123/langchain-dev-utils
6
6
  Project-URL: repository, https://github.com/TBice123123/langchain-dev-utils
@@ -8,7 +8,7 @@ Project-URL: documentation, https://tbice123123.github.io/langchain-dev-utils
8
8
  Author-email: tiebingice <tiebingice123@outlook.com>
9
9
  License-File: LICENSE
10
10
  Requires-Python: >=3.11
11
- Requires-Dist: langchain>=1.1.0
11
+ Requires-Dist: langchain>=1.2.0
12
12
  Requires-Dist: langgraph>=1.0.0
13
13
  Provides-Extra: standard
14
14
  Requires-Dist: json-repair>=0.53.1; extra == 'standard'
@@ -1,15 +1,15 @@
1
- langchain_dev_utils/__init__.py,sha256=Q6rDLuL8XHKQggYBtRCtxzpPQJgFYWn4x0gcVlH7H4g,23
1
+ langchain_dev_utils/__init__.py,sha256=7RIJ-Nh9kHJf5O5NvahUeP8DNXq6oIzbYcIt_yKv0lQ,23
2
2
  langchain_dev_utils/_utils.py,sha256=MFEzR1BjXMj6HEVwt2x2omttFuDJ_rYAEbNqe99r9pM,1338
3
3
  langchain_dev_utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  langchain_dev_utils/agents/__init__.py,sha256=PJ-lSDZv_AXMYA3H4fx-HzJa14tPbkGmq1HX8LNfaPo,125
5
- langchain_dev_utils/agents/factory.py,sha256=XdGjktksfTDys7X4SgfPrQz10HUo5fTNAWESDQenIlE,3728
5
+ langchain_dev_utils/agents/factory.py,sha256=mr-Q3fxxV_yEN3l8p-Rk0uxXvKjDUGEZDtrg9HRwr-8,3732
6
6
  langchain_dev_utils/agents/file_system.py,sha256=Yk3eetREE26WNrnTWLoiDUpOyCJ-rhjlfFDk6foLa1E,8468
7
7
  langchain_dev_utils/agents/plan.py,sha256=WwhoiJBmVYVI9bT8HfjCzTJ_SIp9WFil0gOeznv2omQ,6497
8
8
  langchain_dev_utils/agents/wrap.py,sha256=RuchoH_VotPmKFuYEn2SXoSgNxZhSA9jKM0Iv_8oHLk,4718
9
9
  langchain_dev_utils/agents/middleware/__init__.py,sha256=EECbcYcHXQAMA-guJNRGwCVi9jG957d0nOaoIuyIKC0,832
10
- langchain_dev_utils/agents/middleware/format_prompt.py,sha256=rfii98tmOqkjaNHxWy7hovhEYKXrF0CdzsMLO54_CDI,2359
11
- langchain_dev_utils/agents/middleware/model_fallback.py,sha256=nivtXXF4cwyOBv6p7RW12nXtNg87wjTWxO3BKIYiroI,1674
12
- langchain_dev_utils/agents/middleware/model_router.py,sha256=sBXp1D1u_mv9g_JN_RcwKp9DONEY3XMWQVb4nGHPgkw,7925
10
+ langchain_dev_utils/agents/middleware/format_prompt.py,sha256=LzYiQXCRvkpfDhGPxhZwdepeU3j-HUWPJqcx3FWsfT4,2357
11
+ langchain_dev_utils/agents/middleware/model_fallback.py,sha256=8xiNjTJ0yiRkPLCRfAGNnqY1TLstj1Anmiqyv5w2mA8,1633
12
+ langchain_dev_utils/agents/middleware/model_router.py,sha256=qBspvj9ZoKfmC1pHWTO0EHHfxjgCUd-TuSbqvZl0kmg,7977
13
13
  langchain_dev_utils/agents/middleware/plan.py,sha256=0qDCmenxgY_zrwMfOyYlgLfhYNw-HszNLeeOkfj14NA,16002
14
14
  langchain_dev_utils/agents/middleware/summarization.py,sha256=IoZ2PM1OC3AXwf0DWpfreuPOAipeiYu0KPmAABWXuY0,3087
15
15
  langchain_dev_utils/agents/middleware/tool_call_repair.py,sha256=oZF0Oejemqs9kSn8xbW79FWyVVarL4IGCz0gpqYBkFM,3529
@@ -19,7 +19,7 @@ langchain_dev_utils/chat_models/__init__.py,sha256=YSLUyHrWEEj4y4DtGFCOnDW02VIYZ
19
19
  langchain_dev_utils/chat_models/base.py,sha256=BzaoCIv145eE8b5wNDsbZDHn4EAxe4vdlptp7qXPWKk,11625
20
20
  langchain_dev_utils/chat_models/types.py,sha256=MD3cv_ZIe9fCdgwisNfuxAOhy-j4YSs1ZOQYyCjlNKs,927
21
21
  langchain_dev_utils/chat_models/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- langchain_dev_utils/chat_models/adapters/openai_compatible.py,sha256=4iJgMGAReiJ668O9ZGAZbduxNY2PhEJJonDhQDBge44,24596
22
+ langchain_dev_utils/chat_models/adapters/openai_compatible.py,sha256=PkOoYNwp2kEhXalUHXCCAnL7LXfeiNoeiQ678suEse4,24492
23
23
  langchain_dev_utils/embeddings/__init__.py,sha256=zbEOaV86TUi9Zrg_dH9dpdgacWg31HMJTlTQknA9EKk,244
24
24
  langchain_dev_utils/embeddings/base.py,sha256=BGoWY0L7nG9iRV3d4sSagXhECXrwvS1xA-A_OVltn3k,9406
25
25
  langchain_dev_utils/message_convert/__init__.py,sha256=ZGrHGXPKMrZ_p9MqfIVZ4jgbEyb7aC4Q7X-muuThIYU,457
@@ -32,7 +32,7 @@ langchain_dev_utils/pipeline/types.py,sha256=T3aROKKXeWvd0jcH5XkgMDQfEkLfPaiOhhV
32
32
  langchain_dev_utils/tool_calling/__init__.py,sha256=mu_WxKMcu6RoTf4vkTPbA1WSBSNc6YIqyBtOQ6iVQj4,322
33
33
  langchain_dev_utils/tool_calling/human_in_the_loop.py,sha256=7Z_QO5OZUR6K8nLoIcafc6osnvX2IYNorOJcbx6bVso,9672
34
34
  langchain_dev_utils/tool_calling/utils.py,sha256=S4-KXQ8jWmpGTXYZitovF8rxKpaSSUkFruM8LDwvcvE,2765
35
- langchain_dev_utils-1.2.15.dist-info/METADATA,sha256=f5J-j-1HdBe7bor7rXmgFWaLEXYXci0CpppO8hJaJ2U,4516
36
- langchain_dev_utils-1.2.15.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
37
- langchain_dev_utils-1.2.15.dist-info/licenses/LICENSE,sha256=AWAOzNEcsvCEzHOF0qby5OKxviVH_eT9Yce1sgJTico,1084
38
- langchain_dev_utils-1.2.15.dist-info/RECORD,,
35
+ langchain_dev_utils-1.3.0.dist-info/METADATA,sha256=_fA9O0n1NOwnh6Vg4ExNxmJ0Sa7yBJdhwvOyK4Cbycw,4515
36
+ langchain_dev_utils-1.3.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
37
+ langchain_dev_utils-1.3.0.dist-info/licenses/LICENSE,sha256=AWAOzNEcsvCEzHOF0qby5OKxviVH_eT9Yce1sgJTico,1084
38
+ langchain_dev_utils-1.3.0.dist-info/RECORD,,