Use DeepAgents model resolver in reviewer graph
All checks were successful
build / build (push) Successful in 14s
All checks were successful
build / build (push) Successful in 14s
This commit is contained in:
@@ -7,11 +7,11 @@ typed :class:`ReviewReport` through the ``submit_review_report`` tool.
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from types import SimpleNamespace
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from a2a_pack import GiteaBackend
|
from a2a_pack import GiteaBackend
|
||||||
from deepagents import create_deep_agent
|
from a2a_pack.deepagents import create_a2a_deep_agent
|
||||||
from langchain_openai import ChatOpenAI
|
|
||||||
|
|
||||||
from .config import Settings, load_settings
|
from .config import Settings, load_settings
|
||||||
from .tools import ReviewReport, ToolContext, build_tools
|
from .tools import ReviewReport, ToolContext, build_tools
|
||||||
@@ -132,22 +132,19 @@ def build_reviewer_graph(
|
|||||||
+ ", ".join(missing_llm_fields)
|
+ ", ".join(missing_llm_fields)
|
||||||
)
|
)
|
||||||
|
|
||||||
model_kwargs: dict[str, Any] = {
|
llm_creds = SimpleNamespace(
|
||||||
"model": ctx.llm_model,
|
model=ctx.llm_model,
|
||||||
"base_url": ctx.llm_base_url,
|
base_url=ctx.llm_base_url,
|
||||||
"api_key": ctx.llm_api_key,
|
api_key=ctx.llm_api_key,
|
||||||
"stream_usage": True,
|
temperature_mode=ctx.llm_temperature_mode or "default",
|
||||||
}
|
temperature=ctx.llm_temperature,
|
||||||
if ctx.llm_temperature_mode != "omit":
|
extra_body=dict(ctx.llm_extra_body or {}),
|
||||||
model_kwargs["temperature"] = (
|
)
|
||||||
ctx.llm_temperature if ctx.llm_temperature is not None else 0.0
|
|
||||||
)
|
|
||||||
if ctx.llm_extra_body:
|
|
||||||
model_kwargs["extra_body"] = dict(ctx.llm_extra_body)
|
|
||||||
model = ChatOpenAI(**model_kwargs)
|
|
||||||
|
|
||||||
return create_deep_agent(
|
return create_a2a_deep_agent(
|
||||||
model=model,
|
ctx,
|
||||||
|
creds=llm_creds,
|
||||||
|
default_temperature=0.0,
|
||||||
tools=tools,
|
tools=tools,
|
||||||
system_prompt=SYSTEM_PROMPT,
|
system_prompt=SYSTEM_PROMPT,
|
||||||
backend=backend,
|
backend=backend,
|
||||||
|
|||||||
@@ -84,16 +84,13 @@ def test_reviewer_graph_uses_forwarded_llm_credentials(
|
|||||||
) -> None:
|
) -> None:
|
||||||
captured: dict = {}
|
captured: dict = {}
|
||||||
|
|
||||||
class FakeChatOpenAI:
|
def fake_create_a2a_deep_agent(ctx, *, creds, default_temperature=None, **kwargs) -> dict[str, object]:
|
||||||
def __init__(self, **kwargs: object) -> None:
|
captured["creds"] = creds
|
||||||
captured["model_kwargs"] = kwargs
|
captured["default_temperature"] = default_temperature
|
||||||
|
|
||||||
def fake_create_deep_agent(**kwargs: object) -> dict[str, object]:
|
|
||||||
captured["graph_kwargs"] = kwargs
|
captured["graph_kwargs"] = kwargs
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
monkeypatch.setattr(reviewer_builder, "ChatOpenAI", FakeChatOpenAI)
|
monkeypatch.setattr(reviewer_builder, "create_a2a_deep_agent", fake_create_a2a_deep_agent)
|
||||||
monkeypatch.setattr(reviewer_builder, "create_deep_agent", fake_create_deep_agent)
|
|
||||||
|
|
||||||
graph = build_reviewer_graph(
|
graph = build_reviewer_graph(
|
||||||
ReviewerContext(
|
ReviewerContext(
|
||||||
@@ -111,13 +108,13 @@ def test_reviewer_graph_uses_forwarded_llm_credentials(
|
|||||||
)
|
)
|
||||||
|
|
||||||
assert graph is captured["graph_kwargs"]
|
assert graph is captured["graph_kwargs"]
|
||||||
assert captured["model_kwargs"] == {
|
creds = captured["creds"]
|
||||||
"model": "platform-model",
|
assert getattr(creds, "model") == "platform-model"
|
||||||
"base_url": "http://litellm.test/v1",
|
assert getattr(creds, "base_url") == "http://litellm.test/v1"
|
||||||
"api_key": "scoped-grant-token",
|
assert getattr(creds, "api_key") == "scoped-grant-token"
|
||||||
"stream_usage": True,
|
assert getattr(creds, "temperature_mode") == "omit"
|
||||||
"extra_body": {"extra_body": {"thinking": {"type": "disabled"}}},
|
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(
|
def test_reviewer_graph_rejects_missing_forwarded_llm_credentials(
|
||||||
|
|||||||
Reference in New Issue
Block a user