小王是公司的普通员工,某天早上他发现:
"我的电脑连不上 Wi-Fi 了,昨天还好好的,帮我看看?"
如果是传统的 IT 支持,流程是这样的:
整个过程可能要 30 分钟到 2 小时。
但如果有一个 AI Agent,会是什么样呢?
Agent 处理问题的核心模式叫 ReAct(Reasoning + Acting),也就是"边思考边行动"。
它的流程是这样的:
思考(Thought)→ 行动(Action)→ 观察结果(Observation)→ 再思考……让我们看看 Agent 怎么处理小王的问题:
🤔 思考: 用户说电脑连不上 Wi-Fi,昨天还好好的。我需要先了解更多信息。
🔧 行动: 询问用户更多细节。
Agent:您好!请问您看到的是什么错误提示?是找不到 Wi-Fi 信号,还是连上了但上不了网?
👤 用户回复: 找到了 Wi-Fi 信号,但输入密码后显示"无法连接到此网络"。
🤔 思考: 用户能找到 Wi-Fi 信号,说明网卡正常。问题可能是密码错误、网络配置问题,或者 IP 冲突。我应该先查知识库找常见解决方案。
🔧 行动: 查询知识库。
📚 知识库返回: 找到 3 条相关解决方案:
🤔 思考: 最常见的原因是网络配置问题,先建议用户尝试"忘记网络后重新连接"。
🔧 行动: 给用户提供解决方案。
Agent:这个问题很常见,建议您先尝试以下步骤:
请问您方便尝试一下吗?
👤 用户回复: 试了,还是不行。
🤔 思考: 第一个方案没解决,可能是 IP 冲突问题。我需要指导用户检查 IP 设置,或者直接帮用户开一个工单。
🔧 行动: 提供第二个方案,并询问是否需要人工支持。
Agent:看来问题比较复杂。建议您:
ipconfig /release 然后 ipconfig /renew如果还是不行,我可以帮您开一个工单,让 IT 人员上门处理。您需要吗?
从上面的例子可以看出,Agent 会把一个复杂问题拆解成小步骤:
用户问题:电脑连不上 Wi-Fi
│
├── 步骤 1:收集信息(询问错误提示)
│
├── 步骤 2:查知识库(找解决方案)
│
├── 步骤 3:提供方案(忘记网络重连)
│
├── 步骤 4:确认结果(是否解决)
│
└── 步骤 5:升级处理(开人工工单)这种逐步拆解、逐步解决的方式,让 Agent 能处理各种复杂问题。
要完成这些任务,Agent 需要调用各种"工具"。在 IT 运维场景,我们设计了以下工具:
工具名称 | 功能描述 |
|---|---|
knowledge_base | 查询 IT 知识库,找故障解决方案 |
ticket_system | 创建工单,分配给 IT 人员 |
user_info | 查询用户信息(电脑型号、历史故障等) |
notification | 发送通知给用户或 IT 人员 |
diagnosis | 远程诊断用户电脑状态 |
当 Agent 决定调用工具时,它会生成类似这样的调用:
{
"tool": "knowledge_base",
"action": "search",
"parameters": {
"query": "Wi-Fi 无法连接 错误提示"
}
}工具执行后返回结果,Agent 再根据结果决定下一步。
下面是用 Rust 实现工具注册的核心代码(简化版):
/// 工具定义
pub struct ToolDefinition {
pub name: String,
pub description: String,
pub parameters: Vec<ToolParameter>,
}
/// IT 知识库查询工具
pub struct ITKnowledgeBaseTool;
impl ITKnowledgeBaseTool {
pub fn definition() -> ToolDefinition {
ToolDefinition {
name: "it_knowledge_base".to_string(),
description: "查询 IT 知识库,找故障解决方案".to_string(),
parameters: vec![ToolParameter {
name: "query".to_string(),
param_type: "string".to_string(),
required: true,
description: "要查询的问题描述".to_string(),
}],
}
}
pub fn call(&self, query: &str) -> String {
// 实际项目中这里会查向量数据库
format!("查询知识库:{}", query)
}
}关键点:
这一篇,我们学习了:
下一篇预告: 知识就是力量!|RAG 让 Agent 变成真正的"IT 专家"
我们会详细讲解如何构建知识库,让 Agent 能给出更准确的答案。