LLM 能力集成与智能工作流自动化让 AI 成为真正的助手将大语言模型集成到工作流中是当前 AI 应用开发的核心课题。本文探讨如何有效地将 LLM 能力集成到现有系统以及如何设计智能工作流自动化方案。一、LLM 集成的架构模式LLM 集成有多种架构模式选择取决于具体需求。直接调用模式是最简单的方式。应用直接调用 LLM API传入 prompt 获取结果。适用于简单场景如聊天机器人、文本生成等。检索增强生成RAG模式结合了检索和生成。应用先从知识库检索相关信息将检索结果和问题一起发给 LLM。这种方式让 LLM 能够利用外部知识。Agent 模式赋予 LLM 调用工具的能力。LLM 不仅生成文本还能决定调用哪些工具、执行哪些操作实现复杂的自动化任务。flowchart TD subgraph 直接调用 A[用户] -- B[应用] B -- C[LLM API] C -- D[结果] end subgraph RAG 模式 E[用户] -- F[应用] F -- G[向量检索] G -- H[知识库] F -- I[LLM 上下文] I -- J[结果] end subgraph Agent 模式 K[用户] -- L[Agent] L -- M[LLM 推理] M -- N{需要工具?} N --|是| O[工具执行] O -- M N --|否| P[结果] end二、Prompt 工程与优化Prompt 是控制 LLM 输出的关键。结构化 Prompt让指令更清晰。系统 Prompt 定义角色和约束用户 Prompt 提供具体任务。良好的结构减少 LLM 的歧义理解。Few-shot Learning通过示例引导输出。在 Prompt 中提供几个输入-输出示例让 LLM 学会期望的模式。输出格式控制便于后续处理。使用 JSON Schema、Markdown 列表等结构化格式明确告诉 LLM 期望的输出格式。# 结构化 Prompt 示例 def build_rag_prompt(question: str, context: str) - str: 构建 RAG 场景的 Prompt return f你是一个专业的知识助手。根据提供的上下文信息回答问题。 ## 上下文 {context} ## 回答要求 1. 仅基于提供的上下文回答不要编造信息 2. 如果上下文中没有相关信息回复抱歉我没有足够的信息来回答这个问题 3. 回答应当准确、简洁、有条理 ## 问题 {question} ## 回答 def build_structured_output_prompt(task: str, output_schema: dict) - str: 构建结构化输出 Prompt schema_str \n.join([ f- {field}: {desc} (类型: {dtype}) for field, (desc, dtype) in output_schema.items() ]) return f你是一个结构化数据生成器。请根据用户输入生成符合以下 schema 的 JSON 数据。 ## 输出 Schema {schema_str} ## 要求 - 仅输出 JSON不要包含其他文字 - 确保所有必需字段都有值 - JSON 必须符合上述 schema 规范 ## 用户输入 {task} ## JSON 输出 三、向量检索与知识库RAG 模式的核心是高效的向量检索。Embedding 模型将文本转换为向量。常见的 Embedding 服务包括 OpenAI Ada、Cohere、国产的 M3E 等。选择时需要考虑效果、性能和成本。向量索引加速大规模检索。Faiss、Milvus、Qdrant 等向量数据库支持高效的近似最近邻ANN检索。HNSW、IVF 等索引算法在精度和性能间取得平衡。混合检索结合关键词和向量检索。BM25 等关键词检索补充向量检索的语义匹配提升召回效果。# 混合检索实现示例 import numpy as np from sklearn.feature_extraction.text import TfidfVectorizer import faiss class HybridRetriever: def __init__(self, embedding_model, documents): self.embedding_model embedding_model self.documents documents # 向量检索索引 self.embeddings embedding_model.encode(documents) self.index faiss.IndexHNSWFlat(len(self.embeddings[0]), 32) self.index.add(np.array(self.embeddings)) # 关键词检索 self.tfidf TfidfVectorizer(max_features5000) self.tfidf_matrix self.tfidf.fit_transform(documents) def retrieve(self, query, top_k5, alpha0.7): 混合检索 # 向量检索 query_vec self.embedding_model.encode([query]) vector_scores, vector_indices self.index.search(query_vec, top_k * 2) # 关键词检索 query_tfidf self.tfidf.transform([query]) keyword_scores (self.tfidf_matrix query_tfidf.T).toarray().flatten() keyword_indices np.argsort(keyword_scores)[::-1][:top_k * 2] # 分数融合 combined {} for idx, score in zip(vector_indices[0], vector_scores[0]): combined[idx] combined.get(idx, 0) alpha * score for idx in keyword_indices: combined[idx] combined.get(idx, 0) (1 - alpha) * keyword_scores[idx] # 排序取 top_k sorted_indices sorted(combined.items(), keylambda x: x[1], reverseTrue)[:top_k] return [(self.documents[idx], score) for idx, score in sorted_indices]四、Agent 工具调用实现Agent 的核心是 LLM 调用工具的能力。工具定义与注册是基础。每个工具有明确的描述名称、功能、参数、返回值让 LLM 理解何时以及如何调用。调用执行与结果处理需要健壮的工程实现。包括参数验证、错误处理、超时控制、结果格式化等。循环控制防止 Agent 陷入无限循环。通过最大迭代次数、操作去重、状态监测等机制确保 Agent 能够正常结束。五、工作流编排框架复杂的工作流需要编排框架管理。LangChain是最流行的 LLM 应用框架。提供了 Chain、Agent、Memory 等抽象支持多种 LLM 和工具集成。AutoGen是微软的 Agent 编排框架。支持多 Agent 协作、人机交互、代码执行等能力。自建编排器在简单场景下更轻量。根据业务需求定制开发避免引入过多复杂性。# 简化的工作流编排器 class WorkflowOrchestrator: def __init__(self): self.nodes {} self.edges [] def add_node(self, name, handler): 添加节点 self.nodes[name] handler return self def add_edge(self, from_node, to_node, conditionNone): 添加边 self.edges.append({ from: from_node, to: to_node, condition: condition or (lambda x: True) }) return self async def execute(self, start_node, initial_data): 执行工作流 current_node start_node context {data: initial_data, history: []} while current_node: handler self.nodes.get(current_node) if not handler: break result await handler(context) context[history].append({ node: current_node, result: result }) # 找到下一个节点 next_node None for edge in self.edges: if edge[from] current_node: if edge[condition](context): next_node edge[to] break current_node next_node return context六、总结LLM 集成需要根据场景选择合适的架构模式。直接调用适合简单任务RAG 模式适合需要外部知识的场景Agent 模式适合需要调用工具的复杂任务。Prompt 工程是 LLM 应用的核心技能。结构化设计、Few-shot 示例、输出格式控制都能显著提升效果。向量检索是 RAG 的关键基础设施。混合检索结合语义和关键词提升召回效果。工作流编排管理复杂的多步骤任务。选择合适的框架或按需定制确保系统的可维护性。