Переделываю систему под агента-планировщика
This commit is contained in:
26
agent/plan_reviewer.py
Normal file
26
agent/plan_reviewer.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# reviewer.py
|
||||
from langchain_ollama import ChatOllama
|
||||
from langchain_core.messages import SystemMessage, HumanMessage
|
||||
|
||||
class PlanReviewerAgent:
|
||||
def __init__(self, llm=None):
|
||||
self.llm = llm or ChatOllama(
|
||||
model=MODEL_NAME,
|
||||
temperature=0.0
|
||||
)
|
||||
|
||||
def review(self, original_task: str, plan: List[Dict], execution_results: List[Dict]) -> dict:
|
||||
system_prompt = """Ты - ревьювер. Оцени, достигнута ли цель задачи на основе выполненного плана.
|
||||
Верни JSON с полями:
|
||||
- "status": "approved" / "changes_requested" / "rejected"
|
||||
- "feedback": пояснение
|
||||
- "suggested_plan_correction": если нужно изменить план - предложи новый план (массив шагов)
|
||||
"""
|
||||
user_prompt = f"""
|
||||
Задача: {original_task}
|
||||
План: {json.dumps(plan, indent=2)}
|
||||
Результаты выполнения: {json.dumps(execution_results, indent=2)}
|
||||
Оцени результат.
|
||||
"""
|
||||
response = self.llm.invoke([SystemMessage(content=system_prompt), HumanMessage(content=user_prompt)])
|
||||
return json.loads(response.content)
|
||||
Reference in New Issue
Block a user