EntrypointOptions 对象,或入口点名称的字符串
执行此入口点的函数
可以运行以执行工作流的 Pregel 实例
import { task, entrypoint } from "@langchain/langgraph";
import { MemorySaver } from "@langchain/langgraph-checkpoint";
import { interrupt, Command } from "@langchain/langgraph";
const composeEssay = task("compose", async (topic: string) => {
await new Promise(r => setTimeout(r, 1000)); // Simulate slow operation
return `An essay about ${topic}`;
});
const reviewWorkflow = entrypoint({
name: "review",
checkpointer: new MemorySaver()
}, async (topic: string) => {
const essay = await composeEssay(topic);
const humanReview = await interrupt({
question: "Please provide a review",
essay
});
return {
essay,
review: humanReview
};
});
// Example configuration for the workflow
const config = {
configurable: {
thread_id: "some_thread"
}
};
// Topic for the essay
const topic = "cats";
// Stream the workflow to generate the essay and await human review
for await (const result of reviewWorkflow.stream(topic, config)) {
console.log(result);
}
// Example human review provided after the interrupt
const humanReview = "This essay is great.";
// Resume the workflow with the provided human review
for await (const result of reviewWorkflow.stream(new Command({ resume: humanReview }), config)) {
console.log(result);
}
import { entrypoint, getPreviousState } from "@langchain/langgraph";
import { MemorySaver } from "@langchain/langgraph-checkpoint";
const accumulator = entrypoint({
name: "accumulator",
checkpointer: new MemorySaver()
}, async (input: string) => {
const previous = getPreviousState<number>();
return previous !== undefined ? `${previous } ${input}` : input;
});
const config = {
configurable: {
thread_id: "some_thread"
}
};
await accumulator.invoke("hello", config); // returns "hello"
await accumulator.invoke("world", config); // returns "hello world"
import { entrypoint, getPreviousState } from "@langchain/langgraph";
import { MemorySaver } from "@langchain/langgraph-checkpoint";
const myWorkflow = entrypoint({
name: "accumulator",
checkpointer: new MemorySaver()
}, async (num: number) => {
const previous = getPreviousState<number>();
// This will return the previous value to the caller, saving
// 2 * num to the checkpoint, which will be used in the next invocation
// for the `previous` parameter.
return entrypoint.final({
value: previous ?? 0,
save: 2 * num
});
});
const config = {
configurable: {
thread_id: "some_thread"
}
};
await myWorkflow.invoke(3, config); // 0 (previous was undefined)
await myWorkflow.invoke(1, config); // 6 (previous was 3 * 2 from the previous invocation)
使用
entrypoint
函数定义 LangGraph 工作流。函数签名
被包装的函数最多接受两个参数。第一个参数是函数的输入。第二个(可选)参数是 LangGraphRunnableConfig 对象。 如果您希望向函数传递多个参数,则可以将它们作为对象传递。
辅助函数
流式处理
要将数据写入“自定义”流,请使用 getWriter 函数,或 LangGraphRunnableConfig.writer 属性。
状态管理
getPreviousState 函数可用于访问在同一线程 ID 上最后一次调用入口点返回的先前状态。
如果您希望保存返回值以外的状态,可以使用 entrypoint.final 函数。