商城网站建设套餐wordpress logo替换

张小明 2026/1/9 16:22:15
商城网站建设套餐,wordpress logo替换,原创文章网站开发教程,深圳网站建设哪家比较好简介 本文详细记录了作者利用AI Agent实现开源应用Helm Chart自动化生成的探索历程。从最初的全自主决策Agent到结构化工作流Agent#xff0c;再到多Agent协作模式#xff0c;作者分享了AI Agent设计、Prompt工程、行为范式选择等关键实…简介本文详细记录了作者利用AI Agent实现开源应用Helm Chart自动化生成的探索历程。从最初的全自主决策Agent到结构化工作流Agent再到多Agent协作模式作者分享了AI Agent设计、Prompt工程、行为范式选择等关键实践。文章分析了AI作为分析者与决策者的能力边界强调了结构化工作流的重要性并讨论了实践中遇到的AI可观测性、Prompt工程炼丹术困境等痛点。最终作者提出了构建可靠Agent的12-factor原则为AI Agent工程实践提供了宝贵经验。本文主要阐述作者通过亲身实践探索利用AI Agent实现开源应用Helm Chart自动化生成的实践历程。引言这事儿得回到两周前彼时我刚入职正兴致勃勃地想接下来会做些什么周会上说到新需求的进展遇到了一个小问题——面临上百个开源应用的k8s部署适配TL表示现在啊AI提效是关键“咱们能不能搞个AI”“就给它一个开源应用它一下自己部署全了。”在那个瞬间我脑海里闪过的一个宏大的图景——一个全能的应用部署agent好吧冷静下来还是聚焦于一个小的开始k8s部署物的自动生成。输入一个开源项目如 GitHub 链接AI Agent 能够分析项目并输出一个可直接部署的 Helm Chart 包。我一头扎进了 AI Agent 的世界。这个过程比我想象的要曲折。经历了初期“AI 无所不能”的天真幻想也体验了Agent 陷入无限循环时的茫然。最终磕绊地实现了一个初级的最小可行性方案。现在把这段尚在进行时的探索之旅记录下来作为个人学习的总结也希望能和大家交流得到前辈们的指点。怎么做一个agent定义 Agent 的角色万事开头难尤其是做一个没有接触的东西。最初的我理解的agent模样只要提供一堆工具和promptagent就可以自行探索-分析-决策-执行直到解决任务。尽管从宏观角度上来说这样并没有错但这却让我踩进了第一个坑——让LLM控制一切给LLM一堆工具让它自由发挥企图它能够按照心里的目标实现而让LLM控制一切的结果就是不完善的prompt和tools带来了无限循环。LangChain给了一个宏观指导它把构建 Agent 的过程分成了几个阶段从定义到部署。(图源: https://blog.langchain.com/how-to-build-an-agent/回头看我前期的混乱本质上就是在 Stage 1: Define 阶段的无所适从。我一心想快速实现Stage 3: Build MVP却忽略了最根本的问题在这个任务里AI 的边界到底在哪里我应该让 AI 做什么又应该让工程代码做什么这个问题应该是 AI 应用探索的起点。前期我东一榔头西一榔头一会儿尝试让 AI 自己写 shell 脚本去扫描目录一会儿又让它去决策先分析哪个文件结果就是 AI 的表现极其不稳定输出的结果惨不忍睹。在踩了坑之后我才明白Define 阶段要回答的不仅仅是“做什么功能”更是“AI 以何种方式参与工作”。AI 能力的边界尽管从理想情况来说一切人能够清晰衡量和验证的事物都能被AI解决源自Jason wei但应用落地还是要受限于当下的模型。有可能随着模型的发展一句话的prompt就能让ai实现当下多agent完成的任务。个人实践来看AI 是在做分析者Analyst 与 决策者Decision-Maker。作为分析者这是 AI 最容易胜任的角色。AI 的核心任务是感知和理解。它不直接执行任何变更操作阅读庞大的信息迅速抓住信息的重点。例如它可以阅读持续监控 Prometheus 指标和 Pod 日志聚合所有相关信息——包括异常指标、错误日志、相关的变更事件然后生成一份根本原因分析报告。尽管依然有“幻觉”的出现但现在的AI在这个方面已经做得不错了。作为决策者让 AI 做决策意味着它需要对环境有深刻的理解甚至具备一定程度的“常识”在已知的模型能力下往往和高质量的prompt和上下文强相关。要让 AI 胜任这个角色必须给它提供一套明确的行动框架清晰的工具集、详尽的工具使用场景、固定的工作流甚至要细化到每个决策节点的触发时机。 比如不能简单地告诉 AI “更新服务”而是要将这个任务拆解成一个它能理解的工作流。在这种情况下执行越小越清晰任务的agent往往比执行复杂任务的agent表现得更好也更容易控制。Agent的行为范式业界已经有很多关于 Agent 行为范式的探讨ReAct (Reasoning and Acting)《ReAct: Synergizing Reasoning and Acting in Language Models》https://arxiv.org/pdf/2210.03629(图源: ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models)ReAct 的核心是 Thought - Action - Observation 的循环 。LLM 思考一下决定调用一个工具Action然后观察工具返回的结果再进行下一轮思考 。该框架本质上创建了一个反馈循环每次完成此循环时即每次代理采取行动并根据该行动的结果进行观察时代理必须决定是否重复或结束循环。LangGraph 中的 ReAct 代理模块通过预定义的系统提示实现与该模块一起使用的 LLM 不需要任何其他示例即可充当 ReAct 代理。请尽力回答以下问题。您可以使用以下工具 维基百科维基百科的封装器。当您需要回答关于人物、地点、公司、事实、历史事件或其他主题的一般性问题时它非常有用。输入内容应为搜索查询。 duckduckgo_searchDuckDuckGo 搜索的包装器。当你需要回答有关时事的问题时非常有用。输入内容应为搜索查询。 计算器当您需要回答有关数学的问题时很有用。 使用以下格式 问题您必须回答的输入问题 思考你应该时刻思考自己该做什么 行动要采取的行动应该是 [Wikipedia、duckduckgo_search、Calculator] 之一 动作输入动作的输入 观察行动的结果 ...这个想法/行动/动作输入/观察可以重复N次 想法我现在知道最终答案了 最终答案原始输入问题的最终答案 开始 问题{输入} 想法{agent_scratchpad}plan-and-execute图源https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/plan-and-execute/plan-and-execute.ipynbplan-and-execute旨在克服ReAct类代理的局限性通过在执行任务前明确规划所有必要步骤。这种方法旨在提高效率、降低成本并提升整体性能。其核心工作流程包含三个阶段规划阶段 接收用户输入并生成一个用于完成大型任务的多步骤计划或任务清单执行阶段 接收计划中的步骤并调用一个或多个工具来按顺序完成每个子任务重规划阶段根据执行结果动态调整计划或返回manus的Agent像是借鉴了这种思路首先生成任务清单再对着清单逐个执行。这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】ReWOO Reasoning WithOut Observation 图源https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/rewoo/rewoo.ipynbReWOO是一种创新的增强语言模型 (Augmented Language Model, ALM) 框架。它将复杂任务的解决过程分解为三个独立的模块规划器 (Planner) 基于 LLM 推理提前生成任务蓝图步骤顺序与逻辑无需工具实时反馈。执行器 (Worker) 按蓝图并行调用外部工具如搜索、计算器收集证据。求解器 (Solver) 综合分析蓝图和执行证据生成最终答案含纠错总结。ReWOO 最显著的特点是拥有一个独立的 Solver 模块。它专门负责整合规划意图与工具执行结果屏蔽 Worker 的执行细节直接基于蓝图和证据生成最终答案在执行阶段Worker 步骤ReWOO 不查看外部工具返回的中间结果细节。与 Plan and Execute 关键区别ReWOO Worker 只负责执行工具调用无需 LLM 驱动。ReWOO 没有重新规划步骤蓝图固定。Agent框架Agent框架我没有进行过多的研究还没有一个像springboot对java web那样绝对统治地位的框架出现完全可以自行实现一个简易的Agent框架构建LLM Tools Workflow的组合。通过编写一些“胶水代码”手动管理模型的输入输出、调用外部工具如API或数据库并控制整个任务的流程。当然使用一个成熟的框架能够更快地聚焦于任务业务部分。社区中已经涌现出许多优秀的Agent框架我使用的是LangChain和LangGraph当前阶段还不需要维护非常复杂的逻辑。prompt工程我最初也曾低估了Prompt工程的复杂性认为它不过是“提需求”的简单环节。但当一个初步可行的框架和流水线搭建起来后所有后续的质量优化、效果对齐和稳定性问题几乎都聚焦到了与Prompt的持续“搏斗”上。这个过程耗时费力且充满了不确定性。我们就像一个需求方试图向一个能力强大但心智难以捉摸的第三方清晰地传达我们的意图这其中的挑战远超预期。实践中最大的感悟是结构化是提升沟通效率的关键。通过类似README的格式将Prompt拆解为角色Role、工具Tools、注意事项Attention、输出格式Output、执行逻辑Logic、具体要求Requirements等模块化指令能够显著提高模型理解意图的准确率。这种方式的核心是尽可能地提供清晰、明确的上下文与背景信息避免使用模糊的语言从而帮助模型在庞大的可能性空间中收敛到我们期望的输出范围。即便采用了结构化的方法我依然遇到许多“模型特色”的难题“必须”并非绝对指令中的“必须”、“一定”等强约束词并不能保证100%被遵守。“重要”可能被忽略模型有时会“抓不住重点”无法准确识别我们强调的核心要素。格式偶尔“叛逆”即使明确规定了输出格式模型有时仍会生成意料之外的“自由发挥”内容。这些问题揭示了与大模型协作的本质我们并非在编写具有确定性行为的代码而是在通过自然语言引导一个概率系统。面对这种不确定性需要更精细的策略例如Few-short即好的例子清晰的逻辑链条和工具使用指南迭代式优化等等。Prompt也不是越长越好大模型的注意力可能会涣散。当然到Agent后考虑的不只是第一步的输入而是上下文——所有输入给大模型的信息。我还苦手于prompt工程前期更多地追求可执行而不是质量。GitHub - PandaBearLab/prompt-tutorial: chatGPT、prompt、LLMhttps://github.com/PandaBearLab/prompt-tutorial提示工程指南 – Nextrahttps://www.promptingguide.ai/zh设计的岔路口三种 Agent 范式尝试正是对这些底层逻辑的认知不足才导致了我最初设计的失败。“全自主决策”Agent的阵亡这是我最开始的尝试也是最符合“Agentic”的方案。我给它设定了一个大的目标提供了一篮子工具克隆仓库、读写文件、执行 Shell 等然后写下了一段充满信任和期望的 Prompt你是一个云计算/容器研发工程师。你的任务是为一个开源项目生成一个可部署到Kubernetes 1.16版本上的Helm Chart。 ## 你的最终目标: 创建一个与项目同名的、完整的Helm Chart包含所有的yaml文件符合helm的最佳实践。 ## 注意事项: **优先找寻docker-compose文件**: ... **应用启动**: ... **依赖**: ... ... ## 你拥有的能力 (工具): {tools} ## 你的工作原则与思考模式 (非常重要): 最优先原则你应该像一个人类工程师一样发现问题解决问题不要停滞不前。请记住你拥有广泛的工具能力可以灵活、巧妙地运用这些工具来完成每一个目标。 step1: ... step2: ... ...然后我满怀期待地按下了回车。Agent 确实“思考”了起来它的 Thought 日志显示出一种努力工作的迹象。决策瘫痪 在面对一个有多个docker-compose-xxx.yml文件的仓库时它会陷入长久的思考“我需要阅读xxx文件来明确部署方案”“我没有找到xxx文件” 这种思考让ai陷入了循环困境。工具误用 它会幻想出一些不存在的文件路径然后固执地调用read_file_content工具在得到一连串“文件不存在”的 Observation 后它会感到困惑。幻觉频出 在深入分析一个复杂的docker-compose文件时它可能会完全沉浸在理解某个服务的环境变量中而多个文件可能存在的关联性让其产生“幻觉”。无法掌控在多次运行测试时也会有那么一次执行成功那一次Agent不仅完美定位到了文件甚至部署文件中错误的路径地址也被识破。通过列出文件结构树一一阅读依赖文件Agent为一个有7个依赖的复杂项目成功生成了部署物。然而只是昙花一现可以说再也没有复现成功Agent好像忘了自己曾经有那么聪明过。这也引申出AI存在的一个问题每一次ReAct可能走上不一样的道路而这可能是不可控的。阵亡反思遵循了基本的ReAct行为范式AI出现了决策的脆弱性 在一个多步骤、长链条的任务中任何一步的 Thought 出现偏差比如错误地判断了文件的重要性都可能导致整个任务链走向一个无法挽回的死胡同。Agent 很容易陷入“我该干啥”的循环或者在一个细枝末节上“钻牛角尖”。这次的阵亡让我体会到理想与现实的差距。对于一个步骤清晰、逻辑严密的工程任务当前 LLM 的自主规划和纠错能力还不够成熟 。如果只提供AI一个简单的prompt然后把一个宏大的、定义模糊的任务完全交予 AI就像让一个只有短期记忆的聪明人去完成一项需要长期规划的系统工程。当然我觉得可能有很大的原因是prompt的锅因为我既没有遵循提供给AI明确的流程的原则也没有一个好的Few-short。但由于调试prompt实在是容易陷入“调试地狱”且是可能是一个需要长期试验的过程而简单prompt的结果离预期太远在初探阶段我放弃了。“结构化工作流”Agent“全自主”的道路上行不通后我换了一条道路。我意识到我需要的不是一个“思考者”而是一个在我的指导下能把活儿干得漂亮的“执行者”。于是我放弃了让 AI 自由决策的幻想转而设计了一套固定的、结构化的工作流。在这个范式里人类负责定义“骨架”WorkflowAI 负责填充“血肉”Analysis Generation。并且为了快速获得测试结果我将任务拆分从一个项目的部署物生成到存在docker-compose项目的部署物生成。我使用了 LangGraph 来编排这个工作流。下面是 MVP 的时序图最终输出输出AI Agent工作流已构建。 开始执行AI Agent任务... --- 节点: 拉取仓库 --- 仓库已成功克隆到 ./workspace/WukongCRM-11.0-JAVA - 正在执行节点: find_compose_file --- 节点: 寻找Compose文件 --- 找到Compose文件: ./workspace/WukongCRM-11.0-JAVA/docker/docker-compose.yml --- 节点: 提取Compose文件中的本地文件引用 --- 提取到 6 个本地文件: [workspace/WukongCRM-11.0-JAVA/docker/conf/mysql/mysqld.cnf, workspace/WukongCRM-11.0-JAVA/docker/conf/nginx/nginx.conf, workspace/WukongCRM-11.0-JAVA/docker/conf/redis/redis.conf, workspace/WukongCRM-11.0-JAVA/docker/mysql.sh, workspace/WukongCRM-11.0-JAVA/docker/nacos.sh, workspace/WukongCRM-11.0-JAVA/docker/wkcrm.sh] - 正在执行节点: extract_local_files --- 节点: 读取本地文件内容 --- - 正在执行节点: read_local_files --- 节点: 深度分析Compose文件 (迭代式生成) --- 识别到 7 个服务: [db, redis, elasticsearch, nacos, xxl-job-admin, nginx, wkcrm] --- 正在为服务 db 生成蓝图... --- ✅ 成功生成并拼接服务 db 的蓝图。 --- 正在为服务 redis 生成蓝图... --- ✅ 成功生成并拼接服务 redis 的蓝图。 --- 正在为服务 elasticsearch 生成蓝图... --- ✅ 成功生成并拼接服务 elasticsearch 的蓝图。 ... 所有服务的蓝图均已成功生成 - 正在执行节点: analyze_compose_file --- 节点: 生成Helm Chart文件 (核心上下文迭代式生成) --- 识别到需要生成的 30 个Chart文件 (按顺序): [Chart.yaml, values.yaml, templates/_helpers.tpl, templates/NOTES.txt, templates/dep-db-configmap-db-entrypoint-script.yaml, templates/dep-db-configmap-db-mysqld-config.yaml, templates/dep-db-secret-db-secret.yaml, templates/dep-db-service-db.yaml, templates/dep-db-statefulset-db.yaml, templates/dep-elasticsearch-configmap-elasticsearch-config.yaml, templates/dep-elasticsearch-deployment-elasticsearch.yaml, templates/dep-elasticsearch-persistentvolumeclaim-elasticsearch-data-pvc.yaml, templates/dep-elasticsearch-persistentvolumeclaim-elasticsearch-plugins-pvc.yaml, templates/dep-elasticsearch-service-elasticsearch-svc.yaml, templates/dep-nacos-configmap-nacos-conf.yaml, templates/dep-nacos-configmap-nacos-config.yaml, templates/dep-nacos-deployment-nacos.yaml, templates/dep-nacos-persistentvolumeclaim-nacos-logs-pvc.yaml, templates/dep-nacos-service-nacos.yaml, templates/dep-redis-configmap-redis-config.yaml, templates/dep-redis-deployment-redis-deployment.yaml, templates/dep-redis-service-redis-service.yaml, templates/dep-xxl-job-admin-deployment-xxl-job-admin.yaml, templates/dep-xxl-job-admin-persistentvolumeclaim-pvc-xxl-job-log.yaml, templates/dep-xxl-job-admin-service-xxl-job-admin-svc.yaml, templates/main-configmap-wkcrm-scripts.yaml, templates/main-deployment-wkcrm.yaml, templates/main-persistentvolumeclaim-wkcrm-logs.yaml, templates/main-persistentvolumeclaim-wkcrm-upload-data.yaml, templates/main-service-wkcrm.yaml] --- 正在为文件 Chart.yaml 生成内容... --- ✅ 成功生成文件 Chart.yaml 的内容。 --- 正在为文件 values.yaml 生成内容... --- ✅ 成功生成文件 values.yaml 的内容。 --- 正在为文件 templates/_helpers.tpl 生成内容... --- ✅ 成功生成文件 templates/_helpers.tpl 的内容。 --- 正在为文件 templates/NOTES.txt 生成内容... --- ✅ 成功生成文件 templates/NOTES.txt 的内容。 --- 正在为文件 templates/dep-db-configmap-db-entrypoint-script.yaml 生成内容... --- ✅ 成功生成文件 templates/dep-db-configmap-db-entrypoint-script.yaml 的内容。 ... 所有Chart文件均已成功生成 - 正在执行节点: generate_helm_chart_files --- 节点: 将Chart文件写入磁盘 --- --- 节点: Helm Lint检查 --- 对 ./workspace/WukongCRM-11.0-JAVA/WukongCRM-11.0-JAVA 执行 helm lint... Helm lint 失败: Linting ./workspace/WukongCRM-11.0-JAVA/WukongCRM-11.0-JAVA [ERROR] Chart.yaml: unable to parse YAML error converting YAML to JSON: yaml: line 42: found character that cannot start any token [ERROR] templates/: cannot load Chart.yaml: error converting YAML to JSON: yaml: line 42: found character that cannot start any token [ERROR] : unable to load chart cannot load Chart.yaml: error converting YAML to JSON: yaml: line 42: found character that cannot start any token Error: 1 chart(s) linted, 1 chart(s) failed ⚠️ Lint检查失败 (尝试次数 1/50)进入修复流程。 - 正在执行节点: helm_lint --- 节点: 修复Chart文件 --- 调用通义千问修复Chart文件... LLM提出了 1 个文件的修复方案。 --- 节点: Helm Lint检查 --- 对 ./workspace/WukongCRM-11.0-JAVA/WukongCRM-11.0-JAVA 执行 helm lint... Helm lint 失败: Linting ./workspace/WukongCRM-11.0-JAVA/WukongCRM-11.0-JAVA [ERROR] templates/: template: wukongcrm-11-0-java/templates/dep-elasticsearch-configmap-elasticsearch-config.yaml:8:16: executing wukongcrm-11-0-java/templates/dep-elasticsearch-configmap-elasticsearch-config.yaml at .Values.elasticsearch.env.TZ: nil pointer evaluating interface {}.TZ Error: 1 chart(s) linted, 1 chart(s) failed ⚠️ Lint检查失败 (尝试次数 2/50)进入修复流程。 - 正在执行节点: helm_lint --- 节点: 修复Chart文件 --- 调用通义千问修复Chart文件... LLM提出了 2 个文件的修复方案。 - 正在执行节点: fix_chart --- 节点: Helm Lint检查 --- 对 ./workspace/WukongCRM-11.0-JAVA/WukongCRM-11.0-JAVA 执行 helm lint... Helm lint 通过 ✅ Lint检查通过流程继续到打包步骤。 - 正在执行节点: helm_lint --- 节点: Helm Install Dry-Run 检查 --- ✅ helm install --dry-run 检查通过。 ✅ Install Dry-Run 检查通过流程继续到打包步骤。 --- 节点: 将Chart文件写入磁盘 --- - 正在执行节点: write_chart_to_disk - 正在执行节点: helm_install_check --- 节点: 打包Helm Chart --- Chart成功打包到: ./workspace/WukongCRM-11.0-JAVA/wukongcrm-11-0-java-0.1.0.tgz - 正在执行节点: package_chart ✅ AI Agent任务执行完毕 任务成功 生成的Helm Chart包位于: ./workspace/WukongCRM-11.0-JAVA/wukongcrm-11-0-java-0.1.0.tgz 你可以使用以下命令来部署它: helm install my-release ./workspace/WukongCRM-11.0-JAVA/wukongcrm-11-0-java-0.1.0.tgz中间语言“部署蓝图”由于上一个“全自主决策”Agent的失败我发现可能更需要流程的可控性。如果让AI自己生成部署蓝图后续再遵循蓝图进行部署物生成可能会让结果更为可控。我引入了一个中间步骤让 AI 先把项目的docker-compose内容翻译成一份详尽的、结构化的 “部署蓝图” JSON。Prompt 长这样**角色**: 你是一位顶级的云原生解决方案架构师... **任务**: 请对以下 docker-compose.yml 文件进行深度分析并生成一份详尽的、结构化的Kubernetes迁移蓝图... **docker-compose.yml 内容**: yaml {docker_compose_content} 相关联的本地文件内容: {related_files_content} 核心分析指令: 1. 识别主应用: ... 2. 依赖关系与启动顺序: ...规划使用Init Containers... 3. 挂载Volumes意图分析: ...映射到PersistentVolumeClaim...ConfigMap...Secret... ... 输出要求: 你必须严格按照以下JSON格式输出你的蓝图... {{ main_application: {{ ... }}, dependencies: [ {{ ... }} ] }}为什么设计这个“蓝图”降低认知负荷保证分析质量让 AI 专注于“理解和分析”而不是同时分心去想 Helm 的模板语法。这极大地提升了分析阶段的准确性。AI 在这一步表现得像一个真正的架构师它能准确识别数据卷、配置文件、环境变量并规划出对应的 K8s 资源。应对 Token 限制复杂项目部署物的输出可能会超过模型的上限。为此采用了“迭代分片法”它会先解析出里的所有服务然后一个一个地调用 LLM 去生成每个 service 的蓝图片段最后在代码层面将它们拼接成完整的蓝图。用工程手段弥补模型能力限制解耦与稳定“蓝图”成了一个稳定、可调试的中间状态。如果最终生成的 Chart 有问题我能清晰地判断是“蓝图”生成错了还是从“蓝图”到“YAML”的翻译步骤错了。这种解耦对于调试和迭代至关重要。看似是使用了更多的prompt但减少了调试的难度。这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】自我修复的“自愈循环”“一次就写对所有代码”是神话AI 也不例外。它生成的 Helm Chart 会有各种语法错误、命名不规范、模板引用错误等问题。设计一个自愈循环并将其拆开单独形成一个工作逻辑能够隔离开生成和修复环节尽量避免大模型陷入无限循环也防止出现“越修越错”。把dry run这个确定性的、高质量的外部反馈整合进了 AI 的工作流中。Agent 不再是“盲目生成”而是有了“试错和修正”的能力 。在实践中这个循环可能在20次内修复大部分常见的 Chart 问题极大地提升了最终交付物的“可用性”。这个“结构化工作流”方案看起来是缺少了Agentic但它僵硬而准确最终成功地支撑起了我的 MVP。它让我明白在当前的 AI 技术水平下好的 Agent 应用是工程设计与 AI 能力的精妙结合而不是对 AI 的盲目放权。这个部分正好贴合了Antropic的 Barry Zhang 提出 Agent 的概念即在循环Loop中使用工具的模型。图源https://generativeai.pub/use-n8n-like-a-pro-with-anthropics-6-simple-composable-patterns-for-llms-d601efe0f314“多 Agent 协作”单一 Agent 完成一个端到端的复杂任务它既要懂宏观架构又要懂代码细节还要会调试。在复盘 MVP 时我觉得一个复杂任务应该由一个 Agent 团队来协作完成 。总指挥(Orchestrator): 接收原始需求进行任务分解。Agent 1: 分析专家(Analysis Agent)输入: GitHub URL。任务: 深入分析项目阅读代码、README、甚至模拟人类去搜索相关文档最终产出项目的核心元数据和一份或多种“可行的部署方案”比如“方案A用 Docker Compose 部署”“方案B用源码编译”。输出: 结构化的部署方案 JSON。Agent 2: 执行专家群(Execution Agents):Agent 2a: Docker Compose 执行器: 这就是我们 MVP 的核心。输入部署方案A输出 Helm Chart。Agent 2b: 源码编译执行器: 输入部署方案B负责生成包含编译步骤的 Dockerfile 和对应的 K8s YAML。Agent 2c: …Agent 3: 质检专家(QA Agent):输入: 生成的部署产物如 Helm Chart。任务: 进行静态检查lint、动态部署验证在沙箱 K8s 环境中helm install并报告成功或失败。输出: 质检报告。这个“多 Agent 协作”模式分析专家 就是 Planner它负责思考和规划执行专家群就是 Workers它们各自拥有一套专用工具负责高效地执行具体的子任务 。这种模式的好处是显而易见的单一职责 每个 Agent 的目标更明确Prompt 和工具集可以高度优化 。可扩展性 增加一种新的部署方式只需要增加一个新的“执行专家” Agent而不用修改整个系统。健壮性 单个 Agent 的失败不会导致整个系统崩溃总指挥可以进行重试或切换到备用方案。但是这也引入了新的问题那就是多agent框架是怎样的规范好用的多agent的传输协议上下文和memory的设计等等这又是一个很大的探索话题。一个好的 Agent 到底长什么样大模型是不可控的。不是‘给LLM一堆工具让它自由发挥’而是大部分由确定性代码构成在关键决策点巧妙地融入LLM能力。12-Factor Agents初探让我对“一个好的 Agent 到底长啥样”这个问题有了更深刻的理解。12-Factor Agentshttps://github.com/humanlayer/12-factor-agents?tabreadme-ov-file 这个项目为构建企业级、生产级的 Agent 提供了极好的指导原则。结合它的思想和我的实践有一些感悟1.结构化上下文上下文包括Prompt、说明、RAG 文档、历史记录、工具调用、记忆。这是做好一个agent大概率的选择结构化的输入能让大模型更好地理解任务、执行任务而结构化的输出也是为了下一步的输入。2.单一职责 这是我从“全自主 Agent”失败到“多 Agent 协作”思考的最大转变。试图构建一个无所不能的“瑞士军刀”式 Agent可能导致样样通、样样松。而将任务拆解让每个 Agent 专注于一个明确的、有边界的任务是通往成功的首要法则 。3.外部化状态管理Agent 的思考过程应该是无状态的。所有的状态都应该由外部的工作流引擎来管理 。这使得流程的每一步都可以被独立地调试、重试和观察。4.解耦处理阶段“蓝图”设计就是这个原则的体现。将“分析理解”、“代码生成”、“检查修复”等阶段清晰地解耦使得每个阶段都可以被独立优化也让整个流程的复杂性得到了有效控制 。5.可控性与可预测性 这是 12-Factor 之外个人的感悟。在工程领域的某些场景下我们追求的往往不是 AI 的惊艳而是它的可靠。一个好的 Agent其行为应该是高度可控和可预测的。“结构化工作流”就是一种增强可控性的实践。我们应该通过清晰的流程、明确的指令和严格的输出格式。如何平衡AI的创造性和确定性是需要在一开始就确定的。实践中的痛点AI 可观测市面上有很多ai可观测产品这次使用的是LangSmith。LangSmith是LangChain团队推出的一个统一的可观测性与评估平台旨在帮助开发者对AI应用进行调试、测试和监控。鉴于大型语言模型LLM本质上的非确定性其内部运作机制难以完全理解这给应用开发带来了独特的调试挑战。LangSmith通过提供LLM原生的可观测性能力允许开发者分析调用链路Traces监控关键指标从而追踪错误并优化应用性能。这样的工具非常强大它能让我清晰地看到 AI 的每一次思考、每一次工具调用 。但是缺少根因定位比如能够分析错误链路如工具调用失败→Token超限→LLM超时。可能大模型调用发生错误或者停止了但LangSmith 里的 AI Trace 一片祥和所有步骤都是绿色的而我可能需要猜测这一次是不是token超限了。另外一个想法是不是可以将 AI Trace 与业务观测体系融合实现真正的端到端、一站式可观测。对于一个开源ai可观测来说这可能不是必须的但对于应用管控来说我觉得是可以考虑的。Prompt 工程的“炼丹术”困境如果说 Agent 的代码是骨架那 Prompt 就是灵魂。但这个“灵魂”的注入过程带着一点玄学。最佳实践的缺失与高昂的试错成本 OpenAI 的最佳实践https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api给了很多好的指导比如提供清晰指令、给出示例等。但具体到我的场景“什么样的结构才是最省 Token 且信息量最高的”“Few-shot 示例应该怎么说明”这些问题没有标准答案全靠一次次尝试 。而每一次尝试都是时间、精力、token的消耗。版本管理的噩梦 我曾经为了修复一个因为env_file路径解析错误导致的 Bad Case精心修改了prompt。结果这个 Case 跑通了但另外五个原本正常的 Case 全都挂了AI 开始在其他地方产生幻觉。这种“牵一发而动全身”的效应让 Prompt 的迭代和回归测试变得异常困难。想要一个能够清晰进行对比每一次输出结果的prompt调试工具科学的版本管理和 A/B 测试框架。可解释性的黑洞 我改了 Prompt 里的一个词Agent 的行为就变了。但为什么是哪个词、哪个句子、哪个示例在起作用它的权重是多少这种解释性的缺失让我们在调优时更像是在“炼丹”充满了偶然性和不确定性。AI的“不确定性”我把模型的temperature设为0希望能获得确定性的输出 。但在复杂的推理任务中即使temperature为0模型在不同时间点对完全相同的输入也可能给出细微差别甚至完全不同的推理路径。在需要精确输出的工程场景下这种不确定性是致命的。我们该如何设计系统来拥抱 AI 在“分析、发散”阶段的“有益的不确定性”同时又能在“生成、收敛”阶段约束其行为获得“可靠的确定性”这或许是未来 Agent 需要解决的核心哲学命题。其他这次探索除了在 Agent上的思考还有一些需要复盘的东西。一个项目拿到手要先做设计切忌东一榔头西一榔头。在面对 AI 这种充满不确定性的新技术时被“先跑起来看看”的冲动所支配。急于看到 AI 调用的神奇效果却忽略了对整个工作流的顶层设计。结果就是AI 的行为像一个无头苍蝇修补工作也变得支离破碎。越是面对不确定的技术就越需要一个确定性的工程设计作为锚点。关于学会做减法也学会做加法。做减法指的是分解复杂问题简化方案从最小可行方案开始。当试图构建一个无所不能、能处理所有异常的“超级 Agent”时很快就发现这是一个非常困难的任务。这时就要做减法承认 AI 的局限性将大的目标分解。这是在资源和时间有限的情况下的选择。做加法指的是打破工具和方法的门户之见用一种开放和务实的心态组合一切可用的资源。最终的目标只有一个让问题被解决让项目能落地。结语这个探索其实才刚刚开始现在的认知可能是片面的尝试也可能是不到位的。再加上AI相关技术的快速发展也许接下来会推翻今天的一些想法但是目标是确定的——解决工程问题让项目最终可靠地落地。不管是什么样的方法或是范式它们都只是工具箱中的选项。我们的任务就是在理解这些工具的边界和特性的基础上遇到问题分析问题并用最恰当的方式去解决问题。以上均是在探索开源应用快速部署上对Agent的探索这里也提前做一个预告阿里云EDAS产品将于9月底对首页进行改版推出“开源项目一键部署”应用首页敬请关注如何学习AI大模型我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】第一阶段从大模型系统设计入手讲解大模型的主要方法第二阶段在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段以SD多模态大模型为主搭建了文生图小程序案例第七阶段以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。1.AI大模型学习路线图2.100套AI大模型商业化落地方案3.100集大模型视频教程4.200本大模型PDF书籍5.LLM面试题合集6.AI产品经理资源合集获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设规划方案.pptwordpress原生app

