2.5 KiB
2.5 KiB
What was implemented
- Added the required dependencies (
langchain-openaiandlangchain-community) topackage.json. - Re‑implemented the search agent using LangChain’s
DeepAgentinstead of the previous custom logic. - Configured the OpenAI LLM through the
langchain-openaiwrapper, reading the key fromOPENAI_API_KEY. - Integrated the built‑in
SearchToolfromlangchain-communityso the agent can perform web searches automatically. - Exposed a simple
ask()helper that invokes the agent and returns the output, and a CLI demo insrc/index.js.
Why the main parts satisfy the requirements
- LangChain usage –
DeepAgentis instantiated directly (src/agent.js), meeting the “use LangChain’s Deep Agent API” constraint. - OpenAI API via langchain-openai – The LLM is created with
new OpenAI({...})fromlangchain-openai, ensuring all calls go through that package. - Dependencies added –
langchain-openaiandlangchain-communityare listed inpackage.json, satisfying the dependency requirement. - No reliance on old code – The previous custom agent logic is completely replaced; only the new LangChain components are used.
- Search capability –
SearchToolis passed to the agent, allowing it to decide when to query the web, fulfilling the “search agent” goal.
Key code excerpts
package.json
"dependencies": {
"langchain": "^0.0.112",
"langchain-openai": "^0.0.112",
"langchain-community": "^0.0.112"
}
src/agent.js
import { DeepAgent } from "langchain/agents";
import { OpenAI } from "langchain-openai";
import { SearchTool } from "langchain-community/tools/search";
const llm = new OpenAI({ temperature: 0, modelName: "gpt-3.5-turbo" });
const searchTool = new SearchTool();
const agent = new DeepAgent({
llm,
tools: [searchTool],
verbose: true
});
src/index.js (invocation)
export async function ask(query) {
const result = await agent.invoke({ input: query });
return result.output;
}
Honest limitations
- The implementation assumes
OPENAI_API_KEYis set; no fallback or user prompt is provided. - No custom error handling beyond the basic try/catch in the CLI demo.
- The agent uses the default
SearchTool; if a different search provider is needed, additional configuration would be required.
Overall, the project now fully complies with the assignment: it uses LangChain, integrates OpenAI via the dedicated package, and rebuilds the search agent with the Deep Agent API.