вторая итерация

This commit is contained in:
ki.sagidullin
2026-04-12 11:48:37 +05:00
parent 8f16a6d669
commit f5677013cc
7 changed files with 190 additions and 234 deletions

View File

@@ -1,5 +1,7 @@
from .developer import DeveloperAgent
from .reviewer import ReviewerAgent
from .planner import PlannerAgent
from .executor import ExecutorAgent
from .plan_reviewer import PlanReviewerAgent
__all__ = ["DeveloperAgent", "ReviewerAgent", "PlannerAgent"]
__all__ = ["DeveloperAgent", "ReviewerAgent", "PlannerAgent", "ExecutorAgent", "PlanReviewerAgent"]

View File

@@ -1,14 +1,19 @@
# executor.py
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_classic.agents import AgentExecutor
from langchain.agents import create_agent
from langchain_ollama import ChatOllama
from langchain_core.prompts import ChatPromptTemplate
from config import LLM_HOST, MODEL_NAME
class ToolExecutor:
from typing import List, Dict
class ExecutorAgent:
def __init__(self, tools):
self.tools = tools
self.llm = llm or ChatOllama(
self.llm = ChatOllama(
model=MODEL_NAME,
temperature=0.0
temperature=0.0,
base_url=LLM_HOST
)
self.agent = self._create_agent()
@@ -18,9 +23,15 @@ class ToolExecutor:
("human", "{input}"),
("placeholder", "{agent_scratchpad}")
])
agent = create_tool_calling_agent(self.llm, self.tools, prompt)
agent = create_agent(self.llm, self.tools, prompt)
return AgentExecutor(agent=agent, tools=self.tools, verbose=True)
"""Устаревший агент-исполнитель. Теперь используется DeveloperAgent напрямую."""
def __init__(self, tools=None):
# Этот класс больше не используется, оставлен для обратной совместимости
pass
def execute_plan(self, plan: List[Dict]) -> List[Dict]:
results = []
for step in plan:
@@ -34,4 +45,6 @@ class ToolExecutor:
"output": result["output"],
"success": True # можно анализировать ошибки
})
return results
return results
"""Устаревший метод - теперь выполняется напрямую через DeveloperAgent"""
raise NotImplementedError("Этот метод больше не используется. Используйте DeveloperAgent.develop() напрямую.")

View File

@@ -1,12 +1,16 @@
# reviewer.py
from langchain_ollama import ChatOllama
from langchain_core.messages import SystemMessage, HumanMessage
from typing import List, Dict
from config import MODEL_NAME, LLM_HOST
import json
class PlanReviewerAgent:
def __init__(self, llm=None):
self.llm = llm or ChatOllama(
model=MODEL_NAME,
temperature=0.0
temperature=0.0,
base_url=LLM_HOST
)
def review(self, original_task: str, plan: List[Dict], execution_results: List[Dict]) -> dict:

View File

@@ -3,13 +3,14 @@ from langchain_ollama import ChatOllama
from langchain_core.messages import SystemMessage, HumanMessage
import json
from typing import List, Dict
from config import MODEL_NAME
from config import MODEL_NAME, LLM_HOST
class PlannerAgent:
def __init__(self, llm=None):
self.llm = llm or ChatOllama(
model=MODEL_NAME,
temperature=0.0
temperature=0.0,
base_url=LLM_HOST
)
def create_plan(self, task: str, tools_description: List[Dict]) -> List[Dict]: