MCPcopy Create free account
hub / github.com/Dizzy-K/AutoPT / build_nodes

Function build_nodes

workflow/nodes.py:197–238  ·  view source on GitHub ↗
(
    *,
    llm: "BaseChatModel",
    prompts: PromptBundle,
    tool_specs: list[ToolSpec],
    context: WorkflowContext,
)

Source from the content-addressed store, hash-verified

195
196
197def build_nodes(
198 *,
199 llm: "BaseChatModel",
200 prompts: PromptBundle,
201 tool_specs: list[ToolSpec],
202 context: WorkflowContext,
203) -> NodeSet:
204 try:
205 from langchain.agents import create_react_agent
206 from langchain_core.prompts import PromptTemplate
207 except ImportError as exc:
208 raise RuntimeError(
209 "LangChain is required to build workflow nodes."
210 ) from exc
211
212 scan_tools = build_langchain_tools([tool for tool in tool_specs if tool.name == "EXECMD"])
213 inquire_tools = build_langchain_tools([tool for tool in tool_specs if tool.name == "ReadHTML"])
214 exploit_tools = build_langchain_tools([tool for tool in tool_specs if tool.name == "EXECMD"])
215
216 scan_agent = create_react_agent(
217 llm=llm,
218 tools=scan_tools,
219 prompt=PromptTemplate.from_template(prompts.scan),
220 )
221 inquire_agent = create_react_agent(
222 llm=llm,
223 tools=inquire_tools,
224 prompt=PromptTemplate.from_template(prompts.inquire),
225 )
226 exploit_agent = create_react_agent(
227 llm=llm,
228 tools=exploit_tools,
229 prompt=PromptTemplate.from_template(prompts.exploit),
230 )
231
232 return NodeSet(
233 scan=partial(agent_node, context=context, agent=scan_agent, tools=scan_tools, sender_name="Scan"),
234 inquire=partial(agent_node, context=context, agent=inquire_agent, tools=inquire_tools, sender_name="Inquire"),
235 exploit=partial(agent_node, context=context, agent=exploit_agent, tools=exploit_tools, sender_name="Exploit"),
236 vuln_select=partial(vuln_select_node, context=context, sender_name="Vuln_select"),
237 check=partial(check_node, context=context, sender_name="Check"),
238 )

Callers 1

compileMethod · 0.85

Calls 2

build_langchain_toolsFunction · 0.85
NodeSetClass · 0.85

Tested by

no test coverage detected