Skip to content

什么是 AI Agent

一句话定义

AI Agent = LLM + 工具 + 循环

一个 AI Agent 能够:

  1. 接收用户指令
  2. 自主决定需要什么信息或执行什么操作
  3. 调用工具获取信息或执行操作
  4. 根据结果继续推理或返回答案

Agent vs Chatbot

普通 ChatbotAI Agent
一问一答多轮推理
只能生成文本能执行操作
无法获取实时信息能调用工具获取
用户主导对话Agent 自主规划

举个例子:

Chatbot 模式:

用户: 帮我创建一个 hello.py 文件
AI: 好的,你可以用以下命令创建:echo "print('Hello')" > hello.py

Agent 模式:

用户: 帮我创建一个 hello.py 文件
Agent: [思考] 需要创建文件
Agent: [调用工具] write_file("hello.py", "print('Hello World')")
Agent: [工具返回] 文件创建成功
Agent: 已为你创建 hello.py 文件,内容是打印 Hello World

关键区别:Agent 真的执行了操作,而不只是告诉你怎么做。

核心组件

1. LLM(大语言模型)

Agent 的"大脑",负责:

  • 理解用户意图
  • 决定下一步行动
  • 生成最终回复

2. 工具(Tools)

Agent 的"手脚",让它能与外部世界交互:

  • 读写文件
  • 执行命令
  • 搜索网络
  • 调用 API

3. 循环(Loop)

Agent 的"工作流程":

接收输入 → 调用 LLM → 执行工具 → 返回结果 → (继续或结束)

gemini-cli 中的实现

在 gemini-cli 中,这三个组件分别对应:

组件gemini-cli 实现源码位置
LLMGeminiChatpackages/core/src/core/geminiChat.ts
工具ServerToolpackages/core/src/tools/
循环GeminiClientpackages/core/src/core/client.ts

当你在 gemini-cli 中输入任务时:

最简 Agent 代码

理解了概念,来看最简单的 Agent 实现:

typescript
async function runAgent(userMessage: string) {
  const messages = [{ role: 'user', content: userMessage }]

  while (true) {
    // 1. 调用 LLM
    const response = await llm.chat(messages)

    // 2. 检查是否需要调用工具
    const toolCall = response.toolCall
    if (toolCall) {
      // 3. 执行工具
      const result = await tools[toolCall.name](toolCall.args)
      // 4. 把结果加入对话历史
      messages.push({ role: 'tool', content: result })
    } else {
      // 5. 没有工具调用,返回最终结果
      return response.text
    }
  }
}

这就是 Agent 的本质:一个循环,不断调用 LLM 和工具,直到任务完成

小结

  • Agent = LLM + 工具 + 循环
  • 与 Chatbot 的关键区别:Agent 能执行真实操作
  • gemini-cli 是一个完整的 Agent 实现,值得学习

下一步

了解了 Agent 是什么,接下来学习 Agent 背后的思维模式:ReAct 模式 →

通过实际源码学习 AI Agent 开发