在上一章节中,我们已经初步了解了 Agent(智能体)的工作原理。现在,是时候将理论转化为实践,开始设计属于你自己的第一个简易 Agent 了!

1. 寻找一个合适的 LLM API

大语言模型(LLM)目前分为开源与闭源两大阵营。在推理能力、专精技术、使用体验与调用价格上,它们各有千秋。

为了帮你避坑,这里基于笔者真实的业务使用体验,从四个维度对主流模型做了一个简单的打分与排名(仅代表个人真实体验):

评估维度综合排名 (从高到低)
🧠 推理能力Gemini > Claude > OpenAI = Qwen > GLM > MiniMax
响应速度OpenAI > Claude > MiniMax > Gemini > Qwen > GLM
💻 代码能力Claude = Gemini > 其他
🌟 综合体验Gemini > Qwen > Claude > OpenAI > MiniMax > GLM

💡 核心推荐方案:

  • 海外/出海开发者首选Gemini (综合体验最佳,推理能力顶尖)
  • 国内开发者首选Qwen (通义千问,国内体验与性价比的极佳平衡)

2. 选择 Agent 架构语言

明确了模型后,我们需要选择开发 Agent 的底层语言。综合笔者的实际工程体验,TypeScript (TS) 搭配 Bun 引擎 是目前在性能和综合能力上的最优解。

  • 为什么不首选 Python? 虽然 Python 在 AI 算法层生态极佳,但由于 Agent 经常需要频繁调用各种外部工具(Tools),Python 脚本作为工具被反复拉起时,其冷启动速度较慢,极易成为系统的性能瓶颈。
  • 为什么推荐 TypeScript + Bun? 得益于现代 JS 引擎(如 Bun)底层的 JIT(即时编译)结构,代码会在运行过程中进行预热优化,这意味着你编写的常用工具函数会**“越用越快”**。此外,TS 优秀的类型系统也能为 Agent 的复杂工程提供极佳的代码健壮性。

因此,在接下来的实战环节中,我们将全程采用 TypeScript 来编写这个简易 Agent。


3. 实现架构图

graph TD
    %% 外部输入输出
    Start([用户提出任务]) --> History[将任务存入对话历史 TS Memory Array]
    
    %% 核心 Agent 循环
    subgraph AgentLoop [Agent 核心循环 - 运行在 Bun 环境]
        History --> LLM[🧠 LLM 大脑 Qwen/Gemini API 调用]
        
        LLM -- 生成 Thought: 思考如何做 --> Decide{是否需要工具?}
        
        %% 分支1:执行工具
        Decide -- 是 调用函数 --> ExecuteTool[🛠️ 执行工具 Action 调用本地 TS 工具函数]
        ExecuteTool --> Observe[👀 获取 Observation 工具执行结果]
        Observe --> UpdateHistory[更新对话历史 Thought + Action + Observation]
        UpdateHistory --> LLM
        
        %% 分支2:回答用户
        Decide -- 否 得出结论 --> FinalResponse[✨ 生成最终回答]
    end
    
    %% 外部输出
    FinalResponse --> End([结束任务并输出])