首先创建一个用于项目的文件夹
mkdir langgraph-agent
cd langgraph-agent
安装依赖:
npm install @langchain/core @langchain/langgraph @langchain/openai @langchain/community
使用 LangGraph 创建第一个Agent
创建一个名为 agent.ts(推理 + 行动代理的简称)的文件
项目结构如下:
并将以下 TypeScript 代码添加到agent.ts中:
// agent.ts
// IMPORTANT - Add your API keys here. Be careful not to publish them.
process.env.OPENAI_API_KEY =
"sk-TXXXX7";//输入你的OPEN API KEY或者代理的KEY
process.env.TAVILY_API_KEY = "tvly-TXXXu";//输入你的TAVILY API KEY
process.env.OPENAI_BASE_URL = 'https://chatapi.midjourney-vip.cn/v1';//注意是这样配置的,这里一般使用代理的地址,因为OPEN AI国内无法访问
import { TavilySearchResults } from "@langchain/community/tools/tavily_search";
import { ChatOpenAI } from "@langchain/openai";
import { MemorySaver } from "@langchain/langgraph";
import { HumanMessage } from "@langchain/core/messages";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
// Define the tools for the agent to use
const agentTools = [new TavilySearchResults({ maxResults: 3 })];
const agentModel: any = new ChatOpenAI({
model: "gpt-3.5-turbo",
temperature: 0,
});
// Initialize memory to persist state between graph runs
const agentCheckpointer = new MemorySaver();
const agent = createReactAgent({
llm: agentModel,
tools: agentTools,
checkpointSaver: agentCheckpointer,
});
// Now it's time to use!
const agentFinalState = await agent.invoke(
{ messages: [new HumanMessage("what is the current weather in sf")] },
{ configurable: { thread_id: "42" } }
);
console.log(
agentFinalState.messages[agentFinalState.messages.length - 1].content
);
const agentNextState = await agent.invoke(
{ messages: [new HumanMessage("what about ny")] },
{ configurable: { thread_id: "42" } }
);
console.log(
agentNextState.messages[agentNextState.messages.length - 1].content
);