Agentic:TypeScript AI Agent标准库的完整指南

【免费下载链接】agentic AI agent stdlib that works with any LLM and TypeScript AI SDK. 【免费下载链接】agentic 项目地址: https://gitcode.com/GitHub_Trending/ag/agentic

概述

Agentic是一个专为AI Agent设计的TypeScript标准库,它提供了与任何LLM和TypeScript AI SDK无缝协作的能力。这个库的核心目标是简化AI函数的创建、管理和集成,让开发者能够专注于业务逻辑而不是底层实现细节。

核心特性

1. 跨SDK兼容性

Agentic支持所有主流TypeScript AI SDK,包括:

SDK名称 适配器包 主要特点
Vercel AI SDK @agentic/ai-sdk 官方Vercel生态集成
LangChain @agentic/langchain 成熟的AI应用框架
LlamaIndex @agentic/llamaindex 数据检索和查询优化
Firebase Genkit @agentic/genkit Google Firebase生态集成
Dexa Dexter @agentic/dexter 对话式AI专用框架
OpenAI SDK 原生支持 直接函数调用支持

2. 统一函数管理

Agentic通过AIFunctionSet类提供了强大的函数管理能力:

// 创建函数集合
const functionSet = new AIFunctionSet([weatherClient, searchClient])

// 选择特定函数
const selectedFunctions = functionSet.pick('get_current_weather', 'search_news')

// 排除特定函数  
const filteredFunctions = functionSet.omit('send_email', 'make_call')

// 映射处理
const functionSpecs = functionSet.map(fn => fn.spec)

3. 类型安全的设计

基于Zod schema验证,确保输入输出的类型安全:

@aiFunction({
  name: 'get_current_weather',
  description: '获取指定位置的当前天气信息',
  inputSchema: z.object({
    q: z.string().describe('位置查询,可以是城市名、邮编、IP地址或经纬度坐标')
  })
})
async getCurrentWeather(query: { q: string }) {
  // 实现逻辑
}

架构设计

核心组件

mermaid

函数调用流程

mermaid

快速开始

安装基础包

npm install @agentic/stdlib @agentic/core zod

基本使用示例

import { WeatherClient } from '@agentic/stdlib'

// 初始化天气客户端
const weather = new WeatherClient()

// 直接调用
const result = await weather.getCurrentWeather({
  q: 'San Francisco'
})
console.log(result)

与AI SDK集成

import { openai } from '@ai-sdk/openai'
import { generateText } from 'ai'
import { createAISDKTools } from '@agentic/ai-sdk'
import { WeatherClient } from '@agentic/stdlib'

const weather = new WeatherClient()

const result = await generateText({
  model: openai('gpt-4o-mini'),
  tools: createAISDKTools(weather),
  toolChoice: 'required',
  prompt: '旧金山现在的天气如何?'
})

console.log(result.toolResults[0])

服务提供商集成

Agentic支持30+种服务提供商,涵盖各个领域:

搜索类服务

服务 包名 功能描述
Bing搜索 @agentic/bing 微软Bing网页搜索API
Exa搜索 @agentic/exa 专为LLM优化的网页搜索
Serper搜索 @agentic/serper Google搜索API封装
Tavily搜索 @agentic/tavily AI优化的搜索服务

数据类服务

服务 包名 功能描述
Clearbit @agentic/clearbit 人员和公司数据丰富
Hunter @agentic/hunter 邮箱查找和验证
Proxycurl @agentic/proxycurl LinkedIn数据获取
People Data Labs @agentic/people-data-labs 人员数据服务

工具类服务

服务 包名 功能描述
计算器 @agentic/calculator 数学表达式计算
E2B代码解释器 @agentic/e2b Python代码沙箱执行
天气 @agentic/weather 天气数据查询
Wolfram Alpha @agentic/wolfram-alpha 计算和科学问答

高级用法

函数组合和筛选

import { PerigonClient, SerperClient } from '@agentic/stdlib'
import { createAIRunner } from '@dexaai/dexter'
import { createDexterFunctions } from '@agentic/dexter'

const perigon = new PerigonClient()
const serper = new SerperClient()

const runner = createAIRunner({
  chatModel: new ChatModel({ model: 'gpt-4o-mini' }),
  functions: createDexterFunctions(
    perigon.functions.pick('search_news_stories'),
    serper.functions
  ),
  systemMessage: '你是一个有帮助的助手,请尽可能简洁。'
})

const result = await runner('总结关于国际选举的最新新闻动态。')

自定义AI函数创建

import { createAIFunction } from '@agentic/core'
import { z } from 'zod'

const getUserInfo = createAIFunction(
  {
    name: 'get_user_info',
    description: '根据用户ID获取用户信息',
    inputSchema: z.object({
      userId: z.string().describe('用户唯一标识符')
    })
  },
  async ({ userId }) => {
    // 实现获取用户信息的逻辑
    return await fetchUserFromDatabase(userId)
  }
)

最佳实践

1. 环境变量管理

// 使用内置的getEnv函数安全获取环境变量
import { getEnv } from '@agentic/core'

const apiKey = getEnv('WEATHER_API_KEY')

2. 错误处理

try {
  const result = await weather.getCurrentWeather({ q: location })
} catch (error) {
  if (error instanceof RetryableError) {
    // 可重试错误
    await retryOperation()
  } else if (error instanceof AbortError) {
    // 操作中止
    console.log('操作被用户取消')
  }
}

3. 性能优化

// 使用单个包而不是stdlib来减小打包体积
import { WeatherClient } from '@agentic/weather'  // 而不是 @agentic/stdlib

// 按需导入函数
const { getCurrentWeather } = weather.functions.get('get_current_weather')

常见问题解答

Q: Agentic与其他AI SDK有什么区别?

A: Agentic不是替代品,而是补充。它提供了标准化的函数接口,可以在不同SDK之间共享和复用。

Q: 如何添加自定义服务?

A: 继承AIFunctionsProvider类并使用@aiFunction装饰器标记要暴露的方法。

Q: 支持服务端和客户端使用吗?

A: 是的,Agentic设计为同构库,支持Node.js、浏览器和其他JavaScript环境。

总结

Agentic为TypeScript AI开发带来了标准化和互操作性,通过统一的函数接口和强大的管理能力,显著降低了AI应用开发的复杂度。无论是简单的天气查询还是复杂的多服务集成,Agentic都能提供优雅的解决方案。

主要优势:

  • 🚀 开箱即用的30+服务集成
  • 🔄 跨SDK无缝兼容
  • 🛡️ 类型安全的Zod验证
  • 🧩 模块化的函数管理
  • ⚡ 优化的性能设计

开始使用Agentic,让你的AI应用开发更加高效和愉悦!

【免费下载链接】agentic AI agent stdlib that works with any LLM and TypeScript AI SDK. 【免费下载链接】agentic 项目地址: https://gitcode.com/GitHub_Trending/ag/agentic

更多推荐