AI Agent 开发入门:构建能自主完成任务的智能助手

AI Agent(智能代理)是能感知环境、制定计划、调用工具把任务跑完的 AI 系统。它和"问答机器人"的分界线在于:Chatbot 等用户提问、给出回答;Agent 拿到一个目标后,自己拆步骤、自己调 API、自己处理中间结果,遇到失败还会换条路再试。2026 年这个边界还在快速模糊,但开发思路已经基本定型。对刚接触的人来说,先用最小的例子把"模型 + 工具 + 循环"跑通,比研究各种框架重要得多。

什么是 AI Agent

与传统 AI 对话不同,Agent 的核心能力可以归纳为四点:

  1. 分解任务 — 把"帮我订下周去上海的机票"拆成查航班、比价格、下单、发确认邮件
  2. 使用工具 — 调用 API、查询数据库、操作网页、发送邮件
  3. 记忆上下文 — 记住前一步的结果,喂给下一步
  4. 自我纠错 — 某步失败时,换参数或换工具重试

Agent vs 传统 Chatbot

特性 传统 Chatbot AI Agent
交互方式 一问一答 自主执行任务
工具使用 不能 可以调用 API/工具
任务规划 不能 能分解和规划
记忆 有限(对话窗口) 长期记忆
自主性 被动响应 主动执行

判断一个需求该用哪个,最简单的标准是:用户需要的是"信息"还是"结果"。查天气是信息,Chatbot 就够;把天气结果整理成报告并发邮件,那是结果,才需要 Agent。

用 Function Calling 构建 Agent

OpenAI 的 Function Calling(工具调用)是目前上手门槛最低的 Agent 构建方式,不需要框架,纯 API 就能跑。下面的例子定义了两个工具——查天气和发邮件,然后让 Agent 先查再发,完整展示一次工具调用闭环:

import json
from openai import OpenAI

client = OpenAI()

# 定义 Agent 可使用的工具
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取指定城市的天气信息",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {"type": "string", "description": "城市名称"}
                },
                "required": ["city"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "send_email",
            "description": "发送邮件",
            "parameters": {
                "type": "object",
                "properties": {
                    "to": {"type": "string"},
                    "subject": {"type": "string"},
                    "body": {"type": "string"}
                },
                "required": ["to", "subject", "body"]
            }
        }
    }
]

# 实际函数实现
def get_weather(city):
    return f"{city}当前温度 25°C,晴"

def send_email(to, subject, body):
    print(f"发送邮件到 {to}: {subject}")
    return "邮件已发送"

# Agent 循环
def run_agent(user_message):
    messages = [
        {"role": "system", "content": "你是一个智能助手,可以使用工具帮助用户完成任务。"},
        {"role": "user", "content": user_message}
    ]

    while True:
        response = client.chat.completions.create(
            model="gpt-4o",
            messages=messages,
            tools=tools
        )

        choice = response.choices[0]

        # 如果 AI 没有调用工具,直接返回
        if not choice.finish_reason == "tool_calls":
            return choice.message.content

        # 执行工具调用
        messages.append(choice.message)
        for tool_call in choice.message.tool_calls:
            func_name = tool_call.function.name
            args = json.loads(tool_call.function.arguments)

            if func_name == "get_weather":
                result = get_weather(**args)
            elif func_name == "send_email":
                result = send_email(**args)

            messages.append({
                "role": "tool",
                "tool_call_id": tool_call.id,
                "content": result
            })


# 使用 Agent
result = run_agent("帮我查一下北京的天气,然后把结果用邮件发送到 [email protected]")
print(result)

整个循环其实就三步:模型决定"要不要调用工具、调哪个"→ 你执行真实函数 → 把结果回填给模型 → 循环直到模型给出最终答案。finish_reason == "tool_calls" 就是"还要继续干活"的信号。注意把超时、异常和工具返回的错误都 catch 住,否则一个坏工具能让整个循环卡死。

参考:OpenAI Function Calling 指南 https://platform.openai.com/docs/guides/function-calling

Agent 框架对比

框架 语言 特点 适合场景
LangChain Python/JS 最流行,生态丰富 复杂 Agent
CrewAI Python 多 Agent 协作 团队任务
AutoGen Python Microsoft 出品 多 Agent 对话
OpenAI Assistants API 托管服务 快速原型

参考:LangChain 文档 https://python.langchain.com/

什么时候别用 Agent

Agent 不是万能的。一个固定流程(比如每天零点拉报表)用 cron + 脚本就够,硬套 Agent 只会增加不稳定性和成本;每步都要人确认的合规场景(财务、法务)也不适合让模型自主决策。判断标准很简单:流程越固定、出错代价越高,越该用确定性代码而不是 Agent。反过来说,只要流程能明确拆成步骤、且每步有可验证的输入输出,就适合 Agent——判断标准是"能不能写清楚验收条件"。

一个落地场景

电商运营团队建了一个"日报 Agent":每天早上自动拉取订单数据,用数据分析脚本算转化率,对比昨日和上周同期,异常时调用 IM 工具往群里发提醒。整条链路没有人在中间,运营只需要看结果——这就是"信息"和"结果"的差别。为了不出乱子,他们在 Agent 外层加了三道闸:只读数据权限、写操作必须二次确认、所有动作落日志。Agent 的自由度要给,但边界要画清楚,尤其是涉及钱和用户数据的操作。

常见问题

  • Agent 一直循环调用工具停不下来:给 while 循环加最大步数上限,比如 10 步强制终止并返回当前结果。
  • 工具参数经常传错:Function Calling 靠的是描述写得好,参数说明写清楚,模型误调用的概率会明显下降;必要时再用 JSON Schema 做校验。
  • 和 RAG 怎么配合:Agent 可以把"检索知识库"也当成一个工具,先查资料再动手,能显著减少瞎猜。

16IDC 观察

AI Agent 是 AI 应用 的下一个演进方向,2026 年已经在客服、数据分析、自动化运营里落地。对 网站开发 者来说,Function Calling 是最容易上手的入口——不需要额外框架,直接通过 API 实现。先把一个工具接好、把错误处理写扎实,比一口气上框架更重要。同时留意各家的 Agent 协议和托管编排服务,下半年这个领域的产品化会更快。