{"id":27618796,"url":"https://github.com/voltagent/voltagent","last_synced_at":"2026-04-22T04:00:50.022Z","repository":{"id":288977471,"uuid":"967530387","full_name":"VoltAgent/voltagent","owner":"VoltAgent","description":"AI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework","archived":false,"fork":false,"pushed_at":"2026-04-22T02:02:57.000Z","size":31662,"stargazers_count":8390,"open_issues_count":34,"forks_count":829,"subscribers_count":80,"default_branch":"main","last_synced_at":"2026-04-22T02:31:45.398Z","etag":null,"topics":["agents","ai","ai-agents","ai-agents-framework","aiagentframework","chatbots","chatgpt","framework","javascript","llm","llm-observability","mcp","multiagent","nodejs","observability","open-source","openai","rag","tts","typescript"],"latest_commit_sha":null,"homepage":"https://voltagent.dev","language":"TypeScript","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/VoltAgent.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"voltagent"}},"created_at":"2025-04-16T15:41:18.000Z","updated_at":"2026-04-22T02:28:01.000Z","dependencies_parsed_at":"2026-03-03T21:03:57.908Z","dependency_job_id":null,"html_url":"https://github.com/VoltAgent/voltagent","commit_stats":null,"previous_names":["voltagent/voltagent"],"tags_count":681,"template":false,"template_full_name":null,"purl":"pkg:github/VoltAgent/voltagent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VoltAgent%2Fvoltagent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VoltAgent%2Fvoltagent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VoltAgent%2Fvoltagent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VoltAgent%2Fvoltagent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VoltAgent","download_url":"https://codeload.github.com/VoltAgent/voltagent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VoltAgent%2Fvoltagent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32120402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["agents","ai","ai-agents","ai-agents-framework","aiagentframework","chatbots","chatgpt","framework","javascript","llm","llm-observability","mcp","multiagent","nodejs","observability","open-source","openai","rag","tts","typescript"],"created_at":"2025-04-23T05:01:05.162Z","updated_at":"2026-04-22T04:00:49.977Z","avatar_url":"https://github.com/VoltAgent.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://voltagent.dev/\"\u003e\n\u003cimg width=\"1500\" height=\"276\" alt=\"voltagent\" src=\"https://github.com/user-attachments/assets/d9ad69bd-b905-42a3-81af-99a0581348c0\" /\u003e\n\u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003e\nAI Agent Engineering Platform\n\u003c/h3\u003e\n\n\u003cdiv align=\"center\"\u003e\nEnglish | \u003ca href=\"i18n/README-cn-traditional.md\"\u003e繁體中文\u003c/a\u003e | \u003ca href=\"i18n/README-cn-bsc.md\"\u003e简体中文\u003c/a\u003e | \u003ca href=\"i18n/README-jp.md\"\u003e日本語\u003c/a\u003e | \u003ca href=\"i18n/README-kr.md\"\u003e한국어\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://voltagent.dev\"\u003eHome Page\u003c/a\u003e |\n    \u003ca href=\"https://voltagent.dev/docs/\"\u003eDocumentation\u003c/a\u003e |\n    \u003ca href=\"https://github.com/voltagent/voltagent/tree/main/examples\"\u003eExamples\u003c/a\u003e \n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub issues](https://img.shields.io/github/issues/voltagent/voltagent)](https://github.com/voltagent/voltagent/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/voltagent/voltagent)](https://github.com/voltagent/voltagent/pulls)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](CODE_OF_CONDUCT.md)\n[![npm version](https://img.shields.io/npm/v/@voltagent/core.svg)](https://www.npmjs.com/package/@voltagent/core)\n\n[![npm downloads](https://img.shields.io/npm/dm/@voltagent/core.svg)](https://www.npmjs.com/package/@voltagent/core)\n[![Discord](https://img.shields.io/discord/1361559153780195478.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2)](https://s.voltagent.dev/discord)\n[![Twitter Follow](https://img.shields.io/twitter/follow/voltagent_dev?style=social)](https://x.com/voltagent_dev)\n\n\u003c/div\u003e\n\n\u003ch3 align=\"center\"\u003e\n⭐ Like what we're doing? Give us a star ⬆️\n\u003c/h3\u003e\n\nVoltAgent is an end-to-end AI Agent Engineering Platform that consists of two main parts:\n\n- **[Open-Source TypeScript Framework](#core-framework)** – Memory, RAG, Guardrails, Tools, MCP, Voice, Workflow, and more.\n- **[VoltOps Console](#voltops-console)** `Cloud` `Self-Hosted` – Observability, Automation, Deployment, Evals, Guardrails, Prompts, and more.\n\nBuild agents with full code control and ship them with production-ready visibility and operations.\n\n\u003ch2 id=\"core-framework\"\u003eCore TypeScript Framework\u003c/h2\u003e\n\nWith the open-source framework, you can build intelligent agents with memory, tools, and multi-step workflows while connecting to any AI provider. Create sophisticated multi-agent systems where specialized agents work together under supervisor coordination.\n\n- **[Core Runtime](https://voltagent.dev/docs/agents/overview/) (`@voltagent/core`)**: Define agents with typed roles, tools, memory, and model providers in one place so everything stays organized.\n- **[Workflow Engine](https://voltagent.dev/docs/workflows/overview/)**: Describe multi-step automations declaratively rather than stitching together custom control flow.\n- **[Supervisors \u0026 Sub-Agents](https://voltagent.dev/docs/agents/sub-agents/)**: Run teams of specialized agents under a supervisor runtime that routes tasks and keeps them in sync.\n- **[Tool Registry](https://voltagent.dev/docs/agents/tools/) \u0026 [MCP](https://voltagent.dev/docs/agents/mcp/)**: Ship Zod-typed tools with lifecycle hooks and cancellation, and connect to [Model Context Protocol](https://modelcontextprotocol.io/) servers without extra glue code.\n- **[LLM Compatibility](https://voltagent.dev/docs/getting-started/providers-models/)**: Swap between OpenAI, Anthropic, Google, or other providers by changing config, not rewriting agent logic.\n- **[Memory](https://voltagent.dev/docs/agents/memory/overview/)**: Attach durable memory adapters so agents remember important context across runs.\n- **[Resumable Streaming](https://voltagent.dev/docs/agents/resumable-streaming/)**: Let clients reconnect to in-flight streams after refresh and continue receiving the same response.\n- **[Retrieval \u0026 RAG](https://voltagent.dev/docs/rag/overview/)**: Plug in retriever agents to pull facts from your data sources and ground responses (RAG) before the model answers.\n- **[VoltAgent Knowledge Base](https://voltagent.dev/docs/rag/voltagent/)**: Use the managed RAG service for document ingestion, chunking, embeddings, and search.\n- **[Voice](https://voltagent.dev/docs/agents/voice/)**: Add text-to-speech and speech-to-text capabilities with OpenAI, ElevenLabs, or custom voice providers.\n- **[Guardrails](https://voltagent.dev/docs/guardrails/overview/)**: Intercept and validate agent input or output at runtime to enforce content policies and safety rules.\n- **[Evals](https://voltagent.dev/docs/evals/overview/)**: Run agent eval suites alongside your workflows to measure and improve agent behavior.\n\n#### MCP Server (@voltagent/mcp-docs-server)\n\nYou can use the MCP server `@voltagent/mcp-docs-server` to teach your LLM how to use VoltAgent for AI-powered coding assistants like Claude, Cursor, or Windsurf. This allows AI assistants to access VoltAgent documentation, examples, and changelogs directly while you code.\n\n📖 [How to setup MCP docs server](https://voltagent.dev/docs/getting-started/mcp-docs-server/)\n\n## ⚡ Quick Start\n\nCreate a new VoltAgent project in seconds using the `create-voltagent-app` CLI tool:\n\n```bash\nnpm create voltagent-app@latest\n```\n\nThis command guides you through setup.\n\nYou'll see the starter code in `src/index.ts`, which now registers both an agent and a comprehensive workflow example found in `src/workflows/index.ts`.\n\n```typescript\nimport { VoltAgent, Agent, Memory } from \"@voltagent/core\";\nimport { LibSQLMemoryAdapter } from \"@voltagent/libsql\";\nimport { createPinoLogger } from \"@voltagent/logger\";\nimport { honoServer } from \"@voltagent/server-hono\";\nimport { openai } from \"@ai-sdk/openai\";\nimport { expenseApprovalWorkflow } from \"./workflows\";\nimport { weatherTool } from \"./tools\";\n\n// Create a logger instance\nconst logger = createPinoLogger({\n  name: \"my-agent-app\",\n  level: \"info\",\n});\n\n// Optional persistent memory (remove to use default in-memory)\nconst memory = new Memory({\n  storage: new LibSQLMemoryAdapter({ url: \"file:./.voltagent/memory.db\" }),\n});\n\n// A simple, general-purpose agent for the project.\nconst agent = new Agent({\n  name: \"my-agent\",\n  instructions: \"A helpful assistant that can check weather and help with various tasks\",\n  model: openai(\"gpt-4o-mini\"),\n  tools: [weatherTool],\n  memory,\n});\n\n// Initialize VoltAgent with your agent(s) and workflow(s)\nnew VoltAgent({\n  agents: {\n    agent,\n  },\n  workflows: {\n    expenseApprovalWorkflow,\n  },\n  server: honoServer(),\n  logger,\n});\n```\n\nAfterwards, navigate to your project and run:\n\n```bash\nnpm run dev\n```\n\nWhen you run the dev command, tsx will compile and run your code. You should see the VoltAgent server startup message in your terminal:\n\n```\n══════════════════════════════════════════════════\nVOLTAGENT SERVER STARTED SUCCESSFULLY\n══════════════════════════════════════════════════\n✓ HTTP Server: http://localhost:3141\n\nTest your agents with VoltOps Console: https://console.voltagent.dev\n══════════════════════════════════════════════════\n```\n\nYour agent is now running! To interact with it:\n\n1. Open the Console: Click the [VoltOps LLM Observability Platform](https://console.voltagent.dev) link in your terminal output (or copy-paste it into your browser).\n2. Find Your Agent: On the VoltOps LLM Observability Platform page, you should see your agent listed (e.g., \"my-agent\").\n3. Open Agent Details: Click on your agent's name.\n4. Start Chatting: On the agent detail page, click the chat icon in the bottom right corner to open the chat window.\n5. Send a Message: Type a message like \"Hello\" and press Enter.\n\n[![VoltAgent Demo](thumbnail.png)](https://github.com/user-attachments/assets/26340c6a-be34-48a5-9006-e822bf6098a7)\n\n### Running Your First Workflow\n\nYour new project also includes a powerful workflow engine.\n\nThe expense approval workflow demonstrates human-in-the-loop automation with suspend/resume capabilities:\n\n```typescript\nimport { createWorkflowChain } from \"@voltagent/core\";\nimport { z } from \"zod\";\n\nexport const expenseApprovalWorkflow = createWorkflowChain({\n  id: \"expense-approval\",\n  name: \"Expense Approval Workflow\",\n  purpose: \"Process expense reports with manager approval for high amounts\",\n\n  input: z.object({\n    employeeId: z.string(),\n    amount: z.number(),\n    category: z.string(),\n    description: z.string(),\n  }),\n  result: z.object({\n    status: z.enum([\"approved\", \"rejected\"]),\n    approvedBy: z.string(),\n    finalAmount: z.number(),\n  }),\n})\n  // Step 1: Validate expense and check if approval needed\n  .andThen({\n    id: \"check-approval-needed\",\n    resumeSchema: z.object({\n      approved: z.boolean(),\n      managerId: z.string(),\n      comments: z.string().optional(),\n      adjustedAmount: z.number().optional(),\n    }),\n    execute: async ({ data, suspend, resumeData }) =\u003e {\n      // If we're resuming with manager's decision\n      if (resumeData) {\n        return {\n          ...data,\n          approved: resumeData.approved,\n          approvedBy: resumeData.managerId,\n          finalAmount: resumeData.adjustedAmount || data.amount,\n        };\n      }\n\n      // Check if manager approval is needed (expenses over $500)\n      if (data.amount \u003e 500) {\n        await suspend(\"Manager approval required\", {\n          employeeId: data.employeeId,\n          requestedAmount: data.amount,\n        });\n      }\n\n      // Auto-approve small expenses\n      return {\n        ...data,\n        approved: true,\n        approvedBy: \"system\",\n        finalAmount: data.amount,\n      };\n    },\n  })\n  // Step 2: Process the final decision\n  .andThen({\n    id: \"process-decision\",\n    execute: async ({ data }) =\u003e {\n      return {\n        status: data.approved ? \"approved\" : \"rejected\",\n        approvedBy: data.approvedBy,\n        finalAmount: data.finalAmount,\n      };\n    },\n  });\n```\n\nYou can test the pre-built `expenseApprovalWorkflow` directly from the VoltOps console:\n\n[![expense-approval](thumbnail.png)](https://github.com/user-attachments/assets/3d3ea67b-4ab5-4dc0-932d-cedd92894b18)\n\n1.  **Go to the Workflows Page:** After starting your server, go directly to the [Workflows page](https://console.voltagent.dev/workflows).\n2.  **Select Your Project:** Use the project selector to choose your project (e.g., \"my-agent-app\").\n3.  **Find and Run:** You will see **\"Expense Approval Workflow\"** listed. Click it, then click the **\"Run\"** button.\n4.  **Provide Input:** The workflow expects a JSON object with expense details. Try a small expense for automatic approval:\n    ```json\n    {\n      \"employeeId\": \"EMP-123\",\n      \"amount\": 250,\n      \"category\": \"office-supplies\",\n      \"description\": \"New laptop mouse and keyboard\"\n    }\n    ```\n5.  **View the Results:** After execution, you can inspect the detailed logs for each step and see the final output directly in the console.\n\n## Examples\n\nFor more examples, visit our [examples repository](https://github.com/VoltAgent/voltagent/tree/main/examples).\n\n- **[Airtable Agent](https://voltagent.dev/examples/guides/airtable-agent)** - React to new records and write updates back into Airtable with VoltOps actions.\n- **[Slack Agent](https://voltagent.dev/examples/guides/slack-agent)** - Respond to channel messages and reply via VoltOps Slack actions.\n- **[ChatGPT App With VoltAgent](https://voltagent.dev/examples/agents/chatgpt-app)** - Deploy VoltAgent over MCP and connect to ChatGPT Apps.\n- **[WhatsApp Order Agent](https://voltagent.dev/examples/agents/whatsapp-ai-agent)** - Build a WhatsApp chatbot that handles food orders through natural conversation. ([Source](https://github.com/VoltAgent/voltagent/tree/main/examples/with-whatsapp))\n- **[YouTube to Blog Agent](https://voltagent.dev/examples/agents/youtube-blog-agent)** - Convert YouTube videos into Markdown blog posts using a supervisor agent with MCP tools. ([Source](https://github.com/VoltAgent/voltagent/tree/main/examples/with-youtube-to-blog))\n- **[AI Ads Generator Agent](https://voltagent.dev/examples/agents/ai-instagram-ad-agent)** - Generate Instagram ads using BrowserBase Stagehand and Google Gemini AI. ([Source](https://github.com/VoltAgent/voltagent/tree/main/examples/with-ad-creator))\n- **[AI Recipe Generator Agent](https://voltagent.dev/examples/agents/recipe-generator)** - Create personalized cooking suggestions based on ingredients and preferences. ([Source](https://github.com/VoltAgent/voltagent/tree/main/examples/with-recipe-generator) | [Video](https://youtu.be/KjV1c6AhlfY))\n- **[AI Research Assistant Agent](https://voltagent.dev/examples/agents/research-assistant)** - Multi-agent research workflow for generating comprehensive reports. ([Source](https://github.com/VoltAgent/voltagent/tree/main/examples/with-research-assistant) | [Video](https://youtu.be/j6KAUaoZMy4))\n\n\u003ch2 id=\"voltops-console\"\u003eVoltOps Console: LLM Observability - Automation - Deployment\u003c/h2\u003e\n\nVoltOps Console is the platform side of VoltAgent, providing observability, automation, and deployment so you can monitor and debug agents in production with real-time execution traces, performance metrics, and visual dashboards.\n\n🎬 [Try Live Demo](https://console.voltagent.dev/demo)\n\n📖 [VoltOps Documentation](https://voltagent.dev/voltops-llm-observability-docs/)\n\n🚀 [VoltOps Platform](https://voltagent.dev/voltops-llm-observability/)\n\n### Observability \u0026 Tracing\n\nDeep dive into agent execution flow with detailed traces and performance metrics.\n\n\u003cimg alt=\"1\" src=\"https://github.com/user-attachments/assets/21c6d05d-f333-4c61-9218-8862d16110fd\" /\u003e\n\n### Dashboard\n\nGet a comprehensive overview of all your agents, workflows, and system performance metrics.\n\n\u003cimg alt=\"dashboar\" src=\"https://github.com/user-attachments/assets/c88a5543-219e-4cf0-8f41-14a68ca297fb\" /\u003e\n\n### Logs\n\nTrack detailed execution logs for every agent interaction and workflow step.\n\n![VoltOps Logs](https://cdn.voltagent.dev/console/logs.png)\n\n### Memory Management\n\nInspect and manage agent memory, context, and conversation history.\n\n![VoltOps Memory Overview](https://cdn.voltagent.dev/console/memory.png)\n\n### Traces\n\nAnalyze complete execution traces to understand agent behavior and optimize performance.\n\n![VoltOps Traces](https://cdn.voltagent.dev/console/traces.png)\n\n### Prompt Builder\n\nDesign, test, and refine prompts directly in the console.\n\n\u003cimg  alt=\"prompts\" src=\"https://github.com/user-attachments/assets/fb6d71eb-8f81-4443-a494-08c33ec9bcc4\" /\u003e\n\n### Deployment\n\nDeploy your agents to production with one-click GitHub integration and managed infrastructure.\n\n\u003cimg alt=\"deployment\" src=\"https://github.com/user-attachments/assets/e329ab4b-7464-435a-96cc-90214e8a3cfa\" /\u003e\n\n📖 [VoltOps Deploy Documentation](https://voltagent.dev/docs/deployment/voltops/)\n\n### Triggers \u0026 Actions\n\nAutomate agent workflows with webhooks, schedules, and custom triggers to react to external events.\n\n\u003cimg width=\"1277\"  alt=\"triggers\" src=\"https://github.com/user-attachments/assets/67e36934-2eb5-4cf1-94f8-3057d805ef65\" /\u003e\n\n### Monitoring\n\nMonitor agent health, performance metrics, and resource usage across your entire system.\n\n\u003cimg  alt=\"monitoring\" src=\"https://github.com/user-attachments/assets/1fd1151f-5ee4-4c7c-8ec7-29874e37c48f\" /\u003e\n\n### Guardrails\n\nSet up safety boundaries and content filters to ensure agents operate within defined parameters.\n\n\u003cimg  alt=\"guardrails\" src=\"https://github.com/user-attachments/assets/52bd51f0-944e-4202-9f54-7bb2e0e2d1f6\" /\u003e\n\n### Evals\n\nRun evaluation suites to test agent behavior, accuracy, and performance against benchmarks.\n\n\u003cimg  alt=\"evals\" src=\"https://github.com/user-attachments/assets/510cc180-2661-4973-a48f-074d4703d90b\" /\u003e\n\n### RAG (Knowledge Base)\n\nConnect your agents to knowledge sources with built-in retrieval-augmented generation capabilities.\n\n\u003cimg  alt=\"rag\" src=\"https://github.com/user-attachments/assets/a6c2f668-7ad1-4fb6-b67f-654335285f1e\" /\u003e\n\n## Learning VoltAgent\n\n- **[Start with interactive tutorial](https://voltagent.dev/tutorial/introduction/)** to learn the fundamentals building AI Agents.\n- **[Documentation](https://voltagent.dev/docs/)**: Dive into guides, concepts, and tutorials.\n- **[Examples](https://github.com/voltagent/voltagent/tree/main/examples)**: Explore practical implementations.\n- **[Blog](https://voltagent.dev/blog/)**: Read more about technical insights, and best practices.\n\n## Contribution\n\nWe welcome contributions! Please refer to the contribution guidelines (link needed if available). Join our [Discord](https://s.voltagent.dev/discord) server for questions and discussions.\n\n## Contributor ♥️ Thanks\n\nBig thanks to everyone who's been part of the VoltAgent journey, whether you've built a plugin, opened an issue, dropped a pull request, or just helped someone out on Discord or GitHub Discussions.\n\nVoltAgent is a community effort, and it keeps getting better because of people like you.\n\n![Contributors](https://contrib.rocks/image?repo=voltagent/voltagent\u0026max=500\u0026columns=20\u0026anon=1)\n\n## License\n\nLicensed under the MIT License, Copyright © 2026-present VoltAgent.\n","funding_links":["https://github.com/sponsors/voltagent"],"categories":["🔗 Related Resources","Text","NLP","Built with TypeScript","Multi-Agent \u0026 Orchestration","Examples","2. Libraries \u0026 Frameworks"],"sub_categories":["Tool Assignment Philosophy","Developer tools","AI","Other IDEs","JavaScript / TypeScript"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoltagent%2Fvoltagent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoltagent%2Fvoltagent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoltagent%2Fvoltagent/lists"}