Skip to content

Commit 59bc09d

Browse files
committed
Make TODO middleware configurable
1 parent 47e07f3 commit 59bc09d

4 files changed

Lines changed: 20 additions & 9 deletions

File tree

bugbug/tools/code_review/agent.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ def __init__(
6969
show_patch_example: bool = False,
7070
verbose: bool = True,
7171
target_software: str = "Mozilla Firefox",
72+
todo_enabled: bool = True,
7273
) -> None:
7374
super().__init__()
7475

@@ -99,19 +100,23 @@ def __init__(
99100

100101
self._agent_model = llm
101102

103+
middleware = []
104+
if todo_enabled:
105+
middleware.append(
106+
TodoListMiddleware(
107+
system_prompt=CODE_REVIEW_TODO_PROMPT,
108+
tool_description=CODE_REVIEW_TODO_TOOL_DESCRIPTION,
109+
)
110+
)
111+
102112
self.agent = create_agent(
103113
llm,
104114
tools,
105115
system_prompt=SYSTEM_PROMPT_TEMPLATE.format(
106116
target_software=self.target_software,
107117
),
108118
response_format=ProviderStrategy(AgentResponse),
109-
middleware=[
110-
TodoListMiddleware(
111-
system_prompt=CODE_REVIEW_TODO_PROMPT,
112-
tool_description=CODE_REVIEW_TODO_TOOL_DESCRIPTION,
113-
)
114-
],
119+
middleware=middleware,
115120
)
116121

117122
self.review_comments_db = review_comments_db

notebooks/code_review_evaluation.ipynb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,11 @@
6969
"class CodeReviewModel(weave.Model):\n",
7070
" \"\"\"Weave Model wrapper for CodeReviewTool.\"\"\"\n",
7171
"\n",
72+
" todo_enabled: bool\n",
73+
"\n",
7274
" @cached_property\n",
7375
" def tool(self):\n",
74-
" return CodeReviewTool.create()\n",
76+
" return CodeReviewTool.create(todo_enabled=self.todo_enabled)\n",
7577
"\n",
7678
" @weave.op()\n",
7779
" async def invoke(self, diff_id: int, patch_summary: str) -> dict:\n",
@@ -82,7 +84,7 @@
8284
" }\n",
8385
"\n",
8486
"\n",
85-
"model = CodeReviewModel()"
87+
"model = CodeReviewModel(todo_enabled=True)"
8688
]
8789
},
8890
{

services/reviewhelper-api/app/config.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ class Settings(BaseSettings):
3535
# Cloud Run
3636
port: int = 8080
3737

38+
# Agent settings
39+
todo_enabled: bool = True
40+
3841
model_config = {
3942
"env_file": ".env",
4043
"env_file_encoding": "utf-8",

services/reviewhelper-api/app/review_processor.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from functools import cache
55
from typing import Collection, Iterable
66

7+
from app.config import settings
78
from app.database.models import GeneratedComment, ReviewRequest
89
from app.enums import Platform
910
from bugbug.tools.core.exceptions import LargeDiffError
@@ -32,7 +33,7 @@ class RevisionNotYetPublicError(Exception):
3233
def get_code_review_tool():
3334
from bugbug.tools.code_review import CodeReviewTool
3435

35-
return CodeReviewTool.create()
36+
return CodeReviewTool.create(todo_enabled=settings.todo_enabled)
3637

3738

3839
async def process_review(

0 commit comments

Comments
 (0)