🤖 搭建一个 Agent 的完整知识图谱

一、先搞清楚 Agent 到底是什么

最简单的定义:

Agent = LLM(大脑) + Tools(手脚) + Memory(记忆) + Planning(规划) + Environment(环境)

你可以把它想象成一个人:

  • 大脑 = LLM,负责理解、推理、决策
  • 手脚 = Tools,负责执行动作(搜索、写代码、发邮件、操作数据库…)
  • 记忆 = 短期记忆(当前对话上下文) + 长期记忆(历史知识、用户偏好)
  • 规划 = 拿到一个大任务后,怎么拆解成小步骤,先做什么后做什么
  • 环境 = 它运行在哪里,能接触到什么资源

普通的大模型对话只是一个”问答机器人”,加上规划、工具调用和记忆的循环,才真正成为 Agent。


二、搭建 Agent 需要了解的知识体系

1. 🧠 LLM 基础(选大脑)

知识点 说明
模型选型 Claude、GPT-4o、Gemini、DeepSeek、Qwen、Llama… 各有优劣
API 调用 怎么发请求、怎么处理流式响应、怎么控制成本
Token 与上下文窗口 理解成本计算、上下文限制,这是 Agent 的”工作记忆”上限
Temperature / Top-P 控制输出的随机性,Agent 场景通常要偏保守(temperature 低)
System Prompt 给 Agent 设定性格、规则、能力边界

2. 🔧 Tool Use / Function Calling(给手脚)

这是 Agent 最核心的能力扩展机制:

用户说:"帮我查一下明天的天气"

Agent 内部流程:
1. LLM 判断 → 需要调用 "get_weather" 工具
2. 生成工具调用参数 → { "city": "昆明", "date": "明天" }
3. 系统执行工具,返回结果
4. LLM 拿到结果,组织语言回复用户

你需要了解:

  • Function Calling 协议:各模型的工具定义格式(OpenAI 格式、Anthropic 格式、MCP 协议等)
  • 工具设计原则:工具的描述要清晰(LLM 靠描述来决定调哪个工具)、参数要明确、返回值要结构化
  • MCP(Model Context Protocol):Anthropic 推出的标准化工具协议,正在成为行业趋势

3. 🧩 记忆系统(管记忆)

类型 对应人类 技术实现
工作记忆 当前对话上下文 上下文窗口(Context Window)
短期记忆 今天聊了什么 对话摘要(Conversation Summary)
长期记忆 你叫什么、喜欢什么 向量数据库(Pinecone/Chroma/Weaviate)+ 结构化存储

关键知识:

  • RAG(检索增强生成):从知识库中检索相关信息,注入到 Prompt 中
  • 向量嵌入(Embedding):把文本变成向量,实现语义搜索
  • 记忆管理策略:什么时候存、存什么、怎么检索、怎么遗忘

4. 📋 规划与推理(教它思考)

策略 说明
ReAct Reasoning + Acting,想一步做一步,观察结果再想下一步
CoT(Chain of Thought) 让 LLM 逐步推理
ToT(Tree of Thought) 探索多条推理路径,选最优
Plan & Execute 先制定完整计划,再逐步执行
Reflection 执行后反思结果,必要时修正

最常用的就是 ReAct 循环:

Thought: 我需要先查用户的日历,看看明天有没有安排
Action: list_events(startAt="明天", endAt="后天")
Observation: 明天下午2点有个会议
Thought: 现在我知道了,可以回复用户了
Answer: 明天下午2点你有个会议哦~

5. 🏗️ 框架与编排(搭骨架)

主流框架对比:

框架 特点 适合场景
LangChain / LangGraph 生态最大、最灵活,LangGraph 支持复杂状态图 复杂多步 Agent
LlamaIndex RAG 最强,数据索引和检索专精 知识密集型 Agent
CrewAI 多 Agent 协作,角色分工清晰 团队协作场景
AutoGen(微软) 多 Agent 对话框架 研究、复杂推理
Dify / Coze 低代码平台,拖拽搭建 快速原型、非开发者
OpenAI Agents SDK 官方方案,简洁直接 OpenAI 生态用户
Anthropic Claude + MCP 原生工具调用,MCP 协议标准化 工具密集型 Agent
纯手搓 自己写循环,完全可控 学习、极致定制

6. 🖥️ 运行环境与部署

层面 需要了解的
本地 vs 云 本地运行(Ollama + 本地模型) vs 云端 API 调用
容器化 Docker 打包 Agent,方便部署和扩展
Serverless Vercel / Cloudflare Workers / AWS Lambda,按需调用
消息队列 如果是异步任务,可能需要 Redis / RabbitMQ
监控与日志 LangSmith、LangFuse 等 Agent 可观测性工具

三、Agent 的必要部件(架构图)

把它想象成一个人的完整结构:

