{"id":21753563,"url":"https://github.com/kaiban-ai/kaibanjs","last_synced_at":"2025-11-11T18:11:55.148Z","repository":{"id":247712735,"uuid":"826643276","full_name":"kaiban-ai/KaibanJS","owner":"kaiban-ai","description":"KaibanJS is a JavaScript-native framework for building and managing multi-agent systems  with a Kanban-inspired approach.","archived":false,"fork":false,"pushed_at":"2025-05-08T19:17:39.000Z","size":6350,"stargazers_count":1129,"open_issues_count":61,"forks_count":106,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-05-13T19:24:53.428Z","etag":null,"topics":["agentic","agentic-framework","agenticjs","agents","ai","javascript","kanban","langchain-js","llms","multi-agent-systems","state-management"],"latest_commit_sha":null,"homepage":"https://www.kaibanjs.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kaiban-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-10T05:25:01.000Z","updated_at":"2025-05-13T18:06:36.000Z","dependencies_parsed_at":"2024-07-22T22:17:58.077Z","dependency_job_id":"4c437053-7a55-483e-a518-e57d3c4df28f","html_url":"https://github.com/kaiban-ai/KaibanJS","commit_stats":null,"previous_names":["ai-champions/agenticjs","kaiban-ai/kaibanjs"],"tags_count":64,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaiban-ai%2FKaibanJS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaiban-ai%2FKaibanJS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaiban-ai%2FKaibanJS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaiban-ai%2FKaibanJS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaiban-ai","download_url":"https://codeload.github.com/kaiban-ai/KaibanJS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254083758,"owners_count":22011902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic","agentic-framework","agenticjs","agents","ai","javascript","kanban","langchain-js","llms","multi-agent-systems","state-management"],"created_at":"2024-11-26T09:09:48.654Z","updated_at":"2025-11-11T18:11:55.090Z","avatar_url":"https://github.com/kaiban-ai.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.kaibanjs.com/\"\u003e  \n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://res.cloudinary.com/dnno8pxyy/image/upload/v1724533982/icon_htfer2.png\"\u003e\n      \u003cimg src=\"https://res.cloudinary.com/dnno8pxyy/image/upload/v1724533982/icon_htfer2.png\" height=\"128\"\u003e\n    \u003c/picture\u003e\n    \u003ch1 align=\"center\"\u003eKaibanJS\u003c/h1\u003e\n    \u003ch3 align=\"center\"\u003eThe JavaScript Framework for Building Multi-agent Systems.\u003c/h3\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/kaiban-ai/KaibanJS\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/kaiban-ai/kaibanjs.svg?style=social\" alt=\"Star on GitHub\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/kaiban-ai/kaibanjs/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"GitHub license\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/kaibanjs\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/kaibanjs.svg?style=flat\" alt=\"npm version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/mkenney/software-guides/blob/master/STABILITY-BADGES.md#beta\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/stability-beta-33bbff.svg\" alt=\"stability-beta\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/kaiban-ai/KaibanJS/actions/workflows/stable-main-check-workflow.yml\"\u003e\n    \u003cimg src=\"https://github.com/kaiban-ai/KaibanJS/actions/workflows/stable-main-check-workflow.yml/badge.svg\" alt=\"Tests\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/kaiban-ai/KaibanJS/pulls\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg\" alt=\"PRs Welcome\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Kanban for AI Agents? 🤖📋\n\n**KaibanJS** is inspired by the tried-and-true [Kanban methodology](\u003chttps://en.wikipedia.org/wiki/Kanban_(development)\u003e), which is well-known for helping teams organize and manage their work. We've adapted these concepts to meet the **unique challenges of AI agent management**.\n\nIf you've used tools like Trello, Jira, or ClickUp, you'll be familiar with how Kanban helps manage tasks. Now, KaibanJS uses that same system to help you manage AI agents and their tasks in real time.\n\n**With KaibanJS, you can:**\n\n- 🔨 Create, visualize, and manage AI agents, tasks, tools, and teams\n- 🎯 Orchestrate AI workflows seamlessly\n- 📊 Visualize workflows in real-time\n- 🔍 Track progress as tasks move through different stages\n- 🤝 Collaborate more effectively on AI projects\n\n## Try It Out\n\n[Explore the Kaiban Board](https://www.kaibanjs.com/playground) — _it's like Trello or Asana, but for AI Agents and humans._\n\n## Quick Start\n\nGet started with KaibanJS in under a minute:\n\n[![Quick Start Video](https://res.cloudinary.com/dnno8pxyy/image/upload/v1728039764/KaibanJS_QuickStart_Guide_2_asuyvu.jpg)](https://youtu.be/NFpqFEl-URY?si=_JCkJuprRxqD0Uo 'Quick Start Video')\n\n## Setup\n\n**1. Run the KaibanJS initializer in your project directory:**\n\n```bash\nnpx kaibanjs@latest init\n```\n\n**2. Add your AI service API key to the `.env` file:**\n\n```\nVITE_OPENAI_API_KEY=your-api-key-here\n```\n\n**3. Restart your Kaiban Board:**\n\n```bash\nnpm run kaiban\n```\n\n### Using Your Kaiban Board\n\n1. Click \"Start Workflow\" to run the default example.\n2. Watch agents complete tasks in real-time on the Task Board.\n3. View the final output in the Results Overview.\n\n## Flexible Integration\n\n\u003e KaibanJS isn't limited to the Kaiban Board. You can integrate it directly into your projects, create custom UIs, or run agents without a UI. Explore our tutorials for [React](https://docs.kaibanjs.com/get-started/Tutorial:%20React%20+%20AI%20Agents) and [Node.js](https://docs.kaibanjs.com/get-started/Tutorial:%20Node.js%20+%20AI%20Agents) integration to unleash the full potential of KaibanJS in various development contexts.\n\n## Manual Installation and Usage\n\nIf you prefer to set up KaibanJS manually follow these steps:\n\n\u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003e1. Install KaibanJS via npm:\u003c/b\u003e\u003c/summary\u003e\n\n```bash\nnpm install kaibanjs\n```\n\n\u003c/details\u003e\n\n\u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003e2. Import KaibanJS in your JavaScript file:\u003c/b\u003e\u003c/summary\u003e\n\n```js\n// Using ES6 import syntax for NextJS, React, etc.\nimport { Agent, Task, Team } from 'kaibanjs';\n```\n\n```js\n// Using CommonJS syntax for NodeJS\nconst { Agent, Task, Team } = require('kaibanjs');\n```\n\n\u003c/details\u003e\n\u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003e3. Basic Usage Example\u003c/b\u003e\u003c/summary\u003e\n\n```js\n// Define an agent\nconst researchAgent = new Agent({\n  name: 'Researcher',\n  role: 'Information Gatherer',\n  goal: 'Find relevant information on a given topic',\n});\n\n// Create a task\nconst researchTask = new Task({\n  description: 'Research recent AI developments',\n  agent: researchAgent,\n});\n\n// Set up a team\nconst team = new Team({\n  name: 'AI Research Team',\n  agents: [researchAgent],\n  tasks: [researchTask],\n  env: { OPENAI_API_KEY: 'your-api-key-here' },\n});\n\n// Start the workflow\nteam\n  .start()\n  .then((output) =\u003e {\n    console.log('Workflow completed:', output.result);\n  })\n  .catch((error) =\u003e {\n    console.error('Workflow error:', error);\n  });\n```\n\n\u003c/details\u003e\n\n## Basic Concepts\n\n**Agents**\nAgents are autonomous entities designed to perform specific roles and achieve goals based on the tasks assigned to them. They are like super-powered LLMs that can execute tasks in a loop until they arrive at the final answer.\n\n**Tasks**\nTasks define the specific actions each agent must take, their expected outputs, and mark critical outputs as deliverables if they are the final products.\n\n**Team**\nThe Team coordinates the agents and their tasks. It starts with an initial input and manages the flow of information between tasks.\n\nWatch this video to learn more about the concepts: [KaibanJS Concepts](https://youtu.be/VxfOIZLvBug?si=550uEiB3nriZ6trQ)\n\n## Key Features\n\n  \u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003eThe Kaiban Board\u003c/b\u003e\u003c/summary\u003e\n\nKanban boards are excellent tools for showcasing team workflows in real time, providing a clear and interactive snapshot of each member's progress.\n\n\u003e We've adapted this concept for AI agents.\n\nNow, you can visualize the workflow of your AI agents as team members, with tasks moving from \"To Do\" to \"Done\" right before your eyes. This visual representation simplifies understanding and managing complex AI operations, making it accessible to anyone, anywhere.\n\n\u003c/details\u003e\n\n\u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003eRole-Based Agent Design\u003c/b\u003e\u003c/summary\u003e\n\n\u003cp style=\"margin-top:10px;\"\u003e\nHarness the power of specialization by configuring AI agents to excel in distinct, critical functions within your projects. This approach enhances the effectiveness and efficiency of each task, moving beyond the limitations of generic AI.\n\nIn this example, our software development team is powered by three specialized AI agents: Dave, Ella, and Quinn. Each agent is expertly tailored to its specific role, ensuring efficient task handling and synergy that accelerates the development cycle.\n\n\u003c/p\u003e\n\n```js\nimport { Agent } from 'kaibanjs';\n\nconst daveLoper = new Agent({\n  name: 'Dave Loper',\n  role: 'Developer',\n  goal: 'Write and review code',\n  background: 'Experienced in JavaScript, React, and Node.js',\n});\n\nconst ella = new Agent({\n  name: 'Ella',\n  role: 'Product Manager',\n  goal: 'Define product vision and manage roadmap',\n  background: 'Skilled in market analysis and product strategy',\n});\n\nconst quinn = new Agent({\n  name: 'Quinn',\n  role: 'QA Specialist',\n  goal: 'Ensure quality and consistency',\n  background: 'Expert in testing, automation, and bug tracking',\n});\n```\n\n\u003c/details\u003e\n\n\u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003eTool Integration\u003c/b\u003e\u003c/summary\u003e\n\n\u003cp style=\"margin-top:10px;\"\u003e\nJust as professionals use specific tools to excel in their tasks, enable your AI agents to utilize tools like search engines, calculators, and more to perform specialized tasks with greater precision and efficiency.\n\nIn this example, one of the AI agents, Peter Atlas, leverages the Tavily Search Results tool to enhance his ability to select the best cities for travel. This tool allows Peter to analyze travel data considering weather, prices, and seasonality, ensuring the most suitable recommendations.\n\n\u003c/p\u003e\n\n```js\nimport { Agent, Tool } from 'kaibanjs';\n\nconst tavilySearchResults = new Tool({\n  name: 'Tavily Search Results',\n  maxResults: 1,\n  apiKey: 'ENV_TRAVILY_API_KEY',\n});\n\nconst peterAtlas = new Agent({\n  name: 'Peter Atlas',\n  role: 'City Selector',\n  goal: 'Choose the best city based on comprehensive travel data',\n  background: 'Experienced in geographical data analysis and travel trends',\n  tools: [tavilySearchResults],\n});\n```\n\n_KaibanJS supports all LangchainJS-compatible tools, offering a versatile approach to tool integration. For further details, visit the [documentation](https://github.com/kaiban-ai/KaibanJS)._\n\n\u003c/details\u003e\n\n\u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003eTask Result Passing\u003c/b\u003e\u003c/summary\u003e\n\n\u003cp style=\"margin-top:10px;\"\u003e\nEnable sophisticated workflows by passing results between tasks, allowing agents to build upon each other's work. This feature is essential for creating complex, multi-step processes where each task's output becomes input for subsequent tasks.\n\nIn this example, a content creation team demonstrates how tasks can share and build upon results, creating a seamless workflow from research to final content production.\n\n\u003c/p\u003e\n\n```js\nimport { Agent, Task, Team } from 'kaibanjs';\n\n// Define tasks with result passing\nconst researchTask = new Task({\n  description: 'Research the topic: {topic}',\n  expectedOutput: 'Key research points in JSON format',\n  agent: researcher,\n});\n\nconst writingTask = new Task({\n  description: `Write an article using this research data: {taskResult:task1}\n               Focus on key insights and maintain professional tone.`,\n  expectedOutput: 'Draft article in markdown format',\n  agent: writer,\n});\n\nconst editingTask = new Task({\n  description: `Edit and improve this article: {taskResult:task2}\n               Enhance clarity and engagement.`,\n  expectedOutput: 'Final polished article',\n  agent: editor,\n});\n\n// Create a team with the tasks\nconst team = new Team({\n  name: 'Content Creation Team',\n  agents: [researcher, writer, editor],\n  tasks: [researchTask, writingTask, editingTask],\n  inputs: { topic: 'AI Trends 2024' },\n});\n```\n\n_Task results are automatically passed between tasks using the `{taskResult:taskN}` syntax, where N represents the task's position in the workflow (1-based indexing). For more details and advanced usage, visit our [Task Result Passing Guide](https://docs.kaibanjs.com/how-to/Task-Result-Passing)._\n\n\u003c/details\u003e\n\n\u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003eMemory Management\u003c/b\u003e\u003c/summary\u003e\n\n\u003cp style=\"margin-top:10px;\"\u003e\nKaibanJS provides sophisticated memory management at the team level, giving you control over how task results flow through your workflows. This feature allows you to optimize performance and manage context in complex multi-agent systems.\n\nHere's an example of configuring team memory:\n\n\u003c/p\u003e\n\n```js\nconst team = new Team({\n  name: 'Content Creation Team',\n  agents: [researcher, writer, editor],\n  tasks: [researchTask, writingTask, editingTask],\n  memory: true, // Enable automatic access to all previous task results\n});\n\n// Or disable memory for explicit result management\nconst performanceTeam = new Team({\n  name: 'High-Performance Team',\n  agents: [analyst, processor],\n  tasks: [analysisTask, processingTask],\n  memory: false, // Require explicit result references\n});\n```\n\n_For detailed information about memory management, visit our [documentation](https://docs.kaibanjs.com/core-concepts/08-Memory)._\n\n\u003c/details\u003e\n\n\u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003eMultiple LLMs Support\u003c/b\u003e\u003c/summary\u003e\n\n\u003cp style=\"margin-top:10px;\"\u003e\nOptimize your AI solutions by integrating a range of specialized AI models, each tailored to excel in distinct aspects of your projects.\n\nIn this example, the agents—Emma, Lucas, and Mia—use diverse AI models to handle specific stages of feature specification development. This targeted use of AI models not only maximizes efficiency but also ensures that each task is aligned with the most cost-effective and appropriate AI resources.\n\n\u003c/p\u003e\n\n```js\nimport { Agent } from 'kaibanjs';\n\nconst emma = new Agent({\n  name: 'Emma',\n  role: 'Initial Drafting',\n  goal: 'Outline core functionalities',\n  llmConfig: {\n    provider: 'google',\n    model: 'gemini-1.5-pro',\n  },\n});\n\nconst lucas = new Agent({\n  name: 'Lucas',\n  role: 'Technical Specification',\n  goal: 'Draft detailed technical specifications',\n  llmConfig: {\n    provider: 'anthropic',\n    model: 'claude-3-5-sonnet-20240620',\n  },\n});\n\nconst mia = new Agent({\n  name: 'Mia',\n  role: 'Final Review',\n  goal: 'Ensure accuracy and completeness of the final document',\n  llmConfig: {\n    provider: 'openai',\n    model: 'gpt-4o',\n  },\n});\n```\n\n_For further details on integrating diverse AI models with KaibanJS, please visit the [documentation](https://github.com/kaiban-ai/KaibanJS)._\n\n  \u003c/details\u003e\n\n  \u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003eRobust State Management\u003c/b\u003e\u003c/summary\u003e\n\n\u003cp style=\"margin-top:10px;\"\u003e\nKaibanJS employs a Redux-inspired architecture, enabling a unified approach to manage the states of AI agents, tasks, and overall flow within your applications. This method ensures consistent state management across complex agent interactions, providing enhanced clarity and control.\n\nHere's a simplified example demonstrating how to integrate KaibanJS with state management in a React application:\n\n\u003c/p\u003e\n\n```js\nimport myAgentsTeam from './agenticTeam';\n\nconst KaibanJSComponent = () =\u003e {\n  const useTeamStore = myAgentsTeam.useStore();\n\n  const { agents, workflowResult } = useTeamStore((state) =\u003e ({\n    agents: state.agents,\n    workflowResult: state.workflowResult,\n  }));\n\n  return (\n    \u003cdiv\u003e\n      \u003cbutton onClick={myAgentsTeam.start}\u003eStart Team Workflow\u003c/button\u003e\n      \u003cp\u003eWorkflow Result: {workflowResult}\u003c/p\u003e\n      \u003cdiv\u003e\n        \u003ch2\u003e🕵️‍♂️ Agents\u003c/h2\u003e\n        {agents.map((agent) =\u003e (\n          \u003cp key={agent.id}\u003e\n            {agent.name} - {agent.role} - Status: ({agent.status})\n          \u003c/p\u003e\n        ))}\n      \u003c/div\u003e\n    \u003c/div\u003e\n  );\n};\n\nexport default KaibanJSComponent;\n```\n\n_For a deeper dive into state management with KaibanJS, visit the [documentation](https://github.com/kaiban-ai/KaibanJS)._\n\n  \u003c/details\u003e\n\n  \u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003eIntegrate with Your Preferred JavaScript Frameworks\u003c/b\u003e\u003c/summary\u003e\n\n\u003cp style=\"margin-top:10px;\"\u003e\nEasily add AI capabilities to your NextJS, React, Vue, Angular, and Node.js projects.\n\nKaibanJS is designed for seamless integration across a diverse range of JavaScript environments. Whether you're enhancing user interfaces in React, Vue, or Angular, building scalable applications with NextJS, or implementing server-side solutions in Node.js, the framework integrates smoothly into your existing workflow.\n\n\u003c/p\u003e\n\n```js\nimport React from 'react';\nimport myAgentsTeam from './agenticTeam';\n\nconst TaskStatusComponent = () =\u003e {\n  const useTeamStore = myAgentsTeam.useStore();\n\n  const { tasks } = useTeamStore((state) =\u003e ({\n    tasks: state.tasks.map((task) =\u003e ({\n      id: task.id,\n      description: task.description,\n      status: task.status,\n    })),\n  }));\n\n  return (\n    \u003cdiv\u003e\n      \u003ch1\u003eTask Statuses\u003c/h1\u003e\n      \u003cul\u003e\n        {tasks.map((task) =\u003e (\n          \u003cli key={task.id}\u003e\n            {task.description}: Status - {task.status}\n          \u003c/li\u003e\n        ))}\n      \u003c/ul\u003e\n    \u003c/div\u003e\n  );\n};\n\nexport default TaskStatusComponent;\n```\n\n_For a deeper dive visit the [documentation](https://github.com/kaiban-ai/KaibanJS)._\n\n  \u003c/details\u003e\n\n  \u003c/details\u003e\n  \u003cdetails style=\"margin-bottom:10px;\"\u003e\n  \u003csummary\u003e\u003cb style=\"color:black;\"\u003eObservability and Monitoring\u003c/b\u003e\u003c/summary\u003e\n\n\u003cp style=\"margin-top:10px;\"\u003e\nBuilt into KaibanJS, the observability features enable you to track every state change with detailed stats and logs, ensuring full transparency and control. This functionality provides real-time insights into token usage, operational costs, and state changes, enhancing system reliability and enabling informed decision-making through comprehensive data visibility.\n\nThe following code snippet demonstrates how the state management approach is utilized to monitor and react to changes in workflow logs, providing granular control and deep insights into the operational dynamics of your AI agents:\n\n\u003c/p\u003e\n\n```js\nconst useStore = myAgentsTeam.useStore();\n\nuseStore.subscribe(\n  (state) =\u003e state.workflowLogs,\n  (newLogs, previousLogs) =\u003e {\n    if (newLogs.length \u003e previousLogs.length) {\n      const { task, agent, metadata } = newLogs[newLogs.length - 1];\n      if (newLogs[newLogs.length - 1].logType === 'TaskStatusUpdate') {\n        switch (task.status) {\n          case TASK_STATUS_enum.DONE:\n            console.log('Task Completed', {\n              taskDescription: task.description,\n              agentName: agent.name,\n              agentModel: agent.llmConfig.model,\n              duration: metadata.duration,\n              llmUsageStats: metadata.llmUsageStats,\n              costDetails: metadata.costDetails,\n            });\n            break;\n          case TASK_STATUS_enum.DOING:\n          case TASK_STATUS_enum.BLOCKED:\n          case TASK_STATUS_enum.REVISE:\n          case TASK_STATUS_enum.TODO:\n            console.log('Task Status Update', {\n              taskDescription: task.description,\n              taskStatus: task.status,\n              agentName: agent.name,\n            });\n            break;\n          default:\n            console.warn('Encountered an unexpected task status:', task.status);\n            break;\n        }\n      }\n    }\n  }\n);\n```\n\nFor more details on how to utilize observability features in KaibanJS, please visit the [documentation](https://github.com/kaiban-ai/KaibanJS).\n\n  \u003c/details\u003e\n\n## Documentation\n\n- [Official Documentation](https://docs.kaibanjs.com/category/get-started)\n- [LLM-friendly Documentation](https://docs.kaibanjs.com/llms-full.txt) - Optimized for AI tools and coding assistants\n- [Join Our Discord](https://www.kaibanjs.com/discord)\n\n### Compatibility\n\nKaibanJS aims to be compatible with major front-end frameworks like React, Vue, Angular, and NextJS, making it a versatile choice for developers. The JavaScript ecosystem is a \"bit complex...\". If you have any problems, please tell us and we'll help you fix them.\n\n## Why KaibanJS?\n\nThere are about 20 million JavaScript developers worldwide, yet most AI frameworks are originally written in Python. Others are mere adaptations for JavaScript.\n\nThis puts all of us **JavaScript developers at a disadvantage in the AI race**. But not anymore...\n\nKaibanJS changes the game by aiming to offer a robust, easy-to-use AI multi-agent framework designed specifically for the JavaScript ecosystem.\n\n```js\nconst writtenBy = `Another JS Dev Who Doesn't Want to Learn Python to do meaningful AI Stuff.`;\nconsole.log(writtenBy);\n```\n\n## Community and Support\n\nJoin the [Discord community](https://www.kaibanjs.com/discord) to connect with other developers and get support. [Follow us](https://x.com/dariel_noel) on Twitter for the latest updates.\n\n## Contributing\n\nWe welcome contributions from the community. Please read the [contributing guidelines](https://github.com/kaiban-ai/KaibanJS/blob/main/CONTRIBUTING.md) before submitting pull requests.\n\n## License\n\nKaibanJS is MIT licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaiban-ai%2Fkaibanjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaiban-ai%2Fkaibanjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaiban-ai%2Fkaibanjs/lists"}