KaibanJS受到久经考验的看板方法的启发,该方法以帮助团队组织和管理他们的工作而闻名。我们对这些概念进行了调整,以应对人工智能代理管理的独特挑战。
如果您使用过 Trello、Jira 或 ClickUp 等工具,您就会熟悉看板如何帮助管理任务。现在,KaibanJS 使用同一系统来帮助您实时管理 AI 代理及其任务。
使用 KaibanJS,您可以:
创建、可视化和管理 AI 代理、任务、工具和团队
无缝编排 AI 工作流程
实时可视化工作流程
跟踪任务在不同阶段的进展
在 AI 项目上更有效地协作
探索 Kaiban Board——它就像 Trello 或 Asana,但适用于 AI 代理和人类。
一分钟内即可开始使用 KaibanJS:
1. 在项目目录中运行 KaibanJS 初始化程序:
npx kaibanjs@最新 init
2. 将您的 AI 服务 API 密钥添加到.env
文件:
VITE_OPENAI_API_KEY=your-api-key-here
3. 重新启动 Kaiban 板:
npm 运行 Kaiban
单击“启动工作流程”运行默认示例。
观看代理在任务板上实时完成任务。
在结果概述中查看最终输出。
KaibanJS 不仅限于 Kaiban Board。您可以将其直接集成到您的项目中、创建自定义 UI 或在没有 UI 的情况下运行代理。探索我们的 React 和 Node.js 集成教程,以在各种开发环境中释放 KaibanJS 的全部潜力。
如果您更喜欢手动设置 KaibanJS,请按照以下步骤操作:
npm 安装 kaibanjs
// 对 NextJS、React 等使用 ES6 导入语法 import { Agent, Task, Team } from 'kaibanjs';
// 对 NodeJSconst 使用 CommonJS 语法 { Agent, Task, Team } = require('kaibanjs');
// 定义一个代理 const ResearchAgent = new Agent({ 姓名:“研究员”, 角色:“信息收集者”, goal: '查找给定主题的相关信息',});// 创建一个任务 const ResearchTask = new Task({ 描述:“研究人工智能的最新发展”, agent: ResearchAgent,});// 建立一个团队const team = new Team({ name: '人工智能研究团队', 代理人:[研究代理人], 任务:[研究任务], env: { OPENAI_API_KEY: 'your-api-key-here' },});// 启动工作流程团队 。开始() .then((output) => {console.log('工作流程完成:', output.result); }) .catch((error) => {console.error('工作流程错误:', error); });
代理代理是自治实体,旨在执行特定角色并根据分配给他们的任务实现目标。他们就像超级强大的法学硕士,可以循环执行任务,直到得出最终答案。
任务任务定义每个代理必须采取的具体操作、其预期输出,并将关键输出标记为可交付成果(如果它们是最终产品)。
团队团队协调代理及其任务。它从初始输入开始并管理任务之间的信息流。
观看此视频以了解有关这些概念的更多信息:KaibanJS 概念
看板是实时展示团队工作流程的优秀工具,为每个成员的进度提供清晰的交互式快照。
我们已将这一概念应用于人工智能代理。
现在,您可以将 AI 代理的工作流程可视化为团队成员,任务就在您眼前从“待办事项”移动到“已完成”。这种视觉表示简化了复杂的人工智能操作的理解和管理,使任何人、任何地方都可以使用它。
通过配置 AI 代理来发挥专业化的力量,使其在项目中的独特关键功能中表现出色。这种方法提高了每项任务的有效性和效率,超越了通用人工智能的局限性。
在此示例中,我们的软件开发团队由三个专门的 AI 代理提供支持:Dave、Ella 和 Quinn。每个代理都根据其特定角色进行专业定制,确保高效的任务处理和协同作用,从而加快开发周期。
从 'kaibanjs' 导入 { Agent };const daveLoper = new Agent({ 姓名:“戴夫·洛珀”, 角色:“开发人员”, 目标:“编写和审查代码”, 背景: '有 JavaScript、React 和 Node.js 经验',});const ella = new Agent({ 名称:“艾拉”, 角色:“产品经理”, 目标:“定义产品愿景并管理路线图”, 背景: '精通市场分析和产品策略',});const quinn = new Agent({ 名称:“奎因”, 角色:“质量检查专家”, 目标:“确保质量和一致性”, 背景:“测试、自动化和错误跟踪专家”,});
正如专业人员使用特定工具来出色地完成任务一样,您的 AI 代理也可以利用搜索引擎、计算器等工具以更高的精度和效率执行专门的任务。
在此示例中,人工智能代理之一 Peter Atlas 利用 Tavily 搜索结果工具来增强他选择最佳旅行城市的能力。该工具允许 Peter 考虑天气、价格和季节性来分析旅行数据,确保提供最合适的建议。
从 'kaibanjs' 导入 { Agent, Tool };const tavilySearchResults = new Tool({ name: '塔维利搜索结果', 最大结果: 1, apiKey: 'ENV_TRAVILY_API_KEY',});const peterAtlas = 新代理({ 名称:“彼得·阿特拉斯”, 角色:“城市选择器”, 目标:“根据综合旅行数据选择最佳城市”, 背景:“具有地理数据分析和旅游趋势经验”, 工具:[tailySearchResults],});
KaibanJS 支持所有与 LangchainJS 兼容的工具,提供了一种通用的工具集成方法。有关更多详细信息,请访问文档。
通过集成一系列专门的 AI 模型来优化您的 AI 解决方案,每个模型都经过量身定制,以在项目的不同方面表现出色。
在此示例中,代理(Emma、Lucas 和 Mia)使用不同的 AI 模型来处理功能规范开发的特定阶段。这种有针对性地使用人工智能模型不仅可以最大限度地提高效率,还可以确保每项任务都与最具成本效益和最合适的人工智能资源保持一致。
从 'kaibanjs' 导入 { Agent };const emma = new Agent({ 姓名:“艾玛”, 角色:“初步起草”, 目标:“概述核心功能”, llmConfig: {provider: 'google',型号: 'gemini-1.5-pro', },});const 卢卡斯 = 新代理({ 名称:“卢卡斯”, 角色:“技术规范”, 目标:“起草详细的技术规范”, llmConfig: {provider: 'anthropic',型号: 'claude-3-5-sonnet-20240620', },});const mia = 新代理({ 姓名:“米娅”, 角色:“最终审查”, 目标:“确保最终文件的准确性和完整性”, llmConfig: {provider: 'openai',型号: 'gpt-4o', },});
有关将各种 AI 模型与 KaibanJS 集成的更多详细信息,请访问文档。
KaibanJS 采用受 Redux 启发的架构,支持采用统一的方法来管理应用程序中的 AI 代理、任务和整体流程的状态。此方法可确保在复杂的代理交互中进行一致的状态管理,从而提供增强的清晰度和控制。
下面是一个简化的示例,演示了如何在 React 应用程序中将 KaibanJS 与状态管理集成:
从 './agenticTeam' 导入 myAgentsTeam;const KaibanJSComponent = () => { const useTeamStore = myAgentsTeam.useStore(); const { 代理,工作流程结果 } = useTeamStore((state) => ({代理:state.agents,workflowResult:state.workflowResult, })); return (<div> <button onClick={myAgentsTeam.start}>启动团队工作流程</button> <p>工作流程结果:{workflowResult}</p> <div><h2>♂️ 代理</h2>{agents .map((agent) => ( <p key={agent.id}>{agent.name} - {agent.role} - 状态:({agent.status}) </p>))} </div></div> );};导出默认的 KaibanJSComponent;
要更深入地了解 KaibanJS 的状态管理,请访问文档。
轻松将 AI 功能添加到您的 NextJS、React、Vue、Angular 和 Node.js 项目中。
KaibanJS 旨在实现跨各种 JavaScript 环境的无缝集成。无论您是在 React、Vue 或 Angular 中增强用户界面,使用 NextJS 构建可扩展的应用程序,还是在 Node.js 中实现服务器端解决方案,该框架都能顺利集成到您现有的工作流程中。
从'react'导入React;从'./agenticTeam'导入myAgentsTeam;const TaskStatusComponent = () => { const useTeamStore = myAgentsTeam.useStore(); const { 任务 } = useTeamStore((state) => ({任务: state.tasks.map((task) => ({ id: 任务.id, 描述: 任务.描述, 状态: 任务.状态,})) , })); return (<div> <h1>任务状态</h1> <ul>{tasks.map((task) => ( <li key={task.id}>{task.description}: 状态 - {task.status } </li>))} </ul></div> );};导出默认的TaskStatusComponent;
如需更深入的了解,请访问文档。
内置于 KaibanJS 中的可观察性功能使您能够通过详细的统计数据和日志来跟踪每个状态变化,从而确保完全的透明度和控制。此功能提供对代币使用、运营成本和状态变化的实时洞察,增强系统可靠性并通过全面的数据可见性实现明智的决策。
以下代码片段演示了如何利用状态管理方法来监视工作流日志中的变化并做出反应,从而提供对 AI 代理的操作动态的精细控制和深入洞察:
const useStore = myAgentsTeam.useStore();useStore.subscribe( (状态)=>状态.workflowLogs, (newLogs, previousLogs) => {if (newLogs.length > previousLogs.length) { const { 任务、代理、元数据 } = newLogs[newLogs.length - 1]; if (newLogs[newLogs.length - 1].logType === 'TaskStatusUpdate') {switch (task.status) { case TASK_STATUS_enum.DONE:console.log('任务已完成', { taskDescription: task.description, agentName: agent.name,agentModel:agent.llmConfig.model,持续时间:metadata.duration,llmUsageStats:元数据.llmUsageStats, costDetails: 元数据.costDetails,});break; case TASK_STATUS_enum.DOING:case TASK_STATUS_enum.BLOCKED:case TASK_STATUS_enum.REVISE:case TASK_STATUS_enum.TODO:console.log('任务状态更新',{taskDescription:task.description,taskStatus:task.status,agentName:agent.name,} );休息; default:console.warn('遇到意外的任务状态:', task.status);break;} }} });
有关如何利用 KaibanJS 中的可观察性功能的更多详细信息,请访问文档。
官方文档
加入我们的不和谐
KaibanJS 旨在兼容 React、Vue、Angular 和 NextJS 等主要前端框架,使其成为开发人员的多功能选择。 JavaScript 生态系统“有点复杂……”。如果您有任何问题,请告诉我们,我们将帮助您解决问题。
全球约有 2000 万 JavaScript 开发人员,但大多数 AI 框架最初都是用 Python 编写的。其他的只是对 JavaScript 的改编。
这使得我们所有JavaScript 开发人员在人工智能竞赛中处于劣势。但现在不再了...
KaibanJS 旨在提供专为 JavaScript 生态系统设计的强大且易于使用的 AI 多代理框架,从而改变游戏规则。
const writeBy = `另一个不想学习 Python 来做有意义的 AI 东西的 JS 开发人员。`;console.log(writingBy);
加入 Discord 社区,与其他开发人员联系并获得支持。在 Twitter 上关注我们以获取最新动态。
我们欢迎社区的贡献。请在提交拉取请求之前阅读贡献指南。
KaibanJS 已获得 MIT 许可。