程序员如何自己开发一个Agent?保姆级实操指南(从极简版到工业级)

更新日期: 2026-03-05 阅读: 30 标签: Agent

作为程序员,开发Agent不用从零开始造轮子。核心就三件事:搭骨架、填大脑、连手脚。骨架是任务调度逻辑,大脑是大模型,手脚是调用外部工具的能力。

下面分三个版本来讲,从新手能跑的极简版,到能落地的进阶版,再到工业级的大佬版。全是干货,照着做就行。


01 核心原理:Agent的三大模块

不管什么Agent,都离不开这三样,缺一个就玩不转:

规划模块:把用户模糊的需求拆成具体步骤。比如"写一篇AI绘画教程"拆成"选题→查资料→写大纲→填内容→排版"。大模型的思维链(CoT)就能搞定这个。

执行模块:调用外部工具干活。比如用Python爬资料、调Stable Diffusion api生成配图、用Markdown渲染排版。核心是工具函数的封装和参数传递。

反馈模块:检查执行结果对不对,不行就返工。比如发现教程里的参数写错了,让模型重新查资料修正。可以用大模型自检,也能加人工规则。


02 版本1:新手友好的极简版Agent(半天就能跑)

目标是做一个能"自动写Python小脚本"的Agent,不用复杂框架,纯原生代码加开源大模型。

技术:Python + Ollama(本地跑大模型,不用API key) + 简单函数封装

步骤1:环境准备

装Ollama:官网下载,一行命令跑起Llama 3。

装依赖:

pip install requests ollama

步骤2:写核心代码(不到50行)

import ollama

# 1. 规划函数:让大模型拆任务
def plan_task(user_need):
    prompt = f"""你是一个Python助手,帮我把需求拆成具体的代码编写步骤。
    需求:{user_need}
    要求:步骤要清晰,每步只做一件事,比如"1. 导入需要的库;2. 定义函数XXX"
    """
    response = ollama.chat(model='llama3', messages=[{'role': 'user', 'content': prompt}])
    return response['message']['content']

# 2. 执行函数:让大模型生成代码,本地运行
def execute_code(code):
    try:
        exec(code, globals())
        return "代码执行成功!"
    except Exception as e:
        return f"代码报错:{str(e)},请修正!"

# 3. 主循环:规划→执行→反馈
def simple_agent(user_need):
    print("=== 1. 任务规划 ===")
    steps = plan_task(user_need)
    print(steps)
    
    print("\n=== 2. 生成并执行代码 ===")
    code_prompt = f"""根据下面的步骤,生成完整的Python代码:
    步骤:{steps}
    要求:代码简洁,加注释,能直接运行
    """
    code = ollama.chat(model='llama3', messages=[{'role': 'user', 'content': code_prompt}])['message']['content']
    print("生成的代码:\n", code)
    
    result = execute_code(code.replace("```python", "").replace("```", ""))
    print("执行结果:", result)

# 测试一下!
if __name__ == "__main__":
    simple_agent("写一个函数,计算1到100的和,然后打印结果")

步骤3:运行测试

直接跑脚本,你会看到Agent先输出步骤,再生成代码,最后执行出结果。一个极简Agent就成了。

缺点:只能跑简单代码,没有复杂工具调用,也不会自动修正错误。


03 版本2:进阶版·能调用工具的Agent(落地级)

目标是做一个能"爬取网页+数据分析+生成报告"的多工具Agent。

核心升级:引入工具注册表、标准化函数调用、结果反馈机制。

技术栈:Python + LangChain + 大模型 + 浏览器/Excel工具

LangChain是什么? LangChain是一个开发大模型应用的框架,提供了一套模块化工具和API。它简化了从开发到生产的整个过程,支持与外部数据源、工具和服务的集成。很多大公司如LinkedIn、Uber都在用LangChain构建生产级AI应用。

第一步:封装工具函数

把常用功能写成标准化函数:

from langchain.tools import tool

@tool
def crawl_webpage(url: str) -> str:
    """爬取指定URL的网页文本内容,用于获取外部数据"""
    import requests
    from bs4 import BeautifulSoup
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    return soup.get_text()[:1000]  # 只取前1000字

@tool
def analyze_data(data: list) -> str:
    """分析数字列表,返回平均值、最大值、最小值"""
    avg = sum(data)/len(data)
    max_val = max(data)
    min_val = min(data)
    return f"平均值:{avg},最大值:{max_val},最小值:{min_val}"

第二步:用LangChain搭Agent骨架

