加菲猫欢乐跑
65.99M · 2026-03-26
在过去的一年里,大多数开发者对 AI 的使用还停留在“写好 Prompt,调用 API,获取 Response”的阶段。但随着智能体(Agent)概念的落地,我们发现 Python 在 AI 时代的地位再次发生了质变。
智能体不再仅仅是模型的封装,它是一套基于代码的工程系统。作为一名 Python 开发者,理解智能体不应停留在其“聪明”的表象,而应深入其底层的循环(Loop)、状态(State)和工具链(Toolchain)。
在 Python 的视角下,一个 Agent 实际上是一个无限或有限的 While 循环。
最基础的 Agent 逻辑可以用以下伪代码表示:
def simple_agent(user_goal):
context = []
while not task_completed:
# 1. 思考:LLM 分析当前 context,决定下一步
thought = llm.generate_thought(user_goal, context)
# 2. 行动:如果需要工具,执行 Python 函数
if thought.need_tool:
result = execute_tool(thought.tool_name, thought.args)
context.append(result)
# 3. 观察与判断
if is_goal_reached(context):
return final_answer
传统的程序是硬编码的 if-else。而 Agent 的工程本质是将决策权交给了 LLM。我们的任务不再是写死逻辑,而是构建一个足够鲁棒的运行环境(Runtime) ,让 LLM 在其中安全、高效地运行 Python 函数。
Agent 若想完成复杂任务,必须解决“遗忘”问题。在 Python 开发中,这涉及到上下文窗口管理与持久化检索。
由于模型 Token 限制,我们不能把所有历史对话塞进去。
在 Python 中,我们通常使用 LangChain 或 LlamaIndex 配合 ChromaDB 或 FAISS。
# 典型的长期记忆检索逻辑
from langchain_community.vectorstores import Chroma
def get_long_term_memory(query):
db = Chroma(persist_directory="./agent_memory", embedding_function=ef)
# 相似度搜索
docs = db.similarity_search(query, k=3)
return [doc.page_content for doc in docs]
理解: 记忆系统本质上是给 Agent 挂载了一个“外部硬盘”。作为开发者,难点不在于数据库的存储,而在于 Embedding 的质量 和 Top-K 检索的精准度。
这是 Agent 获得“双手”的过程。OpenAI 引入的 function_calling 改变了游戏规则。
我们通过 JSON Schema 来描述函数。Agent 并不运行模型生成的“文字”,而是解析模型生成的“调用参数”。
# 定义工具
tools = [
{
"type": "function",
"function": {
"name": "get_stock_price",
"description": "获取实时股票价格",
"parameters": {
"type": "object",
"properties": {
"symbol": {"type": "string", "description": "股票代码"}
}
}
}
}
]
在构建 Agent 时,函数的 Docstring 成了最重要的“代码” 。如果你的函数注释写得不清晰,Agent 就会调错参数。这迫使我们回归到最纯粹的编程习惯:清晰的命名、规范的类型注解以及详尽的文档说明。
Agent 需要在执行前进行逻辑拆解。在 Python 中,这通常表现为多级 Prompt。
ReAct 是目前最稳健的模式:
技术难点: 循环死结。当模型反复尝试错误的工具时,我们需要在 Python 逻辑中加入“熔断机制(Max Iterations)”,防止费用超支。
单 Agent 处理长链路任务时极易“迷失”。解决方法是:分而治之。
在多 Agent 系统中,Python 代码扮演的是“导演”角色。每个 Agent 都有自己的指令(System Message)。
在开发过数个垂直领域的 Agent 后,我有几点深刻的理解:
Pydantic 进行严格的格式校验。如果解析失败,应自动将错误反馈给模型让其修正,而不是直接报错退出。LangGraph 这样的有向无环图(DAG)或状态机来编排任务,是目前最高级的做法。“智能体来了”并不意味着程序员会失业,而是意味着编程范式的演进。
过去我们编写 Deterministic(确定性) 逻辑:Input -> Function -> Output。 未来我们将编写 Probabilistic(概率性) 逻辑:Goal -> Agent Environment -> Verification -> Output。
核心竞争力: 未来的 Python 开发者不仅要懂 Web 框架(Django/FastAPI),更要懂如何设计 Agent 友好的工具接口、如何优化 向量检索的召回率 以及如何调试 模型在复杂任务中的逻辑缺陷。
智能体是 LLM 的终极形态,而 Python 是承载这一形态的最佳土壤。
在这场变革中,我们不应只做一个观望者,而应亲自动手去写一个 Loop,去挂载一个 Tool,去观察模型在处理错误时的窘迫与惊喜。只有在代码的不断调试中,你才能真正感知到:智能体,真的来了。