|
|
@@ -154,6 +154,10 @@ def _instantiate(name: str, common: dict[str, Any]) -> Any:
|
|
|
# ============================================================
|
|
|
# 进程级缓存
|
|
|
# ============================================================
|
|
|
+# 没有「摘要模型」这一档:压缩用的 SummarizationMiddleware 由 deepagents 内部
|
|
|
+# 构造,拿到的就是传进 create_deep_agent 的那个实例,没有注入另一个模型的入口。
|
|
|
+# 所以思考级别同样作用于压缩调用;要单独给压缩配便宜模型,得先能替换掉那个
|
|
|
+# 中间件(同名冲突见 AGENTS.md 不变式 5)。
|
|
|
|
|
|
@functools.lru_cache(maxsize=8)
|
|
|
def _cached_main(model_name: str, thinking: str) -> Any:
|
|
|
@@ -167,21 +171,9 @@ def get_model(model_name: str | None = None, thinking: str | None = None) -> Any
|
|
|
return _cached_main(name, level)
|
|
|
|
|
|
|
|
|
-@functools.lru_cache(maxsize=4)
|
|
|
-def _cached_summary(model_name: str, thinking: str) -> Any:
|
|
|
- # 摘要不需要思考链:开启思考只会让压缩变慢变贵,且摘要本身是「提取」而非「推理」
|
|
|
- return build_model(model_name, thinking)
|
|
|
-
|
|
|
-
|
|
|
-def get_summary_model() -> Any:
|
|
|
- """取摘要模型实例(自动压缩用)。"""
|
|
|
- return _cached_summary(config.SUMMARY_MODEL, "off")
|
|
|
-
|
|
|
-
|
|
|
def clear_cache() -> None:
|
|
|
"""丢弃模型实例缓存(思考级别切换后调用)。"""
|
|
|
_cached_main.cache_clear()
|
|
|
- _cached_summary.cache_clear()
|
|
|
|
|
|
|
|
|
def describe() -> dict[str, Any]:
|
|
|
@@ -189,7 +181,6 @@ def describe() -> dict[str, Any]:
|
|
|
name = config.MODEL
|
|
|
return {
|
|
|
"model": name,
|
|
|
- "summary_model": config.SUMMARY_MODEL,
|
|
|
"thinking": normalize_thinking(None),
|
|
|
"thinking_levels": list(VALID_THINKING_LEVELS),
|
|
|
"context_window": context_window(name),
|