导语:当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搭建什么应用?欢迎在评论区分享你的想法。🚀
还没有人回复