Hogwarts测试开发
06-25·北京测吧员工
别光喊AI Agent,自己动手造一个五
关键洞察这个例子看起来简单,但它的本质是把“怎么做”的决策权交给了模型。传统编程:你写if 需要搜索 then 调用搜索API。 Agent编程:你告诉模型“你有搜索工具”,模型自己决定什么时候用。这就是从“指令式”到“目标导向”的转变。五、工程落地:别把Agent当玩具写一个demoAgent很简单。让一个Agent在生产环境稳定运行,是另一回事。问题1:循环可能永远跑不完Agent在循环里做决策。如果模型一直认为“还需要再调一次工具”,循环就不会停。解决方案:设置max_iterations。到次数强制终止。agent = create_agent(    model=llm,    tools=[web_search],    max_iterations=5  # 最多跑5轮)问题2:工具调用会失败API超时、返回格式异常、权限不足——工具调用有无数种失败方式。解决方案:在工具层面做异常处理和重试。不要把异常抛给Agent,Agent处理不了。问题3:上下文爆炸每次循环都要把“历史对话+工具调用结果”塞回上下文。跑几轮之后token数可能爆炸。LangGraph通过“状态管理”来解决这个问题——不是每次都把全部历史塞进去,而是维护一个状态树。问题4:不知道Agent在干什么这是最致命的问题。Agent是非确定性的。你不知道它下一次调用会选哪个工具、会走哪条路径。解决方案:可观测性。LangSmith可以追踪每一个决策、每一次工具调用。没有可观测性的Agent,上线就是赌博。选型建议:LangChain还是LangGraph?LangChain 1.0和LangGraph 1.0定位不同:LangChain:开箱即用。适合快速构建、标准化场景。LangGraph:底层运行时。适合需要精细控制、复杂状态管理、长时运行的生产级Agent。实际项目中两者经常搭配使用——LangChain的create_agent底层就是跑在LangGraph上的。
发布于 北京
分享
评论
未登录
友善发言
image-upload
评论
加载中