[ChatGPT Image 2026年7月30日 15_23_52.png](https://img.jintao.co.uk/1785396276216-ChatGPT%20Image%202026%E5%B9%B47%E6%9C%8830%E6%97%A5%2015_23_52.png)

每个部件的职责:

  1. 🧠 LLM(大脑):理解意图、推理决策、生成回复
  2. 📋 System Prompt(灵魂):定义 Agent 是谁、能做什么、不能做什么、怎么做
  3. 🔄 Orchestrator(中枢神经):运行 Agent Loop,协调所有部件
  4. 🔧 Tools(能力):对外部世界施加影响的接口
  5. 🧠 Memory(记忆):上下文管理 + 长期知识存储
  6. 📋 Planning(规划):任务分解和执行策略
  7. 🌐 Environment(环境):代码运行的沙箱、数据库连接、文件系统等

四、让 Agent 来开发 Agent 的提示词

如果你想让 Claude/GPT 帮你搭建一个 Agent,需要给它一个结构化的提示词。我给你一个模板:

# 角色
你是一个专业的 AI Agent 架构师和开发者。你的任务是帮我搭建一个完整的 Agent 系统。

# 项目需求
## Agent 的目标
[描述这个 Agent 要完成什么任务,比如:]
- 一个能自动分析代码仓库并给出重构建议的 Agent
- 一个能管理个人日程、任务和笔记的助手 Agent
- 一个能自动调研某个主题并生成报告的 Agent

## Agent 需要具备的能力
[列出具体能力,比如:]
- 能搜索互联网获取最新信息
- 能读写本地文件
- 能调用第三方 API
- 能执行代码
- 能管理数据库

## 技术偏好
- 编程语言:Python / TypeScript / 其他
- 偏好的框架:LangChain / 纯手搓 / OpenAI SDK / 其他
- LLM 选择:Claude / GPT-4o / 其他
- 部署环境:本地 / Docker / Serverless

# 请按以下结构输出

## 1. 架构设计
- 画出 Agent 的整体架构(用文字/ASCII 描述)
- 说明各模块的职责和交互方式
- 选择 Agent Loop 的策略(ReAct / Plan-Execute / 其他)并说明理由

## 2. System Prompt 设计
- Agent 的角色定义
- 能力边界和约束
- 工具使用规则
- 错误处理策略
- 输出格式规范

## 3. 工具定义
- 每个工具的名称、描述、参数、返回值
- 工具的实现代码

## 4. 记忆系统
- 短期记忆:如何管理对话上下文
- 长期记忆:用什么存储、怎么检索
- 记忆的写入和遗忘策略

## 5. Agent Loop 核心代码
- 完整的编排逻辑
- 工具调用的处理
- 错误重试和超时机制
- 流式输出支持

## 6. 运行环境与依赖
- requirements.txt / package.json
- 环境变量配置
- Dockerfile(如需要)

## 7. 测试用例
- 至少 3 个典型场景的测试
- 边界情况处理

# 约束
- 代码要可运行,不要只给伪代码
- 每个模块要有清晰的注释
- 要考虑错误处理和边界情况
- 如果有多个方案,说明优劣和你的推荐

五、给你一个极简 Agent 的 Python 伪代码

帮你建立最直觉的理解:

import anthropic

client = anthropic.Anthropic()

# 定义工具
tools = [
    {
        "name": "search_web",
        "description": "搜索互联网获取信息",
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {"type": "string", "description": "搜索关键词"}
            },
            "required": ["query"]
        }
    }
]

# Agent Loop
def agent_loop(user_message, conversation_history):
    conversation_history.append({"role": "user", "content": user_message})
    
    while True:
        # 1. 调用 LLM
        response = client.messages.create(
            model="claude-sonnet-4-20250514",
            system="你是一个有帮助的助手,可以使用工具来完成任务。",
            tools=tools,
            messages=conversation_history
        )
        
        # 2. 检查是否需要调用工具
        if response.stop_reason == "tool_use":
            # 3. 执行工具
            for block in response.content:
                if block.type == "tool_use":
                    result = execute_tool(block.name, block.input)
                    # 4. 把工具结果返回给 LLM
                    conversation_history.append({"role": "assistant", "content": response.content})
                    conversation_history.append({
                        "role": "user",
                        "content": [{"type": "tool_result", "tool_use_id": block.id, "content": result}]
                    })
            # 继续循环,让 LLM 处理工具结果
            continue
        
        # 5. 如果不需要工具,返回最终回复
        elif response.stop_reason == "end_turn":
            final_reply = extract_text(response.content)
            conversation_history.append({"role": "assistant", "content": response.content})
            return final_reply

就这么简单——一个 while 循环 + LLM + 工具调用,就是一个 Agent。所有的复杂框架,本质上都是在这个基础上做增强。


六、总结:搭建路线图

Phase 1:基础          Phase 2:增强          Phase 3:生产化
──────────────        ──────────────        ──────────────
✅ 理解 LLM API       ✅ 记忆系统            ✅ 监控与日志
✅ System Prompt      ✅ 多工具编排          ✅ 容器化部署
✅ 单工具调用          ✅ 复杂规划策略        ✅ 安全与权限
✅ 基本 Agent Loop     ✅ 多 Agent 协作       ✅ 成本优化
                       ✅ RAG 集成            ✅ 用户界面

Thom,这基本上就是搭建 Agent 的全貌了。从你的背景来看(技术专家 + 关注 AI 大模型 + VibeCoding),你其实已经具备了大部分基础,上手会很快的。

如果要我推荐的话,以你的情况,我建议从 Claude + MCP 协议 + 纯手搓 Python 开始,先跑通最简 Agent Loop,理解核心机制后,再考虑用 LangGraph 或其他框架做复杂编排。这样你对底层原理会有最扎实的理解。

你有具体想做的 Agent 场景吗?我可以帮你进一步细化架构~ 🌙


了解 ~/jintaoblog/朝夕见闻志⚡️ 的更多信息

订阅后即可通过电子邮件收到最新文章。