导语:当Anthropic的Agent Teams展示多AI协作的震撼潜力时,开源社区也在快速跟进。AgentX——一个基于事件驱动架构的TypeScript框架,让开发者可以用几行代码就搭建起生产级的AI Agent应用。本文深度解析其架构设计、核心特性和使用场景。
| 维度 | 传统Agent开发 | AgentX |
|---|---|---|
| 启动方式 | 从零搭建基础设施 | **npx一键启动** |
| 架构模式 | 回调地狱/复杂状态管理 | **事件驱动,响应式** |
| UI开发 | 自己造轮子 | **开箱即用组件库** |
| 部署方式 | 手动配置 | **Docker一键部署** |
| 学习曲线 | 陡峭 | **平缓,类React体验** |
核心洞察:AgentX把Agent开发的复杂度封装起来,让开发者专注业务逻辑而非基础设施。
LLM_PROVIDER_KEY=sk-ant-xxxxx LLM_PROVIDER_URL=https://api.anthropic.com npx @agentxjs/portagent
特点:
docker run -d --name portagent -p 5200:5200 -e LLM_PROVIDER_KEY=sk-ant-xxxxx -e LLM_PROVIDER_URL=https://api.anthropic.com -v ./data:/home/node/.agentx deepracticexs/portagent:latest
特点:
import { createServer } from "http";
import { createAgentX, defineAgent } from "agentxjs";
const MyAgent = defineAgent({
name: "MyAgent",
systemPrompt: "你是一个有帮助的助手。",
mcpServers: {
filesystem: {
command: "npx",
args: ["-y", "@anthropic/mcp-server-filesystem", "/tmp"],
},
},
});
const server = createServer();
const agentx = await createAgentX({
llm: { apiKey: process.env.LLM_PROVIDER_KEY, baseUrl: process.env.LLM_PROVIDER_URL },
agentxDir: "~/.agentx",
server,
defaultAgent: MyAgent,
});
server.listen(5200);
服务端 SYSTEMBUS 客户端
═══════════════════════════════════════════════════════════════════════════
┌─────────────────┐ ║
│ 环境层 │ emit ║
│ • LLMProvider │─────────────────>║
│ • Sandbox │ ║
└─────────────────┘ ║
║
┌─────────────────┐ subscribe ║
│ Agent 层 │<─────────────────║
│ • AgentEngine │ ║
│ • Agent │ emit ║ ┌─────────────────┐
│ │─────────────────>║ │ WebSocket │
│ 4 层事件 │ ║<═══════>│ (事件流) │
│ • Stream │ ║ └─────────────────┘
│ • State │ ║
│ • Message │ ║
│ • Turn │ ║
└─────────────────┘ ║
║
┌─────────────────┐ ║
│ 运行时层 │ emit ║
│ • Persistence │─────────────────>║
│ • Container │ ║
│ • WebSocket │<────────────────>║
└─────────────────┘ ║
║
[ RxJS Pub/Sub ]
| 事件层 | 触发时机 | 用途 |
|---|---|---|
| **Stream** | LLM流式输出时 | 实时显示生成内容 |
| **State** | Agent状态变化时 | 更新UI状态、持久化 |
| **Message** | 新消息产生时 | 消息列表更新 |
| **Turn** | 对话轮次切换时 | 上下文管理、计费 |
输入流:
客户端输入 → WebSocket → BUS → AgentEngine → LLMProvider
输出流:
LLMProvider → AgentEngine → BUS → WebSocket → 客户端渲染
关键设计:所有通信都通过中央事件总线(RxJS Pub/Sub),解耦各层依赖。
什么是MCP?
Model Context Protocol,Anthropic推出的标准化工具接口。
AgentX中的使用:
const MyAgent = defineAgent({
name: "FileAssistant",
systemPrompt: "你可以读取和操作文件。",
mcpServers: {
filesystem: {
command: "npx",
args: ["-y", "@anthropic/mcp-server-filesystem", "/home/user/docs"],
},
github: {
command: "npx",
args: ["-y", "@anthropic/mcp-server-github"],
},
},
});
优势:
import { useAgentX, ResponsiveStudio } from "@agentxjs/ui";
import "@agentxjs/ui/styles.css";
function App() {
const agentx = useAgentX("ws://localhost:5200/ws");
if (!agentx) return <div>连接中...</div>;
return <ResponsiveStudio agentx={agentx} />;
}
组件清单:
ResponsiveStudio - 完整对话界面ChatMessage - 单条消息ToolCall - 工具调用展示StreamOutput - 流式输出| 功能 | 说明 |
|---|---|
| 用户注册 | 可选邀请码保护 |
| 会话持久化 | SQLite存储,随时恢复 |
| 实时同步 | WebSocket双向通信 |
| 健康检查 | Docker就绪的生产级监控 |
| 特性 | AgentX | LangChain | LlamaIndex | AutoGPT |
|---|---|---|---|---|
| **语言** | TypeScript | Python/TS | Python | Python |
| **架构** | 事件驱动 | 链式/图 | 索引/检索 | 循环代理 |
| **UI** | 内置组件 | 无 | 无 | 无 |
| **部署** | Docker一键 | 手动配置 | 手动配置 | 复杂 |
| **学习曲线** | 平缓 | 中等 | 中等 | 陡峭 |
| **适用场景** | 应用开发 | 流程编排 | RAG应用 | 自主代理 |
AgentX的差异化:
| 场景 | 为什么适合 |
|---|---|
| **客服机器人** | 实时流式响应,内置UI |
| **代码助手** | MCP支持IDE工具,事件驱动适合长对话 |
| **知识库问答** | 易集成RAG,会话持久化 |
| **多Agent应用** | 事件总线天然支持多实例 |
| **快速原型** | npx启动,几小时出Demo |
import { defineAgent } from "agentxjs";
const CodingAgent = defineAgent({
name: "CodingAgent",
systemPrompt: `你是一个编程助手。
你可以:
1. 读取文件系统
2. 执行Shell命令
3. 搜索代码`,
mcpServers: {
filesystem: {
command: "npx",
args: ["-y", "@anthropic/mcp-server-filesystem", "."],
},
shell: {
command: "npx",
args: ["-y", "@anthropic/mcp-server-shell"],
},
},
});
// 用户:"帮我找出项目中所有console.log"
// Agent会自动调用filesystem工具搜索
开发环境:
npx @agentxjs/portagent
生产环境:
docker-compose up -d
# 配合Nginx反向代理 + SSL
AgentX是Deepractice AI开发生态的一部分:
| 项目 | 定位 | 与AgentX关系 |
|---|---|---|
| **PromptX** | 提示词工程框架 | AgentX可集成PromptX管理提示词 |
| **DPML** | Deepractice标记语言 | 定义AI工作流,AgentX执行 |
| **DARP** | Agent运行时协议 | AgentX实现DARP标准 |
| **Lucid-UI** | AI驱动UI组件库 | AgentX UI基于Lucid-UI |
社区资源:
| 局限 | 说明 |
|---|---|
| 早期阶段 | API可能变化,文档待完善 |
| 生态规模 | 相比LangChain社区较小 |
| 多语言 | 仅TypeScript,无Python版本 |
短期:
- 完善文档和示例
- 增加更多内置MCP服务器
- 优化性能和稳定性
中期:
- 多Agent协作支持
- 可视化工作流编辑器
- 云端托管服务
长期:
- 跨语言支持(Python/Rust)
- 企业级安全特性
- 与Anthropic Agent Teams对接?
AgentX代表了AI应用开发的工程化趋势:
| 阶段 | 特征 | 代表 |
|---|---|---|
| 1. 原始时代 | 直接调用API | OpenAI SDK |
| 2. 编排时代 | 链式/图式编排 | LangChain |
| 3. 应用时代 | 全栈框架 | **AgentX** |
| 4. 智能体时代 | 多Agent协作 | Anthropic Agent Teams |
AgentX的价值:
AgentX是Agent开发的"Next.js"——不是第一个,但可能是让大多数人真正上手的那一个。
| 资源 | 链接 |
|---|---|
| GitHub仓库 | https://github.com/Deepractice/AgentX |
| npm包 | https://www.npmjs.com/package/agentxjs |
| Docker镜像 | https://hub.docker.com/r/deepracticexs/portagent |
| 官方文档 | https://github.com/Deepractice/AgentX/tree/main/docs |
本文基于AgentX开源仓库公开资料整理,项目处于早期开发阶段,功能可能快速迭代。
思考题:你会用AgentX搭建什么应用?欢迎在评论区分享你的想法。🚀
还没有人回复