最近看到Exa这家搜索API公司发布了个挺有意思的产品——一个深度研究智能体。这个智能体能自己在网上找资料,直到找到用户需要的结构化信息为止。
体验地址:https://exa.ai/?ref=blog.langchain.com
今天就来聊聊Exa的工程团队是怎么用LangGraph搭建这套生产级多智能体系统的。现在这套系统每天要处理几百个研究查询,根据问题复杂程度,15秒到3分钟就能给出结构化的研究结果。
主要内容来自:https://blog.langchain.com/exa/,下面是根据理解整理之后的内容
Exa一开始并不是做智能体的,这是个逐步演进的过程:
这个演变其实反映了整个行业的趋势。随着时间推移,LLM应用都在变得越来越"智能体化",能处理更长时间、更复杂的任务:
有趣的是,这个演进过程也改变了团队对工具的选择。Exa团队和LangChain一直有合作(通过开源集成),但之前的问答端点并没用什么特定框架。
当他们开始构建更复杂的深度研究架构时,重新评估了现有选项,最终选择了LangGraph。这其实验证了一个趋势——系统越复杂,LangGraph就越成为首选框架。
Exa的研究智能体完全基于LangGraph构建,采用了一个精巧的多智能体模式:
这套架构最精彩的地方在于上下文管理:
这样既保证了协调性,又避免了信息过载。
和死板的工作流不同,Exa的系统能根据查询复杂程度动态调整启动的研究任务数量。
每个任务单元会收到:
这种灵活性让系统既能处理简单的单任务查询,也能应对需要大量并行研究的复杂多面向请求。
Exa的很多设计选择借鉴了Anthropic深度研究系统的经验。Exa团队认真研读了Anthropic的那篇博文,觉得写得很棒,从中获得了不少启发。
在借鉴基础上,Exa又发展出了一些关键洞见:
这是Exa系统最有意思的上下文管理策略之一:
和很多生成非结构化报告的研究系统不同,Exa的智能体在每个层级都维护结构化的JSON输出,输出格式还能运行时指定。
为什么这么设计?因为Exa把这个系统专门设计为通过API消费的,不是面向消费者的研究工具。作为API使用时,可靠的输出格式就变得非常重要了。
这种结构化输出是通过函数调用(Function Calling)生成的。
对Exa来说,LangSmith最关键的功能是可观测性,特别是Token使用方面的监控。
“LangSmith提供的可观测性——能够理解Token的使用情况——对我们来说真的非常重要。而且它的设置也非常简单。” —— Mark Pekala,Exa软件工程师
这些数据对Exa确定生产环境定价模型以及确保系统在高负载下的成本效益和性能都至关重要。
Exa的深度研究智能体案例展示了LangGraph在构建生产级复杂多智能体系统方面的能力。通过LangGraph的协调能力和LangSmith的可观测性特性,Exa构建了一个高效可靠的系统,能处理真实客户查询并交付实际业务价值。
如果在构建类似系统,这里有几个关键经验:
Token跟踪和系统可见性对生产部署至关重要,这不是可有可无的功能。
精心设计的智能体流程能支撑多个产品功能,一次投入多次收益。
API调用者需要可靠、可解析的结果,不要让他们去猜输出格式。
灵活创建任务比僵化的工作流扩展性更好,能适应各种复杂度的需求。
随着智能体生态系统的持续发展,Exa的实现方案提供了一个很好的参考案例,展示了如何构建生产就绪的智能体系统并带来切实的商业价值。
这个案例告诉我们,智能体系统已经从概念验证阶段走向了实际商业应用,关键是要在技术可行性和商业价值之间找到平衡点。