Use DeepAgents model resolver in reviewer graph
All checks were successful
build / build (push) Successful in 14s

This commit is contained in:
robert
2026-06-06 20:34:29 -03:00
parent f789a1e3df
commit bccad36fc6
2 changed files with 25 additions and 31 deletions

View File

@@ -7,11 +7,11 @@ typed :class:`ReviewReport` through the ``submit_review_report`` tool.
from __future__ import annotations
from dataclasses import dataclass
from types import SimpleNamespace
from typing import Any
from a2a_pack import GiteaBackend
from deepagents import create_deep_agent
from langchain_openai import ChatOpenAI
from a2a_pack.deepagents import create_a2a_deep_agent
from .config import Settings, load_settings
from .tools import ReviewReport, ToolContext, build_tools
@@ -132,22 +132,19 @@ def build_reviewer_graph(
+ ", ".join(missing_llm_fields)
)
model_kwargs: dict[str, Any] = {
"model": ctx.llm_model,
"base_url": ctx.llm_base_url,
"api_key": ctx.llm_api_key,
"stream_usage": True,
}
if ctx.llm_temperature_mode != "omit":
model_kwargs["temperature"] = (
ctx.llm_temperature if ctx.llm_temperature is not None else 0.0
llm_creds = SimpleNamespace(
model=ctx.llm_model,
base_url=ctx.llm_base_url,
api_key=ctx.llm_api_key,
temperature_mode=ctx.llm_temperature_mode or "default",
temperature=ctx.llm_temperature,
extra_body=dict(ctx.llm_extra_body or {}),
)
if ctx.llm_extra_body:
model_kwargs["extra_body"] = dict(ctx.llm_extra_body)
model = ChatOpenAI(**model_kwargs)
return create_deep_agent(
model=model,
return create_a2a_deep_agent(
ctx,
creds=llm_creds,
default_temperature=0.0,
tools=tools,
system_prompt=SYSTEM_PROMPT,
backend=backend,

View File

@@ -84,16 +84,13 @@ def test_reviewer_graph_uses_forwarded_llm_credentials(
) -> None:
captured: dict = {}
class FakeChatOpenAI:
def __init__(self, **kwargs: object) -> None:
captured["model_kwargs"] = kwargs
def fake_create_deep_agent(**kwargs: object) -> dict[str, object]:
def fake_create_a2a_deep_agent(ctx, *, creds, default_temperature=None, **kwargs) -> dict[str, object]:
captured["creds"] = creds
captured["default_temperature"] = default_temperature
captured["graph_kwargs"] = kwargs
return kwargs
monkeypatch.setattr(reviewer_builder, "ChatOpenAI", FakeChatOpenAI)
monkeypatch.setattr(reviewer_builder, "create_deep_agent", fake_create_deep_agent)
monkeypatch.setattr(reviewer_builder, "create_a2a_deep_agent", fake_create_a2a_deep_agent)
graph = build_reviewer_graph(
ReviewerContext(
@@ -111,13 +108,13 @@ def test_reviewer_graph_uses_forwarded_llm_credentials(
)
assert graph is captured["graph_kwargs"]
assert captured["model_kwargs"] == {
"model": "platform-model",
"base_url": "http://litellm.test/v1",
"api_key": "scoped-grant-token",
"stream_usage": True,
"extra_body": {"extra_body": {"thinking": {"type": "disabled"}}},
}
creds = captured["creds"]
assert getattr(creds, "model") == "platform-model"
assert getattr(creds, "base_url") == "http://litellm.test/v1"
assert getattr(creds, "api_key") == "scoped-grant-token"
assert getattr(creds, "temperature_mode") == "omit"
assert getattr(creds, "extra_body") == {"extra_body": {"thinking": {"type": "disabled"}}}
assert captured["default_temperature"] == 0.0
def test_reviewer_graph_rejects_missing_forwarded_llm_credentials(