23-Agent和普通聊天机器人有什么区别

Agent 和普通聊天机器人到底有什么区别?

系列:Python + FastAPI 大模型应用基础(第 23 篇)

1. 区别不在界面,而在控制权

两者都可以显示聊天窗口,真正区别是模型是否参与动作选择并影响外部系统。

维度 普通聊天机器人 Agent
主要输出 文本回答 动作与最终回答
外部能力 可无工具 通常有一个或多个工具
状态 对话历史 任务状态、步骤和观察
风险 错误信息 错误信息 + 错误操作
控制方式 单次生成 循环、工作流、终止条件

RAG 聊天机器人即使查询知识库,也不一定是 Agent;如果查询步骤由程序固定,它更接近检索流水线。

2. 用路由器明确选择

python 复制代码
from dataclasses import dataclass
from typing import Literal


Mode = Literal["chat", "workflow", "agent"]


@dataclass(frozen=True)
class TaskProfile:
    needs_external_action: bool
    steps_are_known: bool
    risk: Literal["low", "medium", "high"]


def choose_mode(profile: TaskProfile) -> Mode:
    """优先选择自由度更低、可验证性更高的结构。"""
    if not profile.needs_external_action:
        return "chat"
    if profile.steps_are_known or profile.risk == "high":
        return "workflow"
    return "agent"

例如"解释退款政策"可用聊天/RAG;"按固定规则生成并审批退款单"适合工作流;"在多个只读来源中自主查找故障原因"才可能适合 Agent。

3. 统一响应契约

python 复制代码
from pydantic import BaseModel, Field


class AssistantResponse(BaseModel):
    mode: Mode
    answer: str = Field(min_length=1)
    action_ids: list[str] = Field(default_factory=list)
    needs_human: bool = False


def build_response(
    profile: TaskProfile,
    answer: str,
    action_ids: list[str] | None = None,
) -> AssistantResponse:
    mode = choose_mode(profile)
    ids = action_ids or []
    if mode == "chat" and ids:
        raise ValueError("聊天模式不应产生外部动作")
    return AssistantResponse(
        mode=mode,
        answer=answer,
        action_ids=ids,
        needs_human=profile.risk == "high",
    )

4. 可复验测试

python 复制代码
def test_high_risk_task_uses_workflow() -> None:
    profile = TaskProfile(True, False, "high")
    assert choose_mode(profile) == "workflow"


def test_chat_cannot_claim_actions() -> None:
    profile = TaskProfile(False, True, "low")
    try:
        build_response(profile, "已完成", ["refund-1"])
    except ValueError:
        pass
    else:
        raise AssertionError("聊天回答不能伪装成已执行动作")

5. 什么时候不要做 Agent

  • 步骤固定且可枚举;
  • 审批和合规要求严格;
  • 工具错误代价高;
  • 无法建立可靠评测;
  • 业务只需要总结、分类或抽取;
  • 团队没有可观测性和人工接管能力。

Agent 不是技术成熟度的象征。用确定性流程解决确定性问题,通常更便宜、更稳定。

6. 对抗性审查

  • 页面写着"智能 Agent"不代表架构真是 Agent;
  • 模型说"已操作"不代表工具执行成功,必须检查动作记录;
  • 多轮聊天也不自动等于 Agent;
  • Agent 的成功率要按完整任务计算,不能只看最后一句是否流畅;
  • 引入 Agent 前先评估最坏错误动作。

7. 总结

普通聊天机器人产生内容,Agent 还会选择动作。企业系统应从风险和流程不确定性出发选择架构,而不是为了追热点增加自主性。

相关推荐
千里码aicood8 小时前
flask基于opencv绘图机器人的系统设定(opencv)
opencv·机器人·flask
小程序设计9 小时前
机械设计果蔬采摘机器人
机器人
rcms1527026921818 小时前
Kawasaki 30D60E-A331 机器人控制器
机器人
2601_9676598819 小时前
2026迎宾机器人选型指南:企业前台展厅展会怎么选
机器人
m0_5474866621 小时前
《机器人智能感知基础》全套PPT课件(北京科技大学)
机器人
yuewell_ai21 小时前
机器人调度通讯怎么设计才不会被网络抖动瘫痪
网络·机器人·php
数智工坊1 天前
NTIRE2024×4图像超分竞赛综述|Mamba崛起、数据缩放、频域增强成为新趋势
网络·人工智能·深度学习·cnn·机器人
微财经观圈1 天前
酒店配送机器人如何选型:普渡和优地从安全到场景的全面对比
大数据·安全·机器人
老兵发新帖1 天前
机器人本体:FK/IK
人工智能·数码相机·机器人
刀法如飞1 天前
《理解道德经》简版第5章:天地不仁,以万物为刍狗
面试·机器人