Kotaemon门店运营助手:连锁企业知识统一管理 在一家拥有数百家门店的连锁咖啡品牌中,新员工入职第三天就遇到了棘手问题:“顾客拿着优惠券却无法核销,系统提示‘活动未生效’。”他翻遍培训手册、群聊记录和内部Wiki,依…

张小明 2026/1/8 1:30:59 网站建设

化妆品网站系统规划将wordpress主题改为插件

敏捷开发常见误区与应对策略 1. 推广敏捷开发的要点 推广敏捷开发并非直接推销,而是倾听、提供替代解决方案,并展示敏捷团队的卓越成果。在向团队介绍敏捷时,成员通常会反对会议数量过多、进行粗略估算、认为架构规划不足以及需要团队集中办公等问题。同时,要留意隐藏的反…

张小明 2026/1/6 1:49:37 网站建设

网赌赢了钱被网站黑了需要怎么做佛山网站搜索引擎优化

搭建 SQL Server 助力 SharePoint 运行 在搭建 SharePoint 环境时,SQL Server 是至关重要的后端数据库,它为 SharePoint 存储大部分内容。下面将详细介绍如何在家庭实验室环境中安装和配置 SQL Server。 1. SQL Server 基础认知 SQL Server 作为 SharePoint 的强大后盾,是…

张小明 2026/1/6 4:04:23 网站建设

深喉咙企业网站模板长沙网站排名公司

Pyenv与Miniconda对比:哪种Python管理工具更适合AI开发? 在现代人工智能开发中,一个常见的痛点并非模型结构设计或训练调优,而是——“为什么我的代码在同事机器上跑不通?” 这个问题背后,往往是 Python …

张小明 2026/1/7 2:35:40 网站建设

19互动网站建设菜鸟教程网站是怎么做的

JAVA通过高并发架构、微服务拆分、智能算法与全终端适配,为自助羽馆线上预约系统提供稳定、高效的技术支撑,实现“30秒定位场馆-1分钟完成预约-到场扫码即入”的无缝体验,助力场馆运营降本增效,用户运动自由触手可及。 以下是具体…

张小明 2026/1/3 11:55:33 网站建设

想制作一个网站怎么来做仿制型模板网站

一.引擎安装目录问题问题描述:如图所示,若两个版本的Unity安装到同一目录,会导致用2019版本创建的项目打开后始终为2022版本的问题正确做法:将不同版本的unity安装到不同目录

张小明 2026/1/3 7:37:03 网站建设