什么是 AI Agent
一句话定义
AI Agent = LLM + 工具 + 循环
一个 AI Agent 能够:
- 接收用户指令
- 自主决定需要什么信息或执行什么操作
- 调用工具获取信息或执行操作
- 根据结果继续推理或返回答案
Agent vs Chatbot
| 普通 Chatbot | AI Agent |
|---|---|
| 一问一答 | 多轮推理 |
| 只能生成文本 | 能执行操作 |
| 无法获取实时信息 | 能调用工具获取 |
| 用户主导对话 | Agent 自主规划 |
举个例子:
Chatbot 模式:
用户: 帮我创建一个 hello.py 文件
AI: 好的,你可以用以下命令创建:echo "print('Hello')" > hello.pyAgent 模式:
用户: 帮我创建一个 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 实现 | 源码位置 |
|---|---|---|
| LLM | GeminiChat | packages/core/src/core/geminiChat.ts |
| 工具 | ServerTool | packages/core/src/tools/ |
| 循环 | GeminiClient | packages/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 模式 →