本指南提供了一个分步教程,指导您如何创建一个新的 JavaScript agent,并将其作为一项技能集成到您的 AIGNE 项目中。Agent 是赋予您的应用程序独特能力的核心可执行组件。通过创建自定义 agent,您可以扩展 AI 的功能,以执行特殊任务、与外部 API 交互或操作本地数据。
前提条件
在开始之前,请确保您已设置好一个 AIGNE 项目。如果您还没有,请先按照我们的入门指南创建一个。
步骤 1:创建技能文件
在 AIGNE 中,技能是一个 JavaScript 模块,它导出一个主函数和一些元数据。该函数包含了您的 agent 将执行的逻辑。
让我们创建一个生成问候语的简单 agent。在您的 AIGNE 项目根目录下创建一个名为 greeter.js 的新文件,并添加以下代码:
greeter.js
export default async function greet({ name }) {
const message = `Hello, ${name}!`;
console.log(message);
return { message };
}
greet.description = "一个返回问候消息的简单 agent。";
greet.input_schema = {
type: "object",
properties: {
name: { type: "string", description: "要包含在问候语中的名字。" },
},
required: ["name"],
};
greet.output_schema = {
type: "object",
properties: {
message: { type: "string", description: "完整的问候消息。" },
},
required: ["message"],
};让我们来分解一下这个文件:
export default async function greet({ name }):这是您的 agent 的主函数。它接受一个对象作为参数,该对象包含在input_schema中定义的输入。它返回一个必须符合output_schema所定义约束的对象。greet.description:关于 agent 功能的纯文本描述。这一点至关重要,因为主语言模型会使用此描述来理解何时以及如何使用您的工具。greet.input_schema:一个 JSON Schema 对象,用于定义您的 agent 的预期输入。这可以确保传递给您函数的数据是有效的。greet.output_schema:一个 JSON Schema 对象,用于定义您的 agent 的预期输出。
步骤 2:将技能集成到您的项目中
既然您已经创建了技能,您需要将其注册到项目的配置文件中,以便主聊天 agent 能够使用它。
- 打开项目根目录下的
aigne.yaml文件。 - 将您的新
greeter.js文件添加到skills列表中。
aigne.yaml
chat_model:
provider: openai
name: gpt-4o-mini
temperature: 0.8
agents:
- chat.yaml
skills:
- sandbox.js
- filesystem.yaml
- greeter.js # 在此处添加您的新技能通过将您的脚本添加到此列表,您就将其作为一个工具提供,主聊天 agent 可以在对话期间调用它。
步骤 3:直接测试您的 Agent
技能创建并注册后,就该进行测试了。您可以使用 aigne run 直接从命令行执行任何技能文件。
在您的终端中运行以下命令:
aigne run ./greeter.js --input '{"name": "AIGNE Developer"}'此命令会执行您的 greeter.js 脚本,并将来自 --input 标志的 JSON 字符串作为参数传递给导出的函数。您应该会看到以下输出,确认您的 agent 按预期工作:
{
"result": {
"message": "Hello, AIGNE Developer!"
}
}步骤 4:在聊天模式下使用您的 Agent
当主 AI agent 能够动态决定使用技能时,技能的真正威力才得以释放。要查看实际效果,请在交互式聊天模式下运行您的项目:
aigne run --interactive聊天会话开始后,请求 AI 使用您的新工具。例如:
> Use the greeter skill to say hello to the world.AI 将识别该请求,根据其描述找到 greeter 技能,并使用正确的参数执行它。然后,它将使用您技能的输出来构建其响应。
后续步骤
恭喜!您已经成功创建了一个自定义 JavaScript agent,将其作为技能集成,并测试了其功能。现在,您可以构建更复杂的 agent 来连接 API、管理文件或执行任何其他您可以通过脚本实现的任务。
要了解如何与他人分享您的项目,请查看我们的部署 Agent指南。