)Workflow(工作流)
串行多 Agent = 一种工作流,但工作流范围更大。
Workflow:定义一套固定步骤、流转规则,描述任务从开始到结束怎么走、数据从哪一步传到下一步。
- 串行 Agent(大纲 Agent → 写作 Agent → 校对 Agent):是LLM 驱动的串行工作流。
- 工作流不一定非得是 Agent,也可以是纯代码步骤:读取文件 → 清洗文本 → 存入数据库,这也是 Workflow。
一句话:Agent 是执行者;Workflow 是安排执行者顺序的流程图纸。
2)Skill 与 Agent 的核心区别(最容易混淆)
Skill:工具 / 能力函数,单一原子能力,只做一件小事,不带独立思考、没有自己的系统提示词角色。 Agent:拥有系统提示词、思考逻辑,可以自主选择调用 Skill,能做决策。
通俗比喻:
- Skill = 单独的工具:尺子、计算器、打印机。只会干一件固定动作,没有想法。
- Agent = 人,会思考,需要的时候拿起尺子 / 计算器(调用 Skill)完成任务。
- Workflow = 作业指导书:第一步干什么,第二步干什么,规定好先后顺序。
重点: ✅ Agent 可以调用多个 Skill ✅ Skill 本身不能自己主动思考、不能主动调用别的工具,只是一个可被调用的能力函数。
Skill 伪代码示例(火山方舟风格)
这里写两个 Skill:
skill_calculate:数学计算 Skillskill_search_wiki:简易知识库检索 Skill
python
# ========== Skill:原子能力,纯函数,无大模型思考 ==========
def skill_calculate(expression: str):
"""Skill:数学计算,只负责计算表达式,单一能力"""
print(f"【Skill 计算工具】执行:{expression}")
result = eval(expression)
return f"计算结果:{result}"
def skill_search_wiki(keyword: str):
"""Skill:知识库检索Skill,只查资料,不总结、不推理"""
db = {
"牛顿": "牛顿是经典力学奠基人,发现万有引力",
"爱因斯坦": "提出相对论"
}
content = db.get(keyword, "没有找到相关资料")
return f"检索结果:{content}"
👉 特点:
- Skill 就是普通函数,没有大模型调用
- 输入输出固定,只做单一功能
- 没有角色设定,不会自主判断要不要执行,必须由别人(Agent)调用它
单 Agent 调用上面 Skill 的伪代码
python
from volcenginesdkarkruntime import Ark
client = Ark(api_key="xxx")
async def math_agent(user_query):
"""Agent:拥有思考能力,可以决定要不要调用Skill"""
system_prompt = """
你是一个理科助手。
规则:
如果用户提问需要数学计算,调用 skill_calculate;
如果用户询问科学家资料,调用 skill_search_wiki;
不需要工具,就直接回答。
输出格式:{"tool_name":"xxx","args":"xxx"}
"""
messages = [{"role":"system", "content": system_prompt}, {"role":"user", "content": user_query}]
resp = await client.chat.completions.create(model="doubao-seed-2-0-lite", messages=messages)
llm_decision = resp.choices[0].message.content
# Agent 解析模型输出,然后调用对应的 Skill
if "skill_calculate" in llm_decision:
return skill_calculate("123 + 456 * 2")
elif "skill_search_wiki" in llm_decision:
return skill_search_wiki("牛顿")
else:
return llm_decision
执行逻辑:
- 用户提问 → Agent(大模型)思考:我要不要调用工具?
- Agent 决定:需要计算 → 调用 skill_calculate
- Skill 执行计算,返回结果给 Agent
- Agent 拿到 Skill 返回结果,整理成最终答案给用户
Skill 不会自己启动,不会自己做决策。决策权属于 Agent。
再把三者放一起对比
表格
| 概念 | 核心定位 | 是否有大模型独立思考 |
|---|---|---|
| Skill | 原子工具函数,单一能力 | ❌ 没有大模型,纯函数执行 |
| Agent | 智能执行者,可以思考、选择调用 Skill | ✅ 有独立大模型推理 |
| Workflow | 任务流转的步骤编排方案 | ❌ 只是流程定义,可以编排 Agent/Skill |
举一个组合例子:Workflow 编排 Agent,Agent 内部调用 Skill
python
# Workflow:工作流,固定串行步骤
async def science_report_workflow(user_question):
# Step1:Agent1,收集资料(内部调用检索Skill)
material = await collect_agent(user_question)
# Step2:Agent2,整理报告(内部调用计算Skill)
report = await write_report_agent(material)
return report
- Workflow:规定先收集,再写报告
- collect_agent /write_report_agent:两个 Agent
- Agent 内部按需调用
skill_search_wiki、skill_calculate
一句话区分总结
- Skill = 工具,只会干活,不会思考
- Agent = 会思考的智能体,可以按需调用 Skill
- Workflow = 流程编排,规定 Agent/Skill 先后执行顺序
你之前那个串行小说多 Agent 例子,就是Workflow 编排了多个 Agent,每个 Agent 内部也可以挂载自己的 Skill(比如文本统计 Skill、查重 Skill)。