MCPcopy
hub / github.com/stitionai/devika / Agent

Class Agent

src/agents/agent.py:36–365  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34
35
36class Agent:
37 def __init__(self, base_model: str, search_engine: str, browser: Browser = None):
38 if not base_model:
39 raise ValueError("base_model is required")
40
41 self.logger = Logger()
42
43 """
44 Accumulate contextual keywords from chained prompts of all preparation agents
45 """
46 self.collected_context_keywords = []
47
48 """
49 Agents
50 """
51 self.planner = Planner(base_model=base_model)
52 self.researcher = Researcher(base_model=base_model)
53 self.formatter = Formatter(base_model=base_model)
54 self.coder = Coder(base_model=base_model)
55 self.action = Action(base_model=base_model)
56 self.internal_monologue = InternalMonologue(base_model=base_model)
57 self.answer = Answer(base_model=base_model)
58 self.runner = Runner(base_model=base_model)
59 self.feature = Feature(base_model=base_model)
60 self.patcher = Patcher(base_model=base_model)
61 self.reporter = Reporter(base_model=base_model)
62 self.decision = Decision(base_model=base_model)
63
64 self.project_manager = ProjectManager()
65 self.agent_state = AgentState()
66 self.engine = search_engine
67 self.tokenizer = tiktoken.get_encoding("cl100k_base")
68
69 async def open_page(self, project_name, url):
70 browser = await Browser().start()
71
72 await browser.go_to(url)
73 _, raw = await browser.screenshot(project_name)
74 data = await browser.extract_text()
75 await browser.close()
76
77 return browser, raw, data
78
79 def search_queries(self, queries: list, project_name: str) -> dict:
80 results = {}
81
82 knowledge_base = KnowledgeBase()
83
84 if self.engine == "bing":
85 web_search = BingSearch()
86 elif self.engine == "google":
87 web_search = GoogleSearch()
88 else:
89 web_search = DuckDuckGoSearch()
90
91 self.logger.info(f"\nSearch Engine :: {self.engine}")
92
93 for query in queries:

Callers 1

handle_messageFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected