在本教程中,我们将探讨如何使用两个关键工具构建此类 AI 智能体工作流:LangGraph(一个用于构建基于图形的推理路径的框架)和IBM Granite 模型(一个补充这种结构的强大模型)。工作流中的每个步骤称为“节点”,这些节点通常由大型语言模型驱动的智能体处理。这些智能体会根据模型输出或条件逻辑在状态之间转换,形成一个以决策为导向的动态图形。
为了实现这些工作流,我们将仔细研究两个基本组件:LangGraph 和 Granite。
LangGraph 是一个强大的框架,旨在通过将 AI 模型表示为计算图中的状态智能体来简化 AI 驱动工作流的开发。它使开发人员能够构建可扩展、模块化的系统,其中每个行为或决策点都被定义为图形中的一个节点。
借助 LangGraph,您可以:
当 LangGraph 之类的多智能体系统和框架应用于生成式 (gen AI)任务时,通常将任务执行结构化为顺序或条件工作流。无论您是使用 LangChain 、IBM Granite 模型、OpenAI 的 GPT 模型还是其他人工智能工具,LangGraph 都能帮助您优化工作流,实现更好的可扩展性和性能。
LangGraph 通过将复杂的工作流分解为模块化的智能组件,引入了一种编排 AI 技术的现代方法。与传统r 自动化或机器人流程自动化 (RPA) 不同,LangGraph 通过使用实时逻辑和记忆,实现了动态的、上下文感知的任务执行。以下是推动该框架的四个关键组件:
这些组件共同使 LangGraph 能够改变组织设计和执行 AI 驱动工作流的方式——弥合 AI 工具与实际业务流程之间的差距。
Granite-4.0-Tiny-Preview,由 IBM Research 开发,是一个轻量级但功能强大的开源语言模型,旨在解决复杂问题和实际的自然语言处理 (NLP)任务。虽然 Granite 比 GPT-4 等商业模型小,但它速度快、效率高,并且与 Hugging Face 完全兼容——对于寻求操作效率而不牺牲性能的开发人员来说,这是一个不错的选择。
Granite 擅长以下领域:
在本教程中,Granite 模型在智能体工作流的各个阶段发挥着关键作用,支持问题解决和内容生成。其轻量级设计使其适合于人类干预可能有限的实际应用,并且在构建跨不同数据集和提供程序的稳健 AI 解决方案时,可扩展的设计模式是必不可少的。
在本教程中,我们将构建一个作为创意助手的智能体式工作流,用于编写短篇动画剧本。
根据用户提出的故事创意,智能体将:
此用例旨在展示语言模型的推理和生成能力,通过 LangGraph 的组合工作流构建。
以下每个步骤均作为 LangGraph 节点实现:
这些节点按顺序连接到 LangGraph 中,模型在其中移动,同时传递可变状态字典。
这种工作流在创意生成和结构规划之间取得了平衡。它展示了:
它还具有良好的可扩展性,您可以通过添加修订步骤、多个场景生成器甚至基于角色的分支来轻松扩展。
您需要一个 IBM® Cloud 帐户 才能创建 watsonx.ai 项目。
虽然您可以选择多种工具,本教程将引导您如何设置 IBM 帐户以使用 Jupyter Notebook。
此步骤将打开一个笔记本环境,可在其中复制本教程中的代码。或者,您可以将此笔记本下载到本地系统并将其作为资产上传到您的 watsonx.ai 项目。要查看更多 Granite 教程,请访问 IBM Granite 社区。本教程也可在 GitHub 上找到。
此单元安装使用托管在 Hugging Face 上的 IBM Granite 模型所需的核心库:
来自
注意:如果您在虚拟环境中运行本教程,且没有预安装 langgrapg,请使用 pip install langgraph 在本地环境中安装。
此单元导入了构建和运行智能体工作流所需的所有核心库:
这些导入共同为模型交互、工作流结构化和输出呈现准备了环境。
该单元从 Hugging Face 加载 IBM 的
来自
这一步骤有效地将 Granite 模型初始化为我们工作流背后的“推理引擎”。
此函数,
主要详情:
此函数将在整个工作流中重复使用,以在各个决策或生成节点调用 Granite 模型。
此函数,
输入:
提示构建:提示要求模型:
文本生成:提示被传递给
输出解析:一个简单的循环根据行前缀从模型的响应中提取类型和风格,该前缀为(
状态更新:提取的
该节点充当创意分类器,使后续节点能够以类型和风格为基本参数,生成与上下文相一致的大纲、结构和场景。
来自
输入:该函数接收包含以下内容的状态字典:
提示构建:模型被指示:
文本生成:提示信息被发送至
状态更新:生成的剧情大纲被添加到状态中,关键字为
这个节点将抽象的创作意图转化为叙事草图,为接下来详细的三幕结构提供了一个框架。它确保下游节点从一个连贯、富有想象力的基线开始工作。
来自
输入:该节点接收现在包含以下内容的状态字典:
提示构建:模型被指示:
场景要求:
文本生成:
状态更新:生成的场景会被添加到状态字典的
它将沉浸式叙事和视觉叙事引入工作流。这个节点不是简单地概括故事情节,而是通过感官和情感细节使故事栩栩如生,这对于编制动画短片至关重要。
来自
输入:节点期望状态
提示构建:模型旨在:
对话指南:
生成:
状态更新:对话被保存到状态中,键为
这个辅助函数
函数目的:用装饰器包装一个节点(例如 generate_scene_node),用于记录:
参数:
内部封装器:
返回:一个修改过的函数版本,添加了进度信息,但其他行为完全相同。
随着工作流的增长,跟踪正在执行的步骤变得非常重要,特别是当某些步骤(例如生成或编辑)需要更长的时间或可能导致内存过载等问题时。此进度包装器可确保透明度,并有助于调试和运行时诊断。
此单元通过使用 LangGraph(一个为 LLM 工作流设计的基于图的组合式编程框架)来定义生成短篇动画故事的工作流逻辑。中的每个步骤代表一项创造性任务,它们按特定顺序执行以生成最终剧本。
工作流的组件:
带有进度跟踪的节点注册:每个步骤(风格选择、大纲生成、场景创作、对话创作)都会作为一个节点添加到 with_progress() 包装器中-
此方法确保每个节点在执行时记录其运行时间和进度。
工作流边(节点排序):创意流程的顺序已明确定义:
这种结构实现了模块化、可读和可调试的 LLM 工作流。创作过程中的每个阶段都是隔离的,可以单独进行分析,并且日后可以替换或扩展(例如,添加“修订场景”步骤或“总结输出”节点)。现在
在这个最后的代码单元中,您可以运行完整的创意工作流,并显示每个故事生成阶段的结果。
显示结果:最终状态字典现在包含由各个节点填充的键:
这一部分展示了用户意图如何通过逐步、模块化的 LLM 工作流转化为完整的迷你剧本。这是一个端到端的创意管道,具有交互性、可解释性和可定制性。
注意:如果使用的是 GPU 或 TPU,则代码运行大约需要 15–17 分钟。在本地虚拟环境中,根据用于运行代码的基础设施,生成输出大约需要 65–70 分钟。
让我们了解系统如何将用户的提示——“我想为孩子们写一个关于迷失的龙寻找家园的奇幻故事”——转化为一个完整的动画故事。每个步骤都以前一个步骤为基础,由工作流的创意节点指导,并由 Granite 模型提供支持。
1. 类型和风格。工作流从解释用户的原始提示开始:我想为孩子们写一个关于迷失的龙寻找家园的奇幻故事。根据这一输入,select_genre_node 将故事正确归类为奇幻类型,并确定了合适的迷人且温馨的风格。这一结果是准确且符合上下文的,因为使用诸如“奇幻”、“为孩子们”和“迷失的龙寻找家园”等短语清楚地表明了一种神奇而又温和的讲故事风格。类型和风格是塑造工作流中每个后续生成步骤的基本参数。
2. 剧情大纲和角色描写。 下一步,要求模型根据已确定的类型、风格和用户的原始创意创建剧情大纲。输出结果不仅包含 3-5 句话的故事概要,还包含额外的角色描述,这可能是由于提示泄露或保留了早期迭代的指令格式所致。
剧情大纲围绕一个名叫莉莉的女孩展开,她发现了一条受伤的龙,并在一位老药剂师的指导下帮助它返回魔法森林。这个故事情节完全反映了用户的意图——专注于一个适合儿童的魔法之旅,带有治愈、归属和友谊的情感基调。龙、莉莉和药剂师的角色素描增加了故事的深度,将一个模糊的想法转化为一个具有明确角色、个性和叙事责任的结构化概念。这一步确保故事从抽象的意图转变为适合银幕改编的具体结构。
3. 关键场景。在获得完整的情节大纲后,
所选时刻是莉莉在魔法森林中照料受伤的巨龙,以此建立角色间的情感共鸣和相互理解。这一时刻至关重要,它将故事转向了巨龙归家之旅。该场景意象丰富、情感充沛,遵循了“异想天开”和“暖心”的约束条件,同时在视觉上富有表现力,非常适合短篇动画形式。
模型能够在各个阶段保持类型和风格的一致性,这体现了 LangGraph 的工作流价值以及 Granite 推理能力。
4. 剧本格式的对话。最后,
每个工作流阶段将原始提示——“一个关于迷失的龙寻找家园的奇幻故事”——转化为一个结构化、富有创意和表现力的叙事输出。从类型选择到对话格式化,系统逐步构建连贯的叙事弧线。LangGraph 框架确保任务之间的转换存在逻辑连接,而 IBM Granite 模型能够生成具有连贯基调的上下文相关文本。最终呈现的是一个紧凑、可直接在屏幕上播放的短篇动画故事,完全由一行用户输入生成,这展示了智能体式工作流在创意 AI 应用中的实际能力。
为了让故事讲述体验更加引人入胜,这里有一个简单的基于 HTML 的可视化工具,可以将生成的故事元素(类型、风格、情节、场景和对话)以美观的格式呈现。此外,只需单击一下,您就可以将整个剧本下载为文本文件,供今后使用或共享。让我们把故事搬上银幕!
本教程使用 Granite-4.0-Tiny-Preview模型进行文本生成。虽然它是 Granite 系列中较小的模型之一,但它仍然需要一个支持 GPU 的环境才能高效运行,尤其是在 LangGraph 工作流中执行多个节点时。
推荐设置:
性能注意事项:
如果您在托管笔记本环境(例如,IBM watsonx.ai 或 Google Colab Pro)中运行本教程,请确保在运行时设置中启用 GPU。
对于资源匮乏的环境,请考虑:
在本教程中,我们使用 LangGraph 和 IBM 的 Granite-4.0-Tiny-Preview 语文模型构建了一个模块化、智能体式的叙事工作流。从一个简单的创意提示出发,我们构建了一个循序渐进的管道,对类型、风格进行分类,生成剧本大纲,编写关键场景,最后以剧本风格的对话结束。在此过程中,我们演示了如何:
这种智能体框架不仅适用于剧本创作,还可以扩展到广泛的创意或任务路由用例。只需几个节点,您就能构建一个迷你写作助手,将奇幻的想法转化为剧本故事。
无论您是开发人员、故事讲述者还是研究人员,本教程都为您提供了深入了解创意领域中基于 LLM 的工作流的实用基础。
准备好构建您自己的智能体了吗?利用 IBM Granite 模型和 IBM watsonx Orchestrate,让创意源源不断。
构建、部署和管理强大的 AI 助手和智能体,运用生成式 AI 实现工作流和流程自动化。
借助值得信赖的 AI 解决方案,您可以勾勒未来业务发展蓝图。
IBM Consulting AI 服务有助于重塑企业利用 AI 实现转型的方式。
1 Lang Cao. 2024. GraphReason: Enhancing Reasoning Capabilities of Large Language Models through A Graph-Based Verification Approach. In Proceedings of the 2nd Workshop on Natural Language Reasoning and Structured Explanations (@ACL 2024), pages 1–12, Bangkok, Thailand. Association for Computational Linguistics.