十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Context Engineering 实战:为什么没有上下文的 AI 会生成不可用的 Kestra 工作流(LLM Zoomcamp 2026)

Context Engineering 实战:为什么没有上下文的 AI 会生成不可用的 Kestra 工作流(LLM Zoomcamp 2026) Context Engineering 实战为什么没有上下文的 AI 会生成不可用的 Kestra 工作流LLM Zoomcamp 2026【免费下载链接】llm-zoomcampLLM Zoomcamp - a free online course about real-life applications of LLMs. In 10 weeks you will learn how to build an AI system that answers questions about your knowledge base. Register here 项目地址: https://gitcode.com/GitHub_Trending/ll/llm-zoomcamp上下文工程Context Engineering是本课程 03-orchestration 模块中理解 AI 可靠性的起点大模型只在训练截止时间之前见过世界而 Kestra 这样的开源编排平台每天都在演进插件类型、属性名与最佳实践不断变化。读完本文你将通过一个可复现的对照实验掌握为什么泛化 AI 助手会生成过时甚至虚构的 Kestra 工作流的底层原因并理解 Kestra 如何通过上下文注入RAG、AI Copilot把不可信的猜测变成可信的生产代码——这正是后续 RAG 工作流与 AI Copilot 两课的理论根基。一、对照实验让 ChatGPT 在没有上下文的情况下生成 Kestra 工作流本模块的核心论点来自一个任何人都能复现的简单实验。文档给出的实验步骤如下在隐私浏览窗口中打开 ChatGPT关键前提避免携带任何历史对话上下文输入以下提示词Create a Kestra flow that loads NYC taxi data from a CSV file to BigQuery. The flow should extract data, upload to GCS, and load to BigQuery.观察输出结果。实验结论非常明确ChatGPT确实会生成一个看起来结构完整的 Kestra 工作流但其中大概率包含三类问题过时的插件语法使用了已被重命名或废弃的旧任务类型例如io.kestra.plugin.core.http.Download这类当前插件命名空间之外的写法不存在的属性名引用了当前版本中并不存在的配置字段幻觉出来的功能包括从未存在过的任务、触发器或属性。本模块的真实演示流 1_chat_without_rag.yaml 用同一思路印证了这一点它直接向 Gemini 提问 Which features were released in Kestra 1.1?并明确要求列出至少 5 个主要特性但不注入任何检索到的上下文。执行结果的日志提示我们注意响应中可能出现的三种症状回答不正确、回答含糊笼统、以及列出的特性其实是很久以前就发布的而不是这个版本新增的。❌ Response WITHOUT RAG (no retrieved context): {{ outputs.chat_without_rag.textOutput }} Did you notice that this response seems to be: - Incorrect? - Vague/generic? - Listing features that havent been added in exactly this version but rather a long time ago?提示这两个演示流使用 Gemini 作为 AI 提供方需要在 Kestra 中配置{{ secret(GEMINI_API_KEY) }}。完整的密钥配置方法见环境搭建指南。二、为什么会这样训练截止时间是模型的出生日期实验结果的根源不在 Kestra 本身而在大语言模型的基本特性上。文档明确指出像 GPT 这样的大语言模型训练数据只覆盖到某个特定时间点为止。它们不会自动知道软件的更新和新版本、被重命名或变更 API 的插件、你所在组织的新最佳实践、以及针对你基础设施的特定配置。这被称为训练截止时间training cutoff。模型中内置的知识有明确的时效边界——例如对某个主流模型而言其内置知识可能只截止到某年某月之后发布的版本、插件和 API 变更它一概不知。ChatGPT 自己也承认这一点当被问及你的训练日期截止到什么时候时它的回答是内置知识只覆盖到某个时间点并提示可以用实时网络搜索获取更新的信息。这带来一个更深层的推论模型只能使用它能够访问到的信息工作。当用户询问 Kestra 1.1 发布了哪些功能 或要求生成 加载 NYC 出租车数据到 BigQuery 的流程时模型能依据的只有训练语料——其中可能包含旧版 Kestra 的语法、其他平台的工作流模式甚至完全不存在的内容。这就是幻觉的机制模型不是撒谎而是在没有足够证据时进行概率性补全而补全的结果恰好停留在某个历史快照上。三、上下文就是一切从猜测到可信的分水岭将两个结果并排对比本模块的核心结论就非常清晰了没有上下文通用 AI 助手会幻觉出过时或错误的代码这种输出无法信任用于生产环境有上下文AI 生成准确、最新、可直接迭代的生产级代码。同一个原则适用于所有场景——无论是生成工作流还是基于自己的数据回答问题。关键差别不在于模型能力而在于生成时模型被提供了什么。在 Kestra 的生态中这一原则具体化为三种上下文注入手段也是本模块后续课程的主线手段解决的问题对应课程AI Copilot为生成工作流注入当前插件文档、合法属性名与最佳实践04-ai-copilot.md静态 RAG为回答知识库问题注入你 ingest 的文档向量05-rag.mdWeb Search RAG为回答时效性问题注入实时检索结果05-rag.md四、在仓库中验证同一问题有无上下文的代码级对比上下文工程不是抽象口号本模块的 flows 目录 提供了可直接运行的对照实验。4.1 无上下文基线1_chat_without_rag.yamltasks: - id: chat_without_rag type: io.kestra.plugin.ai.completion.ChatCompletion description: Query about Kestra 1.1 features WITHOUT RAG provider: type: io.kestra.plugin.ai.provider.GoogleGemini modelName: gemini-2.5-flash apiKey: {{ secret(GEMINI_API_KEY) }} messages: - type: USER content: | Which features were released in Kestra 1.1? Please list at least 5 major features with brief descriptions.这个 flow 只做一件事把用户问题原样交给 LLM不携带任何外部资料。模型的回答完全依赖其训练数据中的 Kestra 认知因此很可能含糊或过时。4.2 有上下文对照2_chat_with_rag.yamltasks: - id: ingest_release_notes type: io.kestra.plugin.ai.rag.IngestDocument description: Ingest Kestra 1.1 release notes to create embeddings provider: type: io.kestra.plugin.ai.provider.GoogleGemini modelName: gemini-embedding-001 apiKey: {{ secret(GEMINI_API_KEY) }} embeddings: type: io.kestra.plugin.ai.embeddings.KestraKVStore drop: true fromExternalURLs: - https://raw.githubusercontent.com/kestra-io/docs/refs/heads/main/src/contents/blogs/release-1-1/index.md - id: chat_with_rag type: io.kestra.plugin.ai.rag.ChatCompletion ... systemMessage: | You are a helpful assistant that answers questions about Kestra. Use the provided documentation to give accurate, specific answers. If you dont find the information in the context, say so. prompt: | Which features were released in Kestra 1.1? Please list at least 5 major features with brief descriptions.与 4.1 相比这里多了两个关键动作摄取IngestIngestDocument从 Kestra 官方 1.1 发布说明文档 URL 拉取内容用gemini-embedding-001生成向量存入 Kestra 的 KV Storedrop: true表示每次重跑先清空再写入带上下文问答ChatCompletion同时配置了chatProvider负责生成回答与embeddingProviderembeddings负责把用户问题向量化并检索最相似的文档片段并将检索结果拼入提示词。注意systemMessage中的一句关键指令如果上下文里找不到相关信息请直说say so——这是上下文工程的经典技巧允许模型承认无知而不是强行编造。4.3 进一步延伸3_rag_with_websearch.yamltasks: - id: chat_with_rag_and_websearch_content_retriever type: io.kestra.plugin.ai.rag.ChatCompletion chatProvider: type: io.kestra.plugin.ai.provider.OpenAI apiKey: {{ secret(OPENAI_API_KEY) }} modelName: gpt-5-mini contentRetrievers: - type: io.kestra.plugin.ai.retriever.TavilyWebSearch apiKey: {{ secret(TAVILY_API_KEY) }} systemMessage: You are a helpful assistant that can answer questions about Kestra. prompt: What is the latest release of Kestra?这个 flow 把上下文的来源从静态文档换成了实时网络搜索通过TavilyWebSearch检索器在查询时抓取实时结果注入提示词无需任何 ingest 步骤。它适合回答最新版本是什么这类变化速度超过重新摄取频率的问题。代价是结果质量取决于搜索引擎本身检索到的上下文可能不相关或不准确——课程文档特别提醒使用 web search RAG 时必须测试检索上下文的质量。两种 RAG 的取舍静态 vs. 实时在 05-rag.md 中有完整对比。运行以上三个 flow 前请先完成环境搭建中的密钥配置export GEMINI_API_KEYyour-gemini-api-key-here # required export SECRET_GEMINI_API_KEY$(echo -n $GEMINI_API_KEY | base64) # required export SECRET_OPENAI_API_KEY$(echo -n your-openai-api-key-here | base64) # required for flow 3 export SECRET_TAVILY_API_KEY$(echo -n your-tavily-api-key-here | base64) # required for flow 3 docker compose up -d五、把上下文工程落到生成环节Kestra AI Copilot如果说不带上下文的 LLM 是凭记忆答题那么 Kestra 的 AI Copilot 就是带着当前版本文档答题。课程文档指出AI Copilot 之所以可靠是因为它基于你正在运行的 Kestra 版本所对应的当前插件文档、合法属性名与最佳实践生成流程——而不是像通用 AI 助手那样猜测。在 Flow Editor 右上角点击 AI Copilot 按钮✨ 图标输入与第一节实验中完全相同的提示词Create a Kestra flow that loads NYC taxi data from a CSV file to BigQuery. The flow should extract data, upload to GCS, and load to BigQuery.结果与裸 ChatGPT 形成鲜明对比Copilot 生成的 YAML 使用正确的任务类型如io.kestra.plugin.core.http.Download下载 CSV、io.kestra.plugin.gcp.gcs.Upload上传 GCS、io.kestra.plugin.gcp.bigquery.Load加载 BigQuery、合法的属性名且是可执行的完整流程——同时它还会把不确定的假设如 GCS 桶名、服务账号密钥以注释形式标注出来供你确认。这就是上下文工程在代码生成场景的完整闭环先诊断无上下文时模型会如何失败本课再用 AI Copilot 将官方文档注入生成过程下一课最后用 RAG 将你自己的数据注入问答过程再下一课。三者的共同底层逻辑只有一句话上下文就是一切。六、要点回顾可复现的诊断实验在隐私窗口用同一提示词询问通用 AI 助手观察其输出中的过时语法、错误属性名与幻觉功能根本原因大模型的训练截止时间决定了它无法知道训练之后的插件变更、版本演进与组织最佳实践通用结论上下文质量直接决定 AI 输出的可信度无上下文不可用于生产有上下文可快速迭代模块内的验证路径依次运行 1_chat_without_rag.yaml、2_chat_with_rag.yaml 与 3_rag_with_websearch.yaml 三个 flow用同一问题的三种回答质量直观理解上下文的作用进阶方向本课是整个 03-orchestration 模块 的理论基石后续将围绕AI Copilot 生成流、RAG 接地、AI Agents 自主执行与多智能体协作逐层展开。【免费下载链接】llm-zoomcampLLM Zoomcamp - a free online course about real-life applications of LLMs. In 10 weeks you will learn how to build an AI system that answers questions about your knowledge base. Register here 项目地址: https://gitcode.com/GitHub_Trending/ll/llm-zoomcamp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表