llama-agentic-system
Meta 官方发布的 Llama Stack Agent 构建指南,包含 10+ 完整示例(聊天/R
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Meta 官方发布的 Llama Stack Agent 构建指南,包含 10+ 完整示例(聊天/R
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你在开发一款 AI 助手,它不仅能回答问题,还能主动调用搜索工具查最新资讯、执行 Python 代码做数据分析、甚至根据你的描述生成设计方案——而且这一切都是连贯的多轮推理过程,不是简单的单次问答。这正是 Llama Agentic System 要解决的问题。
这是 Meta 官方发布的示例项目,展示了如何在 Llama Stack 框架上构建 Agentic(智能代理)应用。Llama Stack 是 Meta 围绕 Llama 模型打造的完整工具链,定义了推理、安全检查、工具执行的标准 API,而 llama-agentic-system 则是这些 API 的实际使用范例。
图1:Llama Agentic System 项目 Logo
2024 年 Meta 发布 Llama 3.1 时,首次将 Agentic(智能代理)能力作为核心卖点之一。在此之前,Llama 模型虽然开源可用,但在实际应用层面,开发者需要自己解决很多工程问题:如何让模型调用外部工具?如何在多轮对话中保持上下文?安全检查怎么做?这些都被称为「最后一公里」问题。
Llama Stack 的出现,就是为了填平这个 Gap。它定义了标准化的组件接口——推理端点(Inference)、安全护盾(Shield)、工具执行器(Tool Executor)、记忆存储(Memory)——并提供多种实现方案。开发者不需要从零搭建,只需选择合适的实现「组装」出自己的应用,就像搭积木一样。
llama-agentic-system 仓库就是这个「搭积木」过程的完整演示。
图2:Agent 与用户交互示例,展示工具调用与 Shield 安全检查过程
根据 docs/sequence-diagram.md 中的时序图,Llama Agentic System 的执行引擎遵循一个清晰的四步循环:
第一步:ShieldCallStep(安全护盾检查) 用户输入先经过 Shield(护盾)处理。Llama Stack 支持多种护盾,包括 Llama Guard(内容安全)和 Prompt Guard(提示注入防护)。输入经过过滤和转换后才进入推理环节,确保模型不会处理恶意 Prompt。
第二步:InferenceStep(推理步骤) 经过安全检查的输入发送给 LLM(Llama 系列模型)。模型分析用户意图,决定是否需要调用工具、返回文本,还是两者兼有。如果需要调用工具,模型会输出结构化的工具调用指令。
第三步:ToolCallStep(工具执行) 如果模型要求调用工具,系统将执行相应工具(如 Web 搜索、代码解释器、计算器等),获取工具返回结果。
第四步:循环回到 InferenceStep 工具执行结果被反馈给 LLM,进行下一轮推理。这个循环会持续进行,直到模型认为任务完成或达到最大步数限制。
这个设计的关键优势在于:每个步骤都可以插拔替换。你可以换用不同的 LLM(Fireworks AI、Ollama、本地模型)、不同的安全护盾、甚至不同的工具集,而无需改动核心代码。
仓库提供了多个层次的示例,满足从入门到进阶的需求:
| 示例 | 说明 | 关键代码文件 |
|---|---|---|
simple_chat.py | 基础聊天机器人,演示 Agent 创建和基本交互 | 入门必读 |
chat_multimodal.py | 多模态对话,支持图片输入 | attachments 参数使用 |
chat_with_documents.py | 文档问答,演示附件(attachments)机制 | 文档检索基础 |
rag_agent.py | RAG(检索增强生成)代理,接入向量数据库 | Vector Memory 集成 |
react_agent.py | ReAct(推理+行动)代理,多步推理执行 | 复杂任务编排 |
agent_with_tools.py | 自定义工具集成:计算器、股票行情、搜索 | 工具扩展方式 |
DocQA/ | 文档问答完整应用示例 | 端到端参考实现 |
interior_design_assistant/ | 室内设计助手(高级示例) | 多工具协作 |
ios_calendar_assistant/ | iOS 日历助手(高级示例) | 移动端集成参考 |
agent_store/ | Agent 商店,支持 Agent 的发布与发现 | 生态扩展 |
此外,examples/client_tools/ 目录提供了三个开箱即用的客户端工具实现:
calculator.py:基础计算器工具ticker_data.py:股票行情查询(依赖 yfinance)web_search.py:Web 搜索(调用 Tavily Search API)这些工具可以直接集成到你的 Agent 中,也可以作为开发自定义工具的模板。
重要提醒:这是一个客户端示例库,不是一个可以直接运行的服务端程序。运行这些示例需要先启动一个 Llama Stack 服务器实例。
Llama Stack 服务器的部署方式有多种:
llama stack build + llama stack run 命令,可选择 Fireworks AI(云端推理)、Ollama(本地推理)等不同后端项目依赖包括:llama-stack-client(与服务器通信)、gradio(Web UI)、fire(CLI 框架)、yfinance(股票数据)。Python 版本要求 3.10+。
Gradio UI 是项目内置的 Web 界面,开发者可以通过浏览器直接与 Agent 交互,无需编写额外的 Web 代码。
值得肯定的亮点:
需要正视的局限性:
llama-agentic-system 的发布,标志着 Meta 在推动开源 AI 应用生态方面迈出了实质性的一步。在 Llama Stack 之前,开发者构建 Agent 应用通常依赖 LangChain、AutoGen 等第三方框架,而这些框架与特定模型绑定较深。Llama Stack 的出现提供了一种模型无关的标准接口层,有望成为 Agent 应用的「USB 接口」——无论你用哪家模型,只要实现了这个接口,就能互相兼容。
从增长数据看,该项目自发布以来持续更新,GitHub Stars 已超过 4300,证明了开发者对 Llama Stack 生态的高度关注。随着 Llama 4 系列的发布和 Llama Stack 的持续迭代,预计这类 Agent 构建工具的重要性会进一步上升。