AI Agent是2025年最重要的软件概念之一——不只是回答问题,而是采取一系列行动、使用工具并在多个步骤中追求目标的语言模型。以下是关于它们实际上是什么以及如何构建一个的清晰解释。
什么让它成为Agent
回答问题的聊天机器人不是Agent。Agent是一个语言模型,它:(1)接收目标或任务,(2)决定采取什么行动,(3)执行行动(使用工具——网页搜索、代码执行、数据库查询、API调用),(4)观察结果,(5)根据结果决定下一步行动,(6)重复直到目标实现或确定无法完成任务。关键是工具使用和多步决策循环。
Python中的最小化Agent
使用带工具使用的Anthropic SDK:
import anthropic
client = anthropic.Anthropic()
tools = [{
"name": "search_web",
"description": "Search the web for current information",
"input_schema": {
"type": "object",
"properties": {"query": {"type": "string"}},
"required": ["query"]
}
}]
def run_agent(task):
messages = [{"role": "user", "content": task}]
while True:
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
tools=tools,
messages=messages
)
if response.stop_reason == "end_turn":
return response.content[0].text
# Handle tool use
for block in response.content:
if block.type == "tool_use":
result = execute_tool(block.name, block.input)
messages.append({"role": "assistant", "content": response.content})
messages.append({"role": "user", "content": [{"type": "tool_result", "tool_use_id": block.id, "content": result}]})
break
框架 vs. 原始API
LangChain、LangGraph、CrewAI和AutoGen是为你处理循环、记忆和多Agent编排的Agent框架。它们对复杂的多Agent系统很有用,但增加了大量抽象和复杂性。对于大多数用例,使用原始Anthropic/OpenAI API构建给你更多控制和更容易的调试。在以下情况使用框架:需要跨对话的持久记忆、多Agent工作流,或复杂状态管理。
最难的问题:可靠性
Agent的失败次数比单轮LLM调用更多。它们采取错误行动、陷入循环、误解工具结果,以及虚假声称成功完成。生产级Agent需要:明确的步骤限制、强大的错误处理、不可逆行动的人工审核检查点,以及每次决策和工具调用的详细日志。从简单开始——一个设计良好的两步Agent比一个不可预测失败的复杂十步Agent更有用。




