+1
-1
| { | ||
| "name": "agentkits", | ||
| "version": "1.8.3", | ||
| "version": "1.9.0", | ||
| "description": "Multi-provider AI toolkit for agents. One interface, any model.", | ||
@@ -5,0 +5,0 @@ "type": "module", |
+319
-277
| <div align="center"> | ||
| # 🧰 AgentKits | ||
| # 📊 AgentKits | ||
| **多模型 AI 智能体工具库 · Multi-provider AI toolkit for agents** | ||
| **带记忆的 OpenRouter:统一模型 API + 智能推荐 + 记忆增强** | ||
@@ -10,8 +10,6 @@ [](https://www.npmjs.com/package/agentkits) | ||
| [](https://www.typescriptlang.org/) | ||
| [](#) | ||
| [](https://nodejs.org/) | ||
| *19 个大模型 · 15 个向量化引擎 · 40 个功能模块 · 零锁定* | ||
| **一个 API 接入所有 LLM,自动推荐最优模型,每次调用自带记忆增强。** | ||
| [Quick Start](#快速开始-quick-start) · [Providers](#大模型供应商-llm-providers) · [Modules](#模块目录-module-catalog) | ||
| [快速开始](#快速开始) · [功能亮点](#功能亮点) · [模型列表](#支持模型) · [API 参考](#api-参考) · [English](#english-version) | ||
@@ -22,263 +20,247 @@ </div> | ||
| ## 为什么选择 AgentKits? | ||
| ## 快速开始 | ||
| 构建 AI 智能体不应被锁定在单一供应商。AgentKits 提供**统一接口**,覆盖 19 个大模型和 15 个向量化引擎。切换模型只需改一个配置,无需重写代码。 | ||
| ```bash | ||
| npm install agentkits | ||
| ``` | ||
| > **🇨🇳 深度支持中国大模型生态**:通义千问、智谱AI、月之暗面、零一万物、硅基流动、阶跃星辰、百川智能、DeepSeek深度求索、MiniMax — 一等公民,不是附加品。 | ||
| ```typescript | ||
| import { recommendModel, createChat, withBrain } from 'agentkits'; | ||
| ```ts | ||
| import { createChat, createEmbedding } from 'agentkits'; | ||
| // 🎯 智能推荐:按任务 + 预算自动选最优模型 | ||
| const picks = recommendModel({ task: 'coding', budget: 'medium' }); | ||
| console.log(picks[0]); | ||
| // { model: 'deepseek-coder-v2', provider: 'deepseek', reason: 'Best cost/perf for coding tasks', ... } | ||
| // 切换供应商只需改一个词 | ||
| const chat = createChat({ provider: 'deepseek' }); // 深度求索 | ||
| const reply = await chat.complete('解释量子计算'); | ||
| // 🤖 统一调用:切换供应商只改一个词 | ||
| const chat = createChat({ provider: 'deepseek', model: 'deepseek-chat' }); | ||
| const reply = await chat.complete('用 TypeScript 写一个快排'); | ||
| const emb = createEmbedding({ provider: 'dashscope' }); // 通义千问 | ||
| const vector = await emb.embed('你好世界'); | ||
| // 🧠 记忆增强:自动从 DeepBrain 召回上下文 | ||
| const smartChat = withBrain(chat.complete.bind(chat), { brainUrl: 'http://localhost:3333' }); | ||
| const response = await smartChat({ messages: [{ role: 'user', content: '继续优化昨天的方案' }] }); | ||
| ``` | ||
| ## 快速开始 Quick Start | ||
| --- | ||
| ```bash | ||
| npm install agentkits | ||
| ``` | ||
| ## 功能亮点 | ||
| ### 对话补全 Chat | ||
| | | 功能 | 说明 | | ||
| |---|---|---| | ||
| | 🤖 | **统一模型 API** | OpenAI / Anthropic / Google / DeepSeek / 通义 / 智谱 / Moonshot / Ollama — 一个接口搞定 | | ||
| | 🎯 | **智能推荐** | `recommendModel()` 按任务 + 预算 + 速度推荐最优模型 | | ||
| | 💰 | **成本估算** | `estimateModelCost()` 20+ 模型精确定价,按 token 算钱 | | ||
| | 🏥 | **健康检查** | `checkProvider()` 7 个 provider 实时可用性 + 延迟检测 | | ||
| | 🧠 | **记忆增强** | `withBrain()` 每次调用自动串联 DeepBrain,recall → chat → learn | | ||
| | 🎨 | **Web UI** | `KitsUI` 模型管理面板 + Playground,零配置启动 | | ||
| | 📊 | **40 个模块** | RAG / Agent / 工作流 / MCP / A2A / 视觉 / TTS / STT / 护栏 | | ||
| ```ts | ||
| import { createChat } from 'agentkits'; | ||
| --- | ||
| // 使用任意供应商 | ||
| const chat = createChat({ provider: 'deepseek', model: 'deepseek-chat' }); | ||
| const reply = await chat.complete('你好!'); | ||
| ## 支持模型 | ||
| // 流式输出 | ||
| for await (const chunk of chat.stream('给我讲个故事')) { | ||
| process.stdout.write(chunk.content ?? ''); | ||
| } | ||
| ``` | ||
| ### LLM 大模型 (19 providers) | ||
| ### 向量化 Embedding | ||
| | 模型 | 供应商 | 输入价格 ($/1M tokens) | 输出价格 ($/1M tokens) | 上下文窗口 | 最佳场景 | | ||
| |------|--------|----------------------|----------------------|-----------|---------| | ||
| | gpt-4o | OpenAI | $2.50 | $10.00 | 128K | 通用、视觉、编程 | | ||
| | gpt-4o-mini | OpenAI | $0.15 | $0.60 | 128K | 简单任务、快速 | | ||
| | claude-3.5-sonnet | Anthropic | $3.00 | $15.00 | 200K | 推理、编程 | | ||
| | claude-3-haiku | Anthropic | $0.25 | $1.25 | 200K | 快速、低成本 | | ||
| | gemini-1.5-pro | Google | $1.25 | $5.00 | 2M | 超长上下文分析 | | ||
| | gemini-2.5-flash | Google | $0.15 | $0.60 | 1M | 快速、低成本 | | ||
| | deepseek-chat | DeepSeek 深度求索 | $0.14 | $0.28 | 128K | GPT-4 级质量,极致性价比 | | ||
| | deepseek-reasoner | DeepSeek 深度求索 | $0.55 | $2.19 | 128K | 深度推理 | | ||
| | qwen-turbo | 通义千问 | $0.04 | $0.08 | 128K | 快速、超低成本 | | ||
| | qwen-plus | 通义千问 | $0.11 | $0.28 | 128K | 中等质量 | | ||
| | glm-4-flash | 智谱 AI | $0.01 | $0.01 | 128K | 近乎免费 | | ||
| | glm-4-plus | 智谱 AI | $7.00 | $7.00 | 128K | 高质量中文 | | ||
| | moonshot-v1-8k | 月之暗面 (Kimi) | $0.17 | $0.17 | 8K | 中文对话 | | ||
| | grok-2 | xAI | — | — | 128K | 实时信息 | | ||
| | 本地模型 | Ollama | 免费 | 免费 | 可变 | Llama3 / Qwen2.5 / 任意 | | ||
| ```ts | ||
| import { createEmbedding } from 'agentkits'; | ||
| 还支持:Yi (零一万物)、Baichuan (百川)、SiliconFlow (硅基流动)、StepFun (阶跃星辰)、MiniMax、Cohere、Fireworks、Together、Groq、Perplexity、Custom (任意 OpenAI 兼容)。 | ||
| const emb = createEmbedding({ provider: 'dashscope' }); // 通义千问向量化 | ||
| const vector = await emb.embed('语义搜索'); | ||
| const batch = await emb.embedBatch(['文档1', '文档2', '文档3']); | ||
| ``` | ||
| ### 向量化引擎 (15 providers) | ||
| ### 函数调用 Tool Calling | ||
| | 模型 | 供应商 | 维度 | 价格 ($/1M tokens) | | ||
| |------|--------|------|-------------------| | ||
| | text-embedding-3-small | OpenAI | 1536 | $0.02 | | ||
| | text-embedding-3-large | OpenAI | 3072 | $0.13 | | ||
| | text-embedding-004 | Google | 768 | — | | ||
| | text-embedding-v3 | 通义千问 | 1024 | — | | ||
| | embedding-3 | 智谱 AI | 2048 | — | | ||
| | jina-embeddings-v3 | Jina | 1024 | — | | ||
| | nomic-embed-text | Ollama | 768 | 免费 | | ||
| ```ts | ||
| import { createToolChat, defineTool } from 'agentkits'; | ||
| 还支持:DeepSeek、SiliconFlow、Cohere、Voyage、Mixedbread、Fireworks、Together、Custom。 | ||
| const weather = defineTool({ | ||
| name: 'get_weather', | ||
| description: '获取城市天气', | ||
| parameters: { type: 'object', properties: { city: { type: 'string' } }, required: ['city'] }, | ||
| handler: async ({ city }) => `${city}:晴,25°C`, | ||
| }); | ||
| --- | ||
| const chat = createToolChat({ provider: 'zhipu', tools: [weather] }); // 智谱AI | ||
| const result = await chat.run('北京今天天气怎么样?'); | ||
| ``` | ||
| ## API 参考 | ||
| ### 工作流引擎 Workflow | ||
| ### 智能推荐 | ||
| ```ts | ||
| import { createWorkflow } from 'agentkits'; | ||
| ```typescript | ||
| import { recommendModel, estimateModelCost } from 'agentkits'; | ||
| const workflow = createWorkflow({ | ||
| name: 'research-pipeline', | ||
| startStep: 'search', | ||
| steps: [ | ||
| { | ||
| id: 'search', type: 'tool', | ||
| tool: { name: 'search', handler: async (input) => await searchWeb(input.query) }, | ||
| input: (ctx) => ({ query: ctx.variables.topic }), | ||
| output: 'searchResults', next: 'summarize', | ||
| }, | ||
| { | ||
| id: 'summarize', type: 'llm', | ||
| llm: { provider: 'deepseek', prompt: '总结以下内容:{{searchResults}}' }, | ||
| output: 'summary', | ||
| }, | ||
| ], | ||
| // 按任务 + 预算推荐 | ||
| const picks = recommendModel({ | ||
| task: 'coding', // 'chat' | 'coding' | 'analysis' | 'embedding' | 'vision' | ||
| budget: 'low', // 'free' | 'low' | 'medium' | 'high' | ||
| speed: 'fast', // 'fast' | 'medium' | 'slow' | ||
| local: false, // true = 仅推荐 Ollama 本地模型 | ||
| }); | ||
| // → [{ model, provider, reason, estimatedCostPer1kTokens, speed, quality }] | ||
| // 精确成本估算 | ||
| const cost = estimateModelCost('gpt-4o', 5000, 2000); | ||
| // → { cost: 0.0325, currency: 'USD', breakdown: { input: 0.0125, output: 0.02 } } | ||
| ``` | ||
| ### MCP 客户端 | ||
| ### 统一对话 | ||
| ```ts | ||
| import { createMCPClient } from 'agentkits'; | ||
| ```typescript | ||
| import { createChat } from 'agentkits'; | ||
| const mcp = await createMCPClient({ serverUrl: 'http://localhost:3001/sse' }); | ||
| const tools = await mcp.listTools(); | ||
| const result = await mcp.callTool('search', { query: 'hello' }); | ||
| const chat = createChat({ provider: 'deepseek', model: 'deepseek-chat' }); | ||
| const reply = await chat.complete('你好'); | ||
| // 流式输出 | ||
| for await (const chunk of chat.stream('给我讲个故事')) { | ||
| process.stdout.write(chunk.content ?? ''); | ||
| } | ||
| ``` | ||
| ### A2A 协议(Agent-to-Agent) | ||
| ### 记忆增强 (DeepBrain) | ||
| ```ts | ||
| import { createA2AClient, createA2AServer } from 'agentkits'; | ||
| ```typescript | ||
| import { withBrain, recall, learn } from 'agentkits'; | ||
| const client = createA2AClient({ baseUrl: 'http://localhost:8080' }); | ||
| const card = await client.getAgentCard(); | ||
| const task = await client.sendTask({ | ||
| id: 'task-1', | ||
| message: { role: 'user', parts: [{ type: 'text', text: '研究AI趋势' }] }, | ||
| // 中间件模式:自动 recall → chat → learn | ||
| const smartChat = withBrain(originalChatFn, { | ||
| brainUrl: 'http://localhost:3333', | ||
| agentId: 'my-agent', | ||
| autoRecall: true, | ||
| autoLearn: true, | ||
| recallLimit: 5, | ||
| }); | ||
| // 手动调用 | ||
| const memories = await recall('昨天的讨论', { brainUrl: 'http://localhost:3333' }); | ||
| await learn('新的知识点...', { brainUrl: 'http://localhost:3333' }); | ||
| ``` | ||
| ### 可运行示例 Runnable Examples | ||
| ### 健康检查 | ||
| `examples/` 目录提供 6 个开箱即用的 `.mjs` 示例,`node` 直接运行: | ||
| ```typescript | ||
| import { checkProvider } from 'agentkits'; | ||
| | 文件 | 说明 | | ||
| |------|------| | ||
| | [chat-basic.mjs](examples/chat-basic.mjs) | 最简对话(3 行代码)| | ||
| | [chat-stream.mjs](examples/chat-stream.mjs) | 流式输出,逐字打印 | | ||
| | [embedding-search.mjs](examples/embedding-search.mjs) | 文本向量化 + 余弦相似度搜索 | | ||
| | [rag-pipeline.mjs](examples/rag-pipeline.mjs) | 完整 RAG 流程(分块 → 向量化 → 检索 → 生成)| | ||
| | [multi-provider.mjs](examples/multi-provider.mjs) | 同一问题发给多个供应商,对比回答 | | ||
| | [benchmark.mjs](examples/benchmark.mjs) | 响应速度、TTFT、Token 数基准测试 | | ||
| | [model-recommend.ts](examples/model-recommend.ts) | 模型推荐引擎 — 按任务/预算/速度选最优模型 | | ||
| | [provider-health.ts](examples/provider-health.ts) | 供应商健康检查 — 一键检测可用性和延迟 | | ||
| | [brain-middleware.ts](examples/brain-middleware.ts) | Brain 中间件 — 为对话添加记忆/上下文 | | ||
| const status = await checkProvider('openai', { apiKey: 'sk-...' }); | ||
| // → { available: true, latencyMs: 234 } | ||
| ```bash | ||
| # 设置环境变量 | ||
| export GEMINI_API_KEY=your-key | ||
| # 运行任意示例 | ||
| node examples/chat-basic.mjs | ||
| node examples/chat-stream.mjs | ||
| node examples/embedding-search.mjs | ||
| node examples/rag-pipeline.mjs | ||
| node examples/multi-provider.mjs | ||
| # 基准测试(支持 --providers 指定供应商) | ||
| node examples/benchmark.mjs --providers gemini,deepseek,groq | ||
| // 支持的 provider: openai, anthropic, gemini, deepseek, moonshot, zhipu, ollama | ||
| ``` | ||
| --- | ||
| ### Web UI | ||
| ## 大模型供应商 LLM Providers (19) | ||
| ```typescript | ||
| import { KitsUI } from 'agentkits'; | ||
| | 供应商 Provider | 中文名 | 模型 Models | 流式 | 函数调用 | 视觉 | | ||
| |---------|--------|------------|------|---------|------| | ||
| | **OpenAI** | — | GPT-4o, GPT-4o-mini, o1, o3 | ✅ | ✅ | ✅ | | ||
| | **Gemini** | — | Gemini 2.0/1.5 Pro/Flash | ✅ | ✅ | ✅ | | ||
| | **DeepSeek** | 深度求索 | DeepSeek-V3, R1 | ✅ | ✅ | ❌ | | ||
| | **DashScope** | 通义千问 | Qwen-Max/Plus/Turbo | ✅ | ✅ | ✅ | | ||
| | **Zhipu** | 智谱AI | GLM-4, GLM-4V | ✅ | ✅ | ✅ | | ||
| | **Moonshot** | 月之暗面 (Kimi) | moonshot-v1 | ✅ | ✅ | ❌ | | ||
| | **Yi** | 零一万物 | Yi-Large | ✅ | ✅ | ❌ | | ||
| | **Baichuan** | 百川智能 | Baichuan-4 | ✅ | ✅ | ❌ | | ||
| | **SiliconFlow** | 硅基流动 | 多模型聚合 | ✅ | ✅ | ❌ | | ||
| | **StepFun** | 阶跃星辰 | Step-2 | ✅ | ✅ | ❌ | | ||
| | **MiniMax** | MiniMax | abab6.5s | ✅ | ✅ | ❌ | | ||
| | **Grok** | — | grok-2 | ✅ | ✅ | ❌ | | ||
| | **Cohere** | — | Command R+ | ✅ | ✅ | ❌ | | ||
| | **Fireworks** | — | FireFunction, Mixtral | ✅ | ✅ | ❌ | | ||
| | **Together** | — | Llama, Mixtral | ✅ | ✅ | ❌ | | ||
| | **Groq** | — | Llama, Mixtral | ✅ | ✅ | ❌ | | ||
| | **Perplexity** | — | Sonar | ✅ | ❌ | ❌ | | ||
| | **Ollama** | 本地部署 | 任意本地模型 | ✅ | ✅ | ✅ | | ||
| | **Custom** | 自定义 | 任意 OpenAI 兼容 | ✅ | ✅ | ✅ | | ||
| const ui = new KitsUI({ port: 4002 }); | ||
| await ui.start(); | ||
| // 打开 http://localhost:4002 → 模型管理面板 + Playground | ||
| ``` | ||
| ### 向量化引擎 Embedding Providers (15) | ||
| ### 更多能力 | ||
| | 供应商 Provider | 中文名 | 模型 Models | 维度 | | ||
| |---------|--------|------------|------| | ||
| | **OpenAI** | — | text-embedding-3-small/large, ada-002 | 256–3072 | | ||
| | **Gemini** | — | text-embedding-004 | 768 | | ||
| | **DashScope** | 通义千问 | text-embedding-v3 | 1024 | | ||
| | **DeepSeek** | 深度求索 | (兼容接口) | 可变 | | ||
| | **Zhipu** | 智谱AI | embedding-3 | 2048 | | ||
| | **SiliconFlow** | 硅基流动 | 多模型 | 可变 | | ||
| | **Cohere** | — | embed-v3 | 1024 | | ||
| | **Jina** | — | jina-embeddings-v3 | 1024 | | ||
| | **Voyage** | — | voyage-3 | 1024 | | ||
| | **Mixedbread** | — | mxbai-embed-large | 1024 | | ||
| | **Nomic** | — | nomic-embed-text | 768 | | ||
| | **Fireworks** | — | nomic, thenlper | 可变 | | ||
| | **Together** | — | 多模型 | 可变 | | ||
| | **Ollama** | 本地部署 | 任意本地模型 | 可变 | | ||
| | **Custom** | 自定义 | 任意兼容接口 | 可变 | | ||
| ```typescript | ||
| // 向量化 | ||
| import { createEmbedding } from 'agentkits'; | ||
| const emb = createEmbedding({ provider: 'openai' }); | ||
| const vector = await emb.embed('语义搜索'); | ||
| --- | ||
| // 函数调用 | ||
| import { createToolChat, defineTool } from 'agentkits'; | ||
| const tool = defineTool({ name: 'search', description: '搜索', parameters: {...}, handler: async (p) => '...' }); | ||
| const chat = createToolChat({ provider: 'openai', tools: [tool] }); | ||
| ## 模块目录 Module Catalog | ||
| // RAG 管线 | ||
| import { createRAG } from 'agentkits'; | ||
| const rag = createRAG({ chatProvider: 'deepseek', embeddingProvider: 'openai' }); | ||
| ### 核心 Core | ||
| // Agent 循环 | ||
| import { createAgent } from 'agentkits'; | ||
| const agent = createAgent({ provider: 'openai', tools: [...] }); | ||
| | 模块 | 引入路径 | 说明 | | ||
| |------|---------|------| | ||
| | **大模型对话** | `agentkits/llm` | 统一对话补全接口,支持 19 个供应商 | | ||
| | **向量化** | `agentkits/embedding` | 统一向量化接口,支持 15 个引擎 | | ||
| | **流式输出** | `agentkits/streaming` | SSE 解析、流组合、中断控制 | | ||
| | **结构化输出** | `agentkits/structured` | JSON Schema 校验的 LLM 输出 | | ||
| | **函数调用** | `agentkits/function-calling` | 跨供应商的函数/工具调用格式转换 | | ||
| // 工作流引擎 | ||
| import { createWorkflow } from 'agentkits'; | ||
| ### 智能体构建 Agent Building | ||
| // MCP 客户端 | ||
| import { createMCPClient } from 'agentkits'; | ||
| | 模块 | 引入路径 | 说明 | | ||
| |------|---------|------| | ||
| | **Agent 循环** | `agentkits/agent` | ReAct 风格智能体,支持工具调用循环 | | ||
| | **工具调用** | `agentkits/tools` | 定义和执行工具,适配任意大模型 | | ||
| | **多轮对话** | `agentkits/conversation` | 多轮对话管理,滑动窗口 | | ||
| | **Agent 记忆** | `agentkits/agent-memory` | 短期/长期记忆,自动摘要 | | ||
| | **提示词模板** | `agentkits/prompt-template` | Handlebars 风格模板引擎 | | ||
| | **安全护栏** | `agentkits/guardrails` | 输入输出校验、内容过滤、PII 检测 | | ||
| // A2A 协议 | ||
| import { createA2AClient, createA2AServer } from 'agentkits'; | ||
| ### RAG 检索增强生成 | ||
| // 故障转移 | ||
| import { createChatWithFailover } from 'agentkits'; | ||
| | 模块 | 引入路径 | 说明 | | ||
| |------|---------|------| | ||
| | **RAG 管线** | `agentkits/rag` | 完整的检索-增强-生成管线 | | ||
| | **重排序** | `agentkits/rerank` | API 重排序(Cohere、Jina 等) | | ||
| | **本地重排** | `agentkits/reranker` | Cross-encoder 本地重排序 | | ||
| | **网页搜索** | `agentkits/web-search` | Brave、Tavily、Serper、SearXNG | | ||
| | **PDF 解析** | `agentkits/pdf-parser` | PDF 文本提取与分块 | | ||
| | **文本分块** | `agentkits/chunker` | 智能分块(固定、句子、递归、语义) | | ||
| // 智能路由 | ||
| import { createRouter, createModelRouter } from 'agentkits'; | ||
| ### 多模态 Multimodal | ||
| // 结构化输出、护栏、重排序、TTS、STT、图像生成... | ||
| // 完整 40 个模块见下方模块目录 | ||
| ``` | ||
| | 模块 | 引入路径 | 说明 | | ||
| |------|---------|------| | ||
| | **视觉理解** | `agentkits/vision` | 跨供应商图像理解 | | ||
| | **语音合成** | `agentkits/tts` | TTS(OpenAI、Azure、ElevenLabs) | | ||
| | **语音识别** | `agentkits/stt` | STT 语音转文字 | | ||
| | **图像生成** | `agentkits/image` | DALL-E、Stability 等 | | ||
| --- | ||
| ### 基础设施 Infrastructure | ||
| ## 模块目录 (40 modules) | ||
| | 模块 | 引入路径 | 说明 | | ||
| |------|---------|------| | ||
| | **故障转移** | `agentkits/failover` | 自动供应商切换与健康检测 | | ||
| | **智能路由** | `agentkits/router` | 按成本、速度、能力路由请求 | | ||
| | **模型路由** | `agentkits/model-router` | 高级路由:模型画像与规则引擎 | | ||
| | **限流器** | `agentkits/ratelimit` | Token bucket 限流 | | ||
| | **供应商限流** | `agentkits/rate-limiter` | 按供应商限流(内置默认值) | | ||
| | **响应缓存** | `agentkits/response-cache` | LRU + TTL 缓存 | | ||
| | **重试** | `agentkits/retry` | 指数退避 + 抖动 | | ||
| | **成本计算** | `agentkits/cost` | 跨供应商定价对比 | | ||
| | **Token 计数** | `agentkits/token-counter` | 按模型精确计数 | | ||
| | **代理服务器** | `agentkits/proxy` | OpenAI 兼容代理 | | ||
| | **性能基准** | `agentkits/benchmark` | 供应商延迟与吞吐量基准测试 | | ||
| | **供应商测试** | `agentkits/test` | 一键检测已配置供应商的连通性 | | ||
| | **日志** | `agentkits/logger` | 结构化日志 | | ||
| | **链路追踪** | `agentkits/tracing` | OpenTelemetry 兼容分布式追踪 | | ||
| | **代码解释器** | `agentkits/code-interpreter` | 沙箱代码执行(JS、Python、Shell) | | ||
| | **模型评估** | `agentkits/evaluation` | 多模型输出对比:延迟、成本、质量 | | ||
| <details> | ||
| <summary>展开查看完整模块列表</summary> | ||
| ### 协议与互操作 Protocol & Interop | ||
| | 分类 | 模块 | 引入路径 | 说明 | | ||
| |------|------|---------|------| | ||
| | **核心** | 大模型对话 | `agentkits/llm` | 19 个供应商统一接口 | | ||
| | | 向量化 | `agentkits/embedding` | 15 个引擎统一接口 | | ||
| | | 流式输出 | `agentkits/streaming` | SSE 解析、流组合、中断控制 | | ||
| | | 结构化输出 | `agentkits/structured` | JSON Schema 校验 | | ||
| | | 函数调用 | `agentkits/function-calling` | 跨供应商工具调用格式转换 | | ||
| | **智能体** | Agent 循环 | `agentkits/agent` | ReAct 风格智能体 | | ||
| | | 工具调用 | `agentkits/tools` | 定义和执行工具 | | ||
| | | 多轮对话 | `agentkits/conversation` | 滑动窗口管理 | | ||
| | | 记忆 | `agentkits/agent-memory` | 短期/长期记忆、自动摘要 | | ||
| | | 提示词模板 | `agentkits/prompt-template` | Handlebars 风格模板 | | ||
| | | 安全护栏 | `agentkits/guardrails` | 输入输出校验、PII 检测 | | ||
| | **RAG** | RAG 管线 | `agentkits/rag` | 检索-增强-生成 | | ||
| | | 重排序 (API) | `agentkits/rerank` | Cohere / Jina 重排 | | ||
| | | 重排序 (本地) | `agentkits/reranker` | Cross-encoder 本地重排 | | ||
| | | 网页搜索 | `agentkits/web-search` | Brave / Tavily / Serper / SearXNG | | ||
| | | PDF 解析 | `agentkits/pdf-parser` | 文本提取与分块 | | ||
| | | 文本分块 | `agentkits/chunker` | 固定 / 句子 / 递归 / 语义 | | ||
| | **多模态** | 视觉理解 | `agentkits/vision` | 跨供应商图像理解 | | ||
| | | 语音合成 | `agentkits/tts` | OpenAI / Azure / ElevenLabs | | ||
| | | 语音识别 | `agentkits/stt` | 语音转文字 | | ||
| | | 图像生成 | `agentkits/image` | DALL-E / Stability | | ||
| | **基础设施** | 故障转移 | `agentkits/failover` | 自动供应商切换 | | ||
| | | 智能路由 | `agentkits/router` | 按成本/速度/能力路由 | | ||
| | | 模型路由 | `agentkits/model-router` | 规则引擎 | | ||
| | | 限流器 | `agentkits/ratelimit` | Token bucket | | ||
| | | 供应商限流 | `agentkits/rate-limiter` | 按供应商限流 | | ||
| | | 响应缓存 | `agentkits/response-cache` | LRU + TTL | | ||
| | | 重试 | `agentkits/retry` | 指数退避 + 抖动 | | ||
| | | 成本计算 | `agentkits/cost` | 跨供应商定价对比 | | ||
| | | Token 计数 | `agentkits/token-counter` | 按模型精确计数 | | ||
| | | 代理服务器 | `agentkits/proxy` | OpenAI 兼容代理 | | ||
| | | 基准测试 | `agentkits/benchmark` | 延迟与吞吐量 | | ||
| | | 供应商测试 | `agentkits/test` | 一键检测连通性 | | ||
| | | 日志 | `agentkits/logger` | 结构化日志 | | ||
| | | 链路追踪 | `agentkits/tracing` | OpenTelemetry 兼容 | | ||
| | | 代码解释器 | `agentkits/code-interpreter` | 沙箱执行 JS/Python/Shell | | ||
| | | 模型评估 | `agentkits/evaluation` | 多模型输出对比 | | ||
| | **协议** | MCP 客户端 | `agentkits/mcp-client` | 连接 MCP 服务器 | | ||
| | | 工作流引擎 | `agentkits/workflow` | 分支 / 并行 / 重试 | | ||
| | | A2A 协议 | `agentkits/a2a` | Google Agent-to-Agent | | ||
| | 模块 | 引入路径 | 说明 | | ||
| |------|---------|------| | ||
| | **MCP 客户端** | `agentkits/mcp-client` | 连接 MCP 服务器,自动转换工具定义 | | ||
| | **工作流引擎** | `agentkits/workflow` | 多步骤工作流:分支、并行、重试 | | ||
| | **A2A 协议** | `agentkits/a2a` | Google A2A 智能体间通信 | | ||
| </details> | ||
@@ -290,10 +272,10 @@ --- | ||
| ```bash | ||
| npx agentkits chat [--provider P] [--model M] # 交互式对话 | ||
| npx agentkits embed "文本" [--provider P] # 生成向量 | ||
| npx agentkits benchmark [--providers a,b,c] [--runs N] # 供应商对比 | ||
| npx agentkits test # 测试已配置供应商 | ||
| npx agentkits cost # 定价对比 | ||
| npx agentkits serve [--port N] # OpenAI 兼容代理 | ||
| npx agentkits list # 列出所有供应商 | ||
| npx agentkits mcp connect <url> # 连接 MCP 服务器 | ||
| npx agentkits chat [--provider P] [--model M] # 交互式对话 | ||
| npx agentkits embed "文本" [--provider P] # 生成向量 | ||
| npx agentkits benchmark [--providers a,b,c] [--runs N] # 供应商对比 | ||
| npx agentkits test # 测试已配置供应商 | ||
| npx agentkits cost # 定价对比 | ||
| npx agentkits serve [--port N] # OpenAI 兼容代理 | ||
| npx agentkits list # 列出所有供应商 | ||
| npx agentkits mcp connect <url> # 连接 MCP 服务器 | ||
| ``` | ||
@@ -303,28 +285,42 @@ | ||
| ## 架构 Architecture | ||
| ## 在 OPC Agent 中使用 | ||
| [opc-agent](https://github.com/Deepleaper/opc-agent) 基于 AgentKits 构建,展示了完整的生产级用法: | ||
| ```typescript | ||
| // opc-agent 内部使用 AgentKits 的模型推荐 + 统一调用 | ||
| import { recommendModel, createChat, withBrain, checkProvider } from 'agentkits'; | ||
| // 1. 推荐最适合当前任务的模型 | ||
| const picks = recommendModel({ task: 'coding', budget: 'low' }); | ||
| // 2. 创建带记忆的对话 | ||
| const chat = createChat({ provider: picks[0].provider, model: picks[0].model }); | ||
| const smartChat = withBrain(chat.complete.bind(chat), { brainUrl: process.env.BRAIN_URL }); | ||
| // 3. 健康检查确保可用 | ||
| const health = await checkProvider(picks[0].provider); | ||
| if (!health.available) { /* fallback */ } | ||
| ``` | ||
| ┌──────────────────────────────────────────────────────────┐ | ||
| │ 你的应用 Your App │ | ||
| ├──────────────────────────────────────────────────────────┤ | ||
| │ Agent 循环 │ 工作流 │ RAG │ 工具 │ 多轮对话 │ | ||
| ├──────────────────────────────────────────────────────────┤ | ||
| │ 安全护栏 │ 记忆 │ 结构化输出 │ 提示词模板 │ | ||
| ├──────────────────────────────────────────────────────────┤ | ||
| │ 路由 │ 故障转移 │ 缓存 │ 限流 │ 重试 │ | ||
| ├──────────────────────────────────────────────────────────┤ | ||
| │ MCP 客户端 │ A2A 协议 │ 链路追踪 │ 日志 │ | ||
| ├──────────────────────────────────────────────────────────┤ | ||
| │ 统一供应商接口 │ | ||
| │ ┌─────┐ ┌──────┐ ┌──────┐ ┌─────┐ ┌─────┐ │ | ||
| │ │ LLM │ │ 向量 │ │ 视觉 │ │ TTS │ │ STT │ ... │ | ||
| │ └──┬──┘ └──┬───┘ └──┬───┘ └──┬──┘ └──┬──┘ │ | ||
| ├─────┼───────┼────────┼────────┼───────┼────────────────┤ | ||
| │ OpenAI · Gemini · DeepSeek · 通义 · 智谱 · Ollama +13 │ | ||
| └──────────────────────────────────────────────────────────┘ | ||
| --- | ||
| ## 四件套生态 | ||
| AgentKits 是跃盟科技 AI 四件套的核心层: | ||
| | 层级 | 项目 | 定位 | | ||
| |------|------|------| | ||
| | 🧠 | [DeepBrain](https://github.com/Deepleaper/deepbrain) | 知识大脑 — 语义存储 + 自动关联 | | ||
| | 📊 | **AgentKits** ← 你在这里 | 模型层 — 统一 API + 推荐 + 记忆增强 | | ||
| | 🤖 | [OPC Agent](https://github.com/Deepleaper/opc-agent) | 智能体 — 基于 AgentKits 的生产级 Agent | | ||
| | 🔌 | [OpenClaw](https://github.com/Deepleaper/openclaw) | 运行时 — Agent 编排 + 多端接入 | | ||
| ``` | ||
| DeepBrain (知识) → AgentKits (模型) → OPC Agent (智能体) → OpenClaw (运行时) | ||
| ``` | ||
| --- | ||
| ## 环境变量 Environment Variables | ||
| ## 环境变量 | ||
@@ -335,2 +331,3 @@ ```bash | ||
| GEMINI_API_KEY=AI... | ||
| ANTHROPIC_API_KEY=sk-ant-... | ||
@@ -340,3 +337,3 @@ # 中国供应商 | ||
| DASHSCOPE_API_KEY=sk-... # 通义千问 | ||
| ZHIPU_API_KEY=... # 智谱AI | ||
| ZHIPU_API_KEY=... # 智谱 AI | ||
| MOONSHOT_API_KEY=sk-... # 月之暗面 (Kimi) | ||
@@ -348,7 +345,2 @@ YI_API_KEY=... # 零一万物 | ||
| MINIMAX_API_KEY=... # MiniMax | ||
| # 更多 | ||
| GROQ_API_KEY=gsk_... | ||
| COHERE_API_KEY=... | ||
| JINA_API_KEY=jina_... | ||
| ``` | ||
@@ -358,19 +350,24 @@ | ||
| ## 开源协议 License | ||
| ## License | ||
| Apache-2.0 · Made by [Deepleaper 跃盟科技](https://github.com/Magicray1217) | ||
| Apache-2.0 · Made by [Deepleaper 跃盟科技](https://github.com/Deepleaper) | ||
| --- | ||
| <details> | ||
| <summary>English</summary> | ||
| <a name="english-version"></a> | ||
| ## Why AgentKits? | ||
| # English Version | ||
| AgentKits provides a **unified TypeScript interface** across 19 LLM providers and 15 embedding providers. Switching models requires changing one config value — no code rewrite needed. | ||
| <div align="center"> | ||
| **First-class support for Chinese LLM ecosystem**: DashScope (Qwen), Zhipu AI (GLM), Moonshot (Kimi), Yi, Baichuan, SiliconFlow, StepFun, DeepSeek, MiniMax. | ||
| ## 📊 AgentKits | ||
| ## Install | ||
| **OpenRouter with Memory: Unified Model API + Smart Recommendation + Memory-Enhanced** | ||
| One API for all LLMs. Auto-recommend the best model. Every call enhanced with memory. | ||
| </div> | ||
| ### Install | ||
| ```bash | ||
@@ -380,42 +377,87 @@ npm install agentkits | ||
| ## Quick Examples | ||
| ### Quick Start | ||
| ```ts | ||
| import { createChat, createEmbedding } from 'agentkits'; | ||
| ```typescript | ||
| import { recommendModel, createChat, withBrain } from 'agentkits'; | ||
| const chat = createChat({ provider: 'deepseek' }); | ||
| const reply = await chat.complete('Explain quantum computing'); | ||
| // 🎯 Smart recommendation: pick the best model by task + budget | ||
| const picks = recommendModel({ task: 'coding', budget: 'medium' }); | ||
| console.log(picks[0]); | ||
| // { model: 'deepseek-coder-v2', provider: 'deepseek', reason: 'Best cost/perf for coding tasks', ... } | ||
| const emb = createEmbedding({ provider: 'openai' }); | ||
| const vector = await emb.embed('semantic search'); | ||
| // 🤖 Unified API: switch providers by changing one word | ||
| const chat = createChat({ provider: 'deepseek', model: 'deepseek-chat' }); | ||
| const reply = await chat.complete('Write a quicksort in TypeScript'); | ||
| // 🧠 Memory-enhanced: auto-recall context from DeepBrain | ||
| const smartChat = withBrain(chat.complete.bind(chat), { brainUrl: 'http://localhost:3333' }); | ||
| ``` | ||
| See the sections above for full code examples — all code blocks are bilingual. | ||
| ### Features | ||
| ## Providers | ||
| | | Feature | Description | | ||
| |---|---|---| | ||
| | 🤖 | **Unified Model API** | OpenAI / Anthropic / Google / DeepSeek / Qwen / Zhipu / Moonshot / Ollama — one interface | | ||
| | 🎯 | **Smart Recommendation** | `recommendModel()` picks optimal model by task + budget + speed | | ||
| | 💰 | **Cost Estimation** | `estimateModelCost()` precise pricing for 20+ models | | ||
| | 🏥 | **Health Check** | `checkProvider()` real-time availability + latency for 7 providers | | ||
| | 🧠 | **Memory-Enhanced** | `withBrain()` auto-chains DeepBrain: recall → chat → learn | | ||
| | 🎨 | **Web UI** | Model management dashboard + Playground | | ||
| | 📊 | **40 Modules** | RAG / Agent / Workflow / MCP / A2A / Vision / TTS / STT / Guardrails | | ||
| - **LLM (19)**: OpenAI, Gemini, DeepSeek, DashScope, Zhipu, Moonshot, Yi, Baichuan, SiliconFlow, StepFun, MiniMax, Grok, Cohere, Fireworks, Together, Groq, Perplexity, Ollama, Custom | ||
| - **Embedding (15)**: OpenAI, Gemini, DashScope, DeepSeek, Zhipu, SiliconFlow, Cohere, Jina, Voyage, Mixedbread, Nomic, Fireworks, Together, Ollama, Custom | ||
| ### Supported Models | ||
| ## Module Catalog (40 modules) | ||
| **LLM (19 providers):** OpenAI (GPT-4o), Anthropic (Claude 3.5), Google (Gemini 2.5), DeepSeek, DashScope (Qwen), Zhipu (GLM-4), Moonshot (Kimi), Yi, Baichuan, SiliconFlow, StepFun, MiniMax, Grok, Cohere, Fireworks, Together, Groq, Perplexity, Ollama, Custom. | ||
| Refer to the [Module Catalog](#模块目录-module-catalog) table above — all import paths work as `import { ... } from 'agentkits/<module>'`. | ||
| **Embedding (15 providers):** OpenAI, Google, DashScope, DeepSeek, Zhipu, SiliconFlow, Cohere, Jina, Voyage, Mixedbread, Nomic, Fireworks, Together, Ollama, Custom. | ||
| ## CLI | ||
| See the [Chinese section above](#支持模型) for the full pricing table. | ||
| ### API Reference | ||
| ```typescript | ||
| // Recommend | ||
| recommendModel({ task, budget, speed, local }) → ModelRecommendation[] | ||
| estimateModelCost(model, inputTokens, outputTokens) → ModelCostEstimate | ||
| // Chat | ||
| createChat({ provider, model }) → ChatClient | ||
| chat.complete(prompt) → string | ||
| chat.stream(prompt) → AsyncIterable<StreamChunk> | ||
| // Memory (DeepBrain) | ||
| withBrain(chatFn, config) → wrappedChatFn // middleware | ||
| recall(query, config) → RecallResult[] | ||
| learn(text, config) → void | ||
| // Health | ||
| checkProvider(provider, config?) → HealthCheckResult | ||
| // Web UI | ||
| new KitsUI({ port }).start() | ||
| // And 40 more modules... | ||
| ``` | ||
| ### CLI | ||
| ```bash | ||
| npx agentkits chat [--provider P] [--model M] | ||
| npx agentkits embed "text" [--provider P] | ||
| npx agentkits benchmark [--providers a,b,c] [--runs N] | ||
| npx agentkits test | ||
| npx agentkits cost | ||
| npx agentkits serve [--port N] | ||
| npx agentkits list | ||
| npx agentkits mcp connect <url> | ||
| npx agentkits chat | embed | benchmark | test | cost | serve | list | mcp connect | ||
| ``` | ||
| ## License | ||
| ### Ecosystem | ||
| Apache-2.0 · Made by [Deepleaper 跃盟科技](https://github.com/Magicray1217) | ||
| ``` | ||
| DeepBrain (knowledge) → AgentKits (models) → OPC Agent (agents) → OpenClaw (runtime) | ||
| ``` | ||
| </details> | ||
| | Layer | Project | Role | | ||
| |-------|---------|------| | ||
| | 🧠 | [DeepBrain](https://github.com/Deepleaper/deepbrain) | Knowledge brain — semantic store + auto-linking | | ||
| | 📊 | **AgentKits** ← you are here | Model layer — unified API + recommendation + memory | | ||
| | 🤖 | [OPC Agent](https://github.com/Deepleaper/opc-agent) | Agent — production-grade agent built on AgentKits | | ||
| | 🔌 | [OpenClaw](https://github.com/Deepleaper/openclaw) | Runtime — agent orchestration + multi-platform | | ||
| ### License | ||
| Apache-2.0 · Made by [Deepleaper 跃盟科技](https://github.com/Deepleaper) |
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
455
10.17%2444476
-0.02%