面试最容易被问懵的问题

面试官问:Workflow、Agent、Tools 这三个概念怎么理解?它们到底有什么区别?

很多人会下意识回答:Tools 是工具,Agent 会调工具,Workflow 是多个 Agent 串起来。这个回答不算完全错,但容易踩坑。

更准确的理解是:它们不是三选一,而是三层结构。Tools 是能力单元,Agent 是运行时决策系统,Workflow 是开发者提前写好的流程骨架。

真正的分界线只有一个:下一步该干什么,是谁决定的?

一句话记住:Tools 不做决策,只负责执行;Agent 自己做决策,动态选择工具和路径;Workflow 由开发者预先写好流程,节点按规则流转。

一、Tools:LLM 的“手和脚”,本质是带说明书的函数

Tools 是最小的能力单元。它可以是搜索网页、查询数据库、执行代码、发邮件、提交工单,也可以是调用一个内部业务接口。

从工程视角看,一个 Tool 通常由四部分组成:函数名、描述、参数 schema、真正的执行逻辑。模型看到的是“说明书”,真正执行工具的是你的应用代码。

这也是 Tool 和普通函数的关键差别:普通函数是程序员调用,Tool 是暴露给 LLM 选择和调用。因此,Tool 的描述是否清楚,直接决定模型会不会用错工具。

下面是一个最小化的 Tool 定义示例。注意:这里的 schema 只是“说明书”,真正执行 web_search 的代码要由应用侧实现。

tools = [
{
"type": "function",
"function": {
"name": "web_search",
"description": "搜索实时信息,返回摘要和来源。",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "搜索关键词"}
},
"required": ["query"]
}
}
}
]
def execute_web_search(query: str) -> str:
# 真正执行工具的是应用代码,不是模型。
return search_api(query)

二、Agent:拿着工具自己做决定的执行者

理解了 Tools,Agent 就好理解了。Agent 不是某个单独函数,也不是简单的一次模型调用,而是一个“目标驱动的循环系统”。

用户给 Agent 一个目标,它会先理解任务,再判断下一步要不要调用工具,调用哪个工具,工具结果是否够用,是否要继续搜索、继续分析,最后什么时候结束。

这就是 Agent 和 Tools 的根本差别:Tools 被动等待调用;Agent 主动判断路径。

一个简化的 Agent 循环可以这样写。这里的重点不是 API 细节,而是 while 循环里的“动态决策”。

def run_agent(user_goal: str):
messages = [{"role": "user", "content": user_goal}]
rounds = 0
while True:
rounds += 1
response = call_llm(messages=messages, tools=tools)
if response.type == "final_answer":
return response.content
if response.type == "tool_call":
tool_name = response.tool_name
tool_args = response.tool_args
tool_result = execute_tool(tool_name, tool_args)
messages.append(response.to_message())
messages.append({
"role": "tool",
"name": tool_name,
"content": tool_result
})
if rounds >= 8:
return "已达到最大执行轮次,返回当前可用结果。"

这个循环的价值在于灵活,风险也在于灵活。开发者不知道它会跑几轮,也不知道每轮会选哪个工具,所以生产环境一定要加“刹车”。

三、Workflow:把流程骨架写在代码里的总指挥

Workflow 不是“多个 Agent 串起来”这么简单。Workflow 的节点可以是 LLM、Tools、普通函数,也可以是 Agent。

它的关键不在节点是什么,而在控制流由谁掌握:Workflow 的下一步由开发者写好的代码决定。

比如客服系统中,先做意图识别,再根据类型进入不同分支。退款问题查订单,产品问题检索知识库,复杂问题转人工。这条路线由代码控制,不是某个节点自己决定。

一个确定性的客服 Workflow 可以这样写:

def customer_service_workflow(user_query: str) -> str:
intent = classify_intent(user_query)
if intent == "product_question":
docs = search_knowledge_base(user_query)
return generate_answer(user_query, docs)
if intent == "refund":
order = query_order(user_query)
if order["eligible"]:
create_refund_ticket(order["order_id"])
return "退款申请已受理,预计 3 个工作日到账。"
return "该订单暂不满足退款条件。"
create_human_ticket(user_query)
return "已为你转接人工客服,请稍候。"

四、三者不是替代关系,而是嵌套关系

很多人纠结“到底该用 Workflow 还是 Agent”,这个问题本身就有误导性。真实项目里三者通常同时存在。

完全靠 Agent 自主决策,灵活但难控:路径不确定、成本不确定、线上问题难复现。完全靠 Workflow 写死,稳定但不够灵活:面对开放问题容易卡死。

所以更现实的方案是 Agentic Workflow:用 Workflow 固定主流程骨架,在需要灵活判断的位置嵌入 Agent,在明确动作位置调用 Tools。

五、常见的 5 种 Workflow 编排模式

在实际工程中,不要一上来就做“完全自主 Agent”。更稳的做法是先选择合适的 Workflow 模式,再把某些复杂节点逐步升级成 Agent。

1. Prompt Chaining:提示链

把一个大任务拆成多个固定步骤,前一步输出作为后一步输入。适合总结、翻译、审核、改写这类流程清晰的任务。

2. Routing:路由

先判断输入类型,再分发给不同分支。适合客服、工单、问答系统,也适合把简单问题交给小模型、复杂问题交给强模型。

3. Parallelization:并行化

多个子任务可以同时执行,最后汇总结果。适合多来源检索、多维度评估、安全检查、投票式审核。

4. Orchestrator-Workers:编排者-工人

一个编排者负责拆任务,多个 Worker 执行子任务,最后汇总。适合代码修改、复杂调研、多文件处理。

5. Evaluator-Optimizer:评估者-优化器

一个模型生成,一个模型评估,不合格就反馈修改。适合文案、代码、法律文本、报告等对质量要求高的场景。

六、工程落地:不要把 Agent 当魔法,要把它当系统

一个能演示的 Agent 很容易,一个能上线的 Agent 很难。难点通常不在模型本身,而在边界、权限、重试、审计、评测和成本控制。

Tool 要可测,Agent 要可追踪,Workflow 要可恢复。只有这样,线上出了问题才能知道是分类错了、工具错了、数据源错了,还是模型判断错了。

停止条件可以独立成一个 Guard,避免散落在每个节点里:

class AgentBudget:
def __init__(self, max_rounds=8, max_tokens=30000, timeout_seconds=60):
self.max_rounds = max_rounds
self.max_tokens = max_tokens
self.timeout_seconds = timeout_seconds
def should_stop(self, state) -> bool:
if state.final_answer_ready:
return True
if state.rounds >= self.max_rounds:
return True
if state.used_tokens >= self.max_tokens:
return True
if state.elapsed_seconds >= self.timeout_seconds:
return True
return False

七、最后用一张表彻底分清

面试回答模板

Tools 是封装好的能力单元,本质是带 schema 的函数。它只负责被调用时执行,不决定什么时候用。

Agent 是一个目标驱动的决策系统,内部由 LLM 根据上下文动态判断下一步:要不要调工具、调哪个工具、是否继续、什么时候结束。

Workflow 是开发者提前写好的流程骨架,节点可以是 LLM、Tools 或 Agent,但整体路线由代码控制,所以更稳定、更好调试。

生产环境通常不会完全依赖纯 Agent,而是采用 Agentic Workflow:主流程用 Workflow 固定,关键灵活节点嵌入 Agent,具体能力通过 Tools 扩展。


内容来源:Workflow、Agent、Tools:AI Agent 工程里最容易混淆的三个概念_热闻岛

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