从零开始构建 AI Agent 框架(一):架构设计与快速体验
从零构建 AI Agent 框架的设计思路与实现方案。首先对比了 Coze、Dify 等现有编排工具的优劣,确立了开放编排、服务分离及能力无限的目标。架构分为 WebUI 编排层与 Agent 服务层,支持 Python 运行时及自定义插件。文中详细说明了环境启动流程、插件加载机制及单 Agent 执行逻辑,并补充了 Rust 核心库的接口定义示例,为开发者提供了一套可扩展的 Agent 开发基础。

从零构建 AI Agent 框架的设计思路与实现方案。首先对比了 Coze、Dify 等现有编排工具的优劣,确立了开放编排、服务分离及能力无限的目标。架构分为 WebUI 编排层与 Agent 服务层,支持 Python 运行时及自定义插件。文中详细说明了环境启动流程、插件加载机制及单 Agent 执行逻辑,并补充了 Rust 核心库的接口定义示例,为开发者提供了一套可扩展的 Agent 开发基础。

将大语言模型(LLM)能力落地到具体应用中,最佳实践是将其封装为智能体(Agent)。本系列文章旨在从零开始编写一个 Agent 框架,帮助开发者高效地构造和运行复杂的 Agent 应用。
在动手开发之前,有必要分析现有的主流 Agent 编排工具。
本 ai_agent 框架的设计目标如下:
系统主要划分为两个核心模块:Agent 服务和 WebUI。

启动项目需要以下示例环境:
3.11.9。# 启动 Python 运行时(已打包为 Docker,版本 3.11.9)
docker run -itd -p 50001:50001 wdshihaoren/python_rt:16896997
# 运行实例(启动 RPC 服务,能够运行 Plan)
cd example
cargo run --bin serve
# 运行 WebUI
cd webui/server
go run main.go
cd webui
trunk serve
通过 project->LOAD 从 webui/server 中加载所有 Plugin 插件。插件本质是一组 JSON 文件,定义了插件的视图结构。

此时可以通过拖拽节点制作 Workflow。
可以直接上传一个做好的 Agent。将内容粘贴到 plan-text-view 窗口中,点击 upload plugin 上传,即可查看所有的流程节点。

打开 work-flow-view 视图,可以看到 Single Agent 的执行流程。
注意:一个流程总是以 start 节点开始,以 end 节点结束。
answer。
点击 debug 按钮,查看关键流程的执行结果是否符合预期。

至此,一个简单的流程体验完成。
为了深入理解框架原理,以下补充核心 Rust 库的实现细节。
执行计划(Plan)采用 JSON 格式描述,包含节点列表及依赖关系。
{
"nodes": [
{
"id": "node_1",
"type": "llm",
"config": { "model": "gpt-4", "prompt": "你好" }
},
{
"id": "node_2",
"type": "tool",
"parent_id": "node_1",
"config": { "name": "search", "args": ["query"] }
}
]
}
Agent 运行时通过统一的 Trait 接口调用各类服务。
pub trait Service {
fn name(&self) -> &str;
async fn execute(
&self,
context: &mut ExecutionContext,
input: serde_json::Value,
) -> Result<serde_json::Value, AgentError>;
}
开发者只需实现该 Trait 即可注册新的 LLM 或 Tool 服务。
Python 运行时通过 Docker 容器隔离,限制网络访问和文件系统权限,防止恶意代码执行。
本项目目前处于早期阶段,后续将完善文档并增加更多模块介绍。欢迎感兴趣的同学参与贡献。
如果不希望使用复杂的 WebUI,也可以直接使用 Rust 编程,引用 agent_rt 和 wd_agent crate,通过代码构建 Agent。


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online