AWS Step Functions 工具包
¥AWS Step Functions Toolkit
AWS Step Functions 是一项可视化工作流服务,可帮助开发者使用 AWS 服务构建分布式应用、自动化流程、编排微服务以及创建数据和机器学习 (ML) 管道。
¥AWS Step Functions are a visual workflow service that helps developers use AWS services to build distributed applications, automate processes, orchestrate microservices, and create data and machine learning (ML) pipelines.
通过在提供给代理的工具列表中包含 AWSSfn
工具,你可以授予代理调用在 AWS 云中运行的异步工作流的能力。
¥By including a AWSSfn
tool in the list of tools provided to an Agent, you can grant your Agent the ability to invoke async workflows running in your AWS Cloud.
当代理使用 AWSSfn
工具时,它将提供一个 string
类型的参数,该参数随后将被传递给此工具支持的某个操作。支持的操作如下:StartExecution
、DescribeExecution
和 SendTaskSuccess
。
¥When an Agent uses the AWSSfn
tool, it will provide an argument of type string
which will in turn be passed into one of the supported actions this tool supports. The supported actions are: StartExecution
, DescribeExecution
, and SendTaskSuccess
.
设置
¥Setup
你需要安装 Node AWS Step Functions SDK:
¥You'll need to install the Node AWS Step Functions SDK:
- npm
- Yarn
- pnpm
npm install @aws-sdk/client-sfn
yarn add @aws-sdk/client-sfn
pnpm add @aws-sdk/client-sfn
用法
¥Usage
- npm
- Yarn
- pnpm
npm install @langchain/openai @langchain/community @langchain/core
yarn add @langchain/openai @langchain/community @langchain/core
pnpm add @langchain/openai @langchain/community @langchain/core
关于凭证的说明:
¥Note about credentials:
如果你尚未通过 AWS CLI 运行
aws configure
,则必须将region
、accessKeyId
和secretAccessKey
提供给 AWSSfn 构造函数。¥If you have not run
aws configure
via the AWS CLI, theregion
,accessKeyId
, andsecretAccessKey
must be provided to the AWSSfn constructor.与这些凭证对应的 IAM 角色必须具有调用 Step Function 的权限。
¥The IAM role corresponding to those credentials must have permission to invoke the Step Function.
import { OpenAI } from "@langchain/openai";
import {
AWSSfnToolkit,
createAWSSfnAgent,
} from "@langchain/community/agents/toolkits/aws_sfn";
const _EXAMPLE_STATE_MACHINE_ASL = `
{
"Comment": "A simple example of the Amazon States Language to define a state machine for new client onboarding.",
"StartAt": "OnboardNewClient",
"States": {
"OnboardNewClient": {
"Type": "Pass",
"Result": "Client onboarded!",
"End": true
}
}
}`;
/**
* This example uses a deployed AWS Step Function state machine with the above Amazon State Language (ASL) definition.
* You can test by provisioning a state machine using the above ASL within your AWS environment, or you can use a tool like LocalStack
* to mock AWS services locally. See https://localstack.cloud/ for more information.
*/
export const run = async () => {
const model = new OpenAI({ temperature: 0 });
const toolkit = new AWSSfnToolkit({
name: "onboard-new-client-workflow",
description:
"Onboard new client workflow. Can also be used to get status of any excuting workflow or state machine.",
stateMachineArn:
"arn:aws:states:us-east-1:1234567890:stateMachine:my-state-machine", // Update with your state machine ARN accordingly
region: "<your Sfn's region>",
accessKeyId: "<your access key id>",
secretAccessKey: "<your secret access key>",
});
const executor = createAWSSfnAgent(model, toolkit);
const input = `Onboard john doe (john@example.com) as a new client.`;
console.log(`Executing with input "${input}"...`);
const result = await executor.invoke({ input });
console.log(`Got output ${result.output}`);
console.log(
`Got intermediate steps ${JSON.stringify(
result.intermediateSteps,
null,
2
)}`
);
};
API Reference:
- OpenAI from
@langchain/openai
- AWSSfnToolkit from
@langchain/community/agents/toolkits/aws_sfn
- createAWSSfnAgent from
@langchain/community/agents/toolkits/aws_sfn