为什么有时候选择手搓Agent?
2026/7/24 5:43:39 网站建设 项目流程

这是 Agent 工程里面一个很常见的架构选择问题。很多公司会问:

为什么不用 LangChain、AutoGen、CrewAI 这些成熟框架,而要自己实现 Agent?

答案不是“自己写一定更好”,而是业务需求、可控性、性能、复杂度决定是否手搓

一 、什么叫“手搓 Agent”?

手搓 Agent 指:

不用完整 Agent 框架,而是自己实现核心循环:

用户输入

任务理解

状态管理

LLM调用

Tool选择

工具执行

结果反馈

继续推理

输出

例如自己写:

while steps < max_steps: response = llm.chat(messages) if response.need_tool: result = execute_tool(response.tool) memory.add(result) else: return response.answer

也就是自己控制 Agent Loop。

二、为什么选择手搓 Agent?

原因1:需要极强的控制能力

成熟框架通常提供:

Agent
├── Memory
├── Tool
├── Planner
└── Executor

但是很多企业场景需要:

每一步都必须可控。

比如机器人:

用户:

去客厅拿水

机器人 Agent:

不能:

LLM:
我要先问天气
我要搜索地图
我要联网查询

而应该:

任务解析

导航模块

运动控制

视觉确认

抓取

机器人领域:

延迟要求高

安全要求高

行为必须确定

所以经常自己设计 Agent。

原因2:框架太重

比如 LangChain:

为了通用性,引入很多抽象:

Chain
AgentExecutor
Retriever
Memory
Callback
Runnable

一个简单流程:

调用LLM

调用工具

返回结果

可能需要很多层封装。

但是企业内部:

可能只需要:

LLM
+
Tool Router
+
Memory
+
Workflow Engine

自己写几百行即可。

原因3:性能优化

框架为了通用,会增加:

对象封装

状态转换

中间消息

Callback

导致:

一次Agent执行:

纯API调用:
100ms

框架:
200~500ms

对于:

实时机器人

自动驾驶

高频交易

延迟很重要。

原因4:数据和安全要求

企业经常不能把:

Prompt

用户数据

Tool调用记录

交给第三方框架。

原因5:框架设计理念不符合业务

例如:

LangChain默认:

Agent决定下一步

但是工业机器人可能:

任务规划Agent
|

固定技能模块

导航Skill
抓取Skill
避障Skill
充电Skill

这里更像:

Agent + Workflow

而不是纯Agent。

三、那为什么不用手搓,直接用框架?

因为框架也有优势。

优势1:开发快

例如:

实现工具调用:

自己写:

Tool注册
参数解析
异常处理
消息管理

可能几天。

框架:

几十分钟。

优势2:生态成熟

例如:

LangChain已有:

RAG

Memory

Vector DB

Tool接口

Agent模板

不用重复造轮子。

优势3:快速验证想法

创业早期:

目标:

先证明Agent能不能工作

不是:

打造工业级Agent Runtime

所以:

框架优先。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询