TypeScript 杀疯了,开发 AI 应用新趋势!

作者:前端充电宝

原文:mp.weixin.qq.com/s/_n_gA63pb...

随着 AI 技术的迅猛发展,越来越多开发者开始构建基于大模型(LLM)、多智能体协作、浏览器端推理等新型应用。在这一浪潮中,TypeScript 凭借其强大的类型系统、成熟的工具链和活跃的生态,正逐步成为现代 AI 应用开发的主流选择之一。

  • 根据 Y Combinator 统计,约有 60% 至 70% 的 AI Agent 初创公司采用 TypeScript 开发。
  • GitHub 数据显示,近两年内,TypeScript 在机器学习和 AI 项目中的使用量增长超过 150%。

本文将介绍三款基于 TypeScript 的热门 AI 应用开发工具 !

OpenAI Agents JS

OpenAI Agents JS 是 OpenAI 推出的 JavaScript/TypeScript SDK,专为构建支持语音交互与多智能体协作的 AI 应用而设计。它是官方 Agents SDK 的 JS/TS 版本,轻量且功能强大,适用于构建复杂的代理系统。

OpenAI Agents JS 的核心功能如下:

  • 多智能体协作:支持多个代理的协同工作与动态控制流转。
  • 工具集成:支持结构化输出、并行调用与函数插件系统。
  • 语音支持:通过 WebRTC/WebSocket 构建实时语音智能体,提供浏览器优化版本。
  • 安全机制:支持输入/输出验证与防护机制。
  • 调试与追踪:内置可视化调试器与运行追踪工具。

举个例子:

php 复制代码
import { Agent, run, tool } from'@openai/agents';

// 定义一个工具
const getWeather = tool({
name: 'get_weather',
description: '获取指定城市的天气',
parameters: { type: 'object', properties: { city: { type: 'string' }}, required: ['city'] },
async execute({ city }) {
    return`现在 ${city} 的天气是晴朗。`;
  },
});

// 创建并运行 Agent
const agent = new Agent({
name: '天气助理',
instructions: '你是一个能提供实时天气信息的智能助手。',
tools: [getWeather],
});

const result = await run(agent, '告诉我今天北京的天气');
console.log(result.finalOutput);

Githubgithub.com/openai/open...

Mastra

Mastra.ai 是由 Gatsby 创始人推出的开源 TypeScript AI 代理框架,致力于为前端开发者提供完整的 AI 工作流与部署解决方案。它解决了传统 AI 工具偏向 Python 的痛点,为 JS/TS 社区提供了类型安全且现代化的开发体验。

Mastra.ai 的核心功能如下:

  • 智能代理:支持工具调用、记忆、RAG 能力、任务分解和外部 API 调用。
  • 流程引擎:基于 XState 构建流程图,支持暂停、恢复、调试与可视化。
  • RAG 向量检索:支持 embedding、索引、检索、rerank,兼容多种向量库。
  • 评估工具:基于 LLM、规则或统计方法,自动评估输出结果。
  • 本地开发与 Playground:内建对话、日志、prompt 调试与 CLI 工具。
  • 部署灵活:支持 Vercel、Cloudflare Workers、Netlify、Node.js、React/Next.js 等环境。

举个例子:创建GitHub仓库信息代理

css 复制代码
import { createTool } from"@mastra/core/tools";
import { z } from"zod";

exportconst githubRepoTool = createTool({
id: "get-github-repo-info",
description: "获取 GitHub 公共仓库的基本信息",
inputSchema: z.object({
    owner: z.string().describe("GitHub 用户名或组织"),
    repo: z.string().describe("仓库名称"),
  }),
outputSchema: z.object({
    stars: z.number(),
    forks: z.number(),
    issues: z.number(),
    license: z.string().nullable(),
    lastPush: z.string(),
    description: z.string().nullable(),
  }),
execute: async ({ context }) => {
    const res = await fetch(`https://api.github.com/repos/${context.owner}/${context.repo}`);
    if (res.status === 404) thrownewError(`仓库 ${context.owner}/${context.repo} 未找到`);
    const data = await res.json();
    return {
      stars: data.stargazers_count,
      forks: data.forks_count,
      issues: data.open_issues_count,
      license: data.license?.name ?? null,
      lastPush: data.pushed_at,
      description: data.description ?? null,
    };
  },
});

Githubgithub.com/mastra-ai/m...

VoltAgent

VoltAgent 是一个现代 TypeScript AI 代理框架,专注于提升 JS/TS 开发者在构建、调试、部署 AI 应用过程中的体验。相比传统的复杂代码或无代码平台,VoltAgent 提供结构化编程与可视化调试的双重优势。

VoltAgent 的核心功能如下:

  • Agent 引擎与多智能体系统 :支持 @voltagent/core 模块定义 agent,可通过 supervisor 协同多个 agent。
  • 可视化调试与观察性:本地 VoltOps 控制台支持思维链可视化,兼容 LangFuse、LangSmith 等平台。
  • 插件系统与集成能力:可调用 API、数据库、RAG 检索工具,内建语音交互与外部平台接入能力。
  • Memory 与 RAG 支持:支持持久化上下文,兼容多种向量数据库与检索机制。

举个例子

php 复制代码
import { VoltAgent, Agent } from"@voltagent/core";
import { VercelAIProvider } from"@voltagent/vercel-ai";
import { openai } from"@ai-sdk/openai";

// 定义一个简单的智能体
const agent = new Agent({
name: "my-agent",
description: "A helpful assistant that answers questions without using tools",
llm: new VercelAIProvider(),
model: openai("gpt-4o-mini"),
});

// 初始化 VoltAgent
new VoltAgent({
agents: {
    agent,
  },
});

Githubgithub.com/VoltAgent/v...

相关推荐
Carlos_sam3 分钟前
OpenLayers:ol-wind之渲染风场图全解析
前端·javascript
拾光拾趣录12 分钟前
闭包:从“变量怎么还没死”到写出真正健壮的模块
前端·javascript
拾光拾趣录33 分钟前
for..in 和 Object.keys 的区别:从“遍历对象属性的坑”说起
前端·javascript
OpenTiny社区44 分钟前
把 SearchBox 塞进项目,搜索转化率怒涨 400%?
前端·vue.js·github
编程猪猪侠1 小时前
Tailwind CSS 自定义工具类与主题配置指南
前端·css
qhd吴飞1 小时前
mybatis 差异更新法
java·前端·mybatis
王小义笔记2 小时前
创建属于自己的github Page主页
github
YGY Webgis糕手之路2 小时前
OpenLayers 快速入门(九)Extent 介绍
前端·经验分享·笔记·vue·web
患得患失9492 小时前
【前端】【vueDevTools】使用 vueDevTools 插件并修改默认打开编辑器
前端·编辑器
ReturnTrue8682 小时前
Vue路由状态持久化方案,优雅实现记住表单历史搜索记录!
前端·vue.js