LangChain的Agent框架通过引入工具调用链和动态决策机制,让AI系统具备自主规划与执行多步骤任务的能力。核心价值在于任务分解、工具集成和环境交互。

from langchain.agents import create_openai_tools_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain import hub

# 初始化大模型
llm = ChatOpenAI(model="gpt-3.5-turbo")

# 加载工具
tools = [crawl_webpage, analyze_data]

# 用LangChain Hub的现成Prompt模板
prompt = hub.pull("hwchase17/openai-tools-agent")

# 创建Agent和执行器
agent = create_openai_tools_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# 测试:爬取某网站数据并分析
result = agent_executor.invoke({"input": "爬取https://example.com的房价数据,提取数字列表并分析"})
print(result["output"])

第三步:加反馈修正机制

如果执行失败,让Agent自动重试:

agent_executor = AgentExecutor(
    agent=agent, 
    tools=tools, 
    verbose=True, 
    handle_parsing_errors="重新尝试"
)

关键亮点

  • 工具调用标准化:用@tool装饰器,大模型能自动识别函数名和参数

  • 支持多工具组合:爬数据→分析→生成报告,一键完成

  • 可扩展性强:想加新工具,直接封装函数就行


04 版本3:大佬版·自主进化的Agent(工业级)

如果想做更牛的Agent,需要加这些高级特性:

长期记忆模块

用向量数据库存储Agent的历史任务和经验,下次遇到类似需求不用重新规划。LangChain支持多种向量存储方案,包括内存型、Redis、Snowflake等。

LangChain的InMemoryVectorStore可以快速实现内存向量存储:

from langchain_aws.vectorstores import InMemoryVectorStore

rds = InMemoryVectorStore.from_documents(
    documents=docs,
    embedding=embeddings,
    redis_url="redis://localhost:6379",
)

多Agent协作

让多个小Agent分工,一个负责爬数据,一个负责分析,一个负责写报告,用消息队列通信。LangChain支持自定义规划器,可以实现复杂决策逻辑。

沙箱环境

执行代码或调用外部工具时,用Docker隔离,避免风险。比如防止Agent执行恶意代码。

性能优化

用大模型的函数调用API代替Prompt解析,准确率更高。加缓存机制,重复任务不用重新跑。

部署成API服务

LangServe是专门用来部署LangChain应用的工具,可以快速把Agent变成REST API。它自带交互式API文档和测试界面,非常方便。


05 避坑指南:老程序员踩过的3个坑

别自己写大模型:除非你有上亿级算力,否则直接用开源模型或API,把精力放在Agent的逻辑上。现在Ollama这种工具已经让本地跑大模型变得很简单。

工具调用别太复杂:新手先从2-3个工具开始,工具越多,大模型越容易搞混参数。工具描述要精确,比如"获取指定城市的实时天气,需提供城市名"就比"查询天气"好得多。

防住大模型幻觉:执行关键任务时,一定要加人工校验或规则校验。可以设置工具调用白名单,敏感操作加二次确认。


06 快速上手路线图(7天搞定)

Day1:理解Agent核心原理,跑通版本1的极简代码

Day2-3:学LangChain的工具调用,搭建版本2的多工具Agent。LangChain提供了完整的Agent开发工具链,从工具配置到决策流程都很清晰。

Day4-5:加向量数据库,实现长期记忆。可以用内存版先跑通,后面再换正式数据库。

Day6-7:测试优化,解决报错和幻觉问题,部署成API服务。用LangServe部署特别快,几行代码就能把Agent变成可调用的API。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/13395

相关推荐

Cursor 编辑代码功能的核心原理:Agent 如何高效工作?

像 Cursor、Copilot 这类 AI 编程助手正快速成为程序员的好帮手。很多人可能觉得它们内部非常复杂,其实核心思路很直接。为了实现高效运行,开发团队的重点往往在:保证流程稳定可控和优化性能以节省宝贵的上下文空间。

AgentKit与n8n对比:现代工作流自动化工具深度解析

工作流自动化是现代数字化基础设施的核心。无论是优化内部流程、集成第三方平台,还是减少人工操作,对灵活可靠的自动化需求已经成为基本要求,而不是奢侈品。

智能体Agent的经典构建方式:ReAct、Plan-and-Solve和Reflection

三种智能体构建方式各有特点,适用于不同场景:ReAct:适合需要与外部交互的实时任务,Plan-and-Solve:适合结构化的复杂任务,Reflection:适合对质量要求极高的关键任务

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!