Agent 产品化的项目复盘:从技术 Demo 到可交付产品的十个关键决策
Agent 产品化的项目复盘从技术 Demo 到可交付产品的十个关键决策一、引言做技术的人容易陷入一个误区把 Demo 跑通就当成了项目完成。去年参与过一个 Agent 产品的完整交付周期让我深刻认识到从一段能跑的 Python 脚本到客户愿意付费的产品中间隔着的不是代码量而是十个需要反复权衡的工程决策。这篇文章是对那个项目的复盘不谈算法创新只谈落地过程中的真实取舍。项目背景不算复杂为一家中型企业的客服部门构建一个智能工单分派 Agent。它需要理解用户意图、匹配历史相似工单、推荐处理方案给人工坐席。技术栈上我们用 LangChain 做 Agent 编排FastAPI 做服务层前端一个轻量 Vue3 面板做坐席交互。听起来很标准的 LLM 应用但真正扎进去才发现Demo 和产品的差异不在模型能力上而在工程基础设施。下面按照决策的先后顺序逐一复盘。二、十个关键决策的复盘决策一Agent 架构选型——ReAct 还是 Plan-and-ExecuteDemo 阶段用 ReAct 模式跑得很流畅推理-行动循环能处理大多数单步查询。但上了真实业务数据后问题暴露了一个工单分派可能需要查客户历史记录、查产品知识库、查 SLA 规则、生成推荐——这四步如果在单一 ReAct 循环里串行延迟直接飙到 15 秒以上。最终选了 Plan-and-Execute ReAct 的混合模式先用一个轻量模型做计划分解把复杂任务拆成子任务列表再用 ReAct 执行每个子任务中间结果通过共享上下文传递。# 计划生成阶段的 Prompt 模板 PLAN_PROMPT 你是一个工单分派计划生成器。给定以下工单信息请将处理流程分解为步骤列表。 每个步骤必须包含步骤名称、所需工具、预期输出。 工单内容{ticket_content} 客户历史{customer_context} 请严格按 JSON 格式输出 [ {step: 意图识别, tool: intent_classifier, output: intent_label}, {step: 历史匹配, tool: similarity_search, output: top5_tickets}, ... ] 这个决策的核心收益不是准确率提升而是可观测性。计划步骤拆开后每一步的延迟、成功率、异常都可以独立监控出问题时能快速定位到具体阶段。决策二Prompt 管理——代码内嵌还是配置化Demo 时所有 Prompt 硬编码在代码里改一个字就要重新部署。产品化后 Prompt 迭代频率远超代码变更频率而且不同客户可能有不同的 Prompt 变体。方案是建一个 Prompt 管理中心用 YAML 文件管理 Prompt 模板支持变量注入和版本控制。# prompts/ticket_assignment/v2.1.yaml version: 2.1 system: | 你是一个{domain}领域的工单分派助手。 当前角色{agent_role} 处理规则 {rules} **重要**如果置信度低于0.6需要标记为需人工确认。 user_template: | 工单ID{ticket_id} 客户等级{customer_level} 问题描述{description} 请完成以下步骤 1. 识别问题类别 2. 匹配历史相似工单至少3条 3. 推荐处理方案配合一个简单的 Python 加载器import yaml from pathlib import Path from string import Template class PromptLoader: def __init__(self, base_path: str prompts): self.base Path(base_path) self._cache {} def load(self, name: str, version: str latest) - dict: cache_key f{name}:{version} if cache_key not in self._cache: file_path self.base / name / f{version}.yaml if not file_path.exists(): raise FileNotFoundError(fPrompt {name}:{version} not found) with open(file_path) as f: self._cache[cache_key] yaml.safe_load(f) return self._cache[cache_key] def render(self, name: str, variables: dict, version: str latest) - tuple[str, str]: prompt self.load(name, version) system Template(prompt[system]).safe_substitute(variables) user Template(prompt[user_template]).safe_substitute(variables) return system, user决策三工具调用的可靠性保障Agent 的灵魂是工具调用但也是出错最多的地方。知识库检索接口偶尔超时、数据库连接池耗尽、第三方 API 限流——这些在 Demo 阶段一个 try-catch 就能兜底但产品里必须建立系统性的容错机制。核心策略三板斧超时控制 重试退避 降级兜底。import asyncio from typing import Optional, Callable, Any from functools import wraps class ToolExecutor: def __init__( self, timeout: float 10.0, max_retries: int 2, base_delay: float 1.0 ): self.timeout timeout self.max_retries max_retries self.base_delay base_delay async def execute( self, tool_fn: Callable, args: tuple (), kwargs: dict None, fallback: Any None ) - dict: kwargs kwargs or {} last_error None for attempt in range(self.max_retries 1): try: result await asyncio.wait_for( tool_fn(*args, **kwargs), timeoutself.timeout ) return {status: success, data: result, attempts: attempt 1} except asyncio.TimeoutError: last_error timeout except Exception as e: last_error str(e) if attempt self.max_retries: delay self.base_delay * (2 ** attempt) await asyncio.sleep(delay) return { status: fallback, data: fallback, error: last_error, attempts: self.max_retries 1 }决策四上下文窗口管理Agent 对话越长上下文窗口消耗越大不仅成本上升推理质量也会下降。真实场景中一个工单处理可能涉及 10 轮以上的交互。采用滑动窗口 摘要压缩策略保留最近 5 轮完整对话更早的交互自动压缩为摘要关键信息客户ID、工单号、分类结果进入结构化状态from dataclasses import dataclass, field from typing import List dataclass class ConversationState: ticket_id: str customer_id: str intent: str unknown confidence: float 0.0 resolved_step_ids: List[str] field(default_factorylist) key_findings: List[str] field(default_factorylist) class ContextManager: MAX_RECENT_TURNS 5 def __init__(self, summarizer): self.summarizer summarizer self.state ConversationState() self.history [] async def add_turn(self, role: str, content: str) - None: self.history.append({role: role, content: content}) if len(self.history) self.MAX_RECENT_TURNS * 2: old_turns self.history[:-self.MAX_RECENT_TURNS * 2] summary await self.summarizer.summarize(old_turns) self.history [{role: system, content: f历史摘要{summary}}] \ self.history[-self.MAX_RECENT_TURNS * 2:] def build_context(self) - List[dict]: state_desc f当前状态{self.state.__dict__} return [ {role: system, content: state_desc}, *self.history ]决策五评估体系Demo 阶段靠感觉判断 Agent 好不好用产品化后必须有量化指标。建立了三层评估体系工具级每次工具调用的成功率、P50/P95 延迟任务级工单分类准确率、方案推荐命中率业务级人工坐席采纳率、处理时长缩减比例每一层对应不同的告警阈值和优化策略。决策六到十简表考虑到篇幅剩余五个决策以要点形式复盘决策核心问题最终方案关键教训六、多租户隔离不同客户的数据和配置隔离数据库级隔离 Prompt 模板级别隔离不要试图用代码逻辑区分租户七、流式响应长任务必须有进度反馈SSE 推送步骤进度前端状态机驱动WebSocket 太重SSE 够用且运维简单八、成本控制LLM API 费用增长不可控分级模型策略规划用小模型、执行用大模型90% 的任务可以用小模型处理九、权限与安全Agent 可以执行哪些操作白名单机制工具调用前校验权限范围永远不要给 Agent 写数据库的权限十、部署与运维如何做到零停机更新蓝绿部署 Prompt 热加载Prompt 变更不需要重启服务三、架构总览整个系统的最终架构如下四、关键踩坑记录坑一ReAct 的幻觉循环。早期版本里 Agent 有时会陷入调用工具→得到空结果→再次调用同一工具的死循环。解法是加最大步数限制和一个简单的去重检测——连续两次相同工具调用直接中断返回兜底方案。坑二Prompt 版本管理混乱。多人协作时经常发生 A 改了 Prompt、B 不知道、线上出现不一致。后来强制要求所有 Prompt 变更走 PR 流程并且部署脚本自动比对线上版本与仓库版本的差异。坑三成本失控的恐慌。上线第一周GPT-4 API 费用超出预期 3 倍。排查后发现是某些边缘 Case 触发了过长的 Agent 推理链。通过加 Token 消耗预算上限和模型降级策略成本回归到可控范围。五、结语从 Demo 到产品的路本质上是在可靠性、成本、体验三者之间找平衡。技术方案没有绝对的对错关键在于在特定场景和资源约束下做出合适的取舍。十个决策复盘下来最核心的一点是越早建立可观测性和评估体系越能避免凭感觉做决策。数据会告诉你哪里该投入、哪里可以妥协。Agent 产品化不是技术的终点而是工程化的起点——这一课写在这个项目的每一个深夜调试和每一次线上事故里。本文基于真实项目经验撰写技术栈版本Python 3.12 / FastAPI 0.110 / LangChain 0.1 / Vue 3.4

相关新闻

提示词微调无效?你缺的不是经验,而是这8项可量化的对比分析维度

提示词微调无效?你缺的不是经验,而是这8项可量化的对比分析维度

更多请点击: https://intelliparadigm.com 第一章:提示词微调失效的典型表征与归因误区 当提示词微调(Prompt Tuning)在实际部署中表现异常时,工程师常误将现象归因于模型容量不足或训练步数不够,而忽视更…

2026/7/26 18:21:12阅读更多 →
【AI响应式设计适配黄金标准】:W3C新草案未公开的5项兼容性阈值+浏览器内核AI预测模型源码解析

【AI响应式设计适配黄金标准】:W3C新草案未公开的5项兼容性阈值+浏览器内核AI预测模型源码解析

更多请点击: https://intelliparadigm.com 第一章:AI响应式设计适配黄金标准的演进与范式重构 传统响应式设计依赖媒体查询与断点预设,已难以应对AI驱动的动态设备谱系、实时上下文感知与个性化渲染需求。新一代AI响应式设计不再以“像素”或…

2026/7/26 18:21:12阅读更多 →
【万字文档+源码】 基于SpringBoot+Vue社区生鲜团购系统-可用于毕设-课程设计-练手学习-学习资料分享

【万字文档+源码】 基于SpringBoot+Vue社区生鲜团购系统-可用于毕设-课程设计-练手学习-学习资料分享

基于 SpringBootVue 社区生鲜团购系统一、项目概述 1.1 项目背景 随着社区经济快速发展,社区生鲜团购模式成为居民日常采购果蔬生鲜的主流方式。传统生鲜购买渠道存在采购耗时、价格不透明、配送不便等问题。为打通生鲜供货商、社区团长、社区居民三者之间交易链路…

2026/7/26 18:21:12阅读更多 →
技术指南:如何通过Vulkan计算API进行GPU显存稳定性测试

技术指南:如何通过Vulkan计算API进行GPU显存稳定性测试

技术指南:如何通过Vulkan计算API进行GPU显存稳定性测试 【免费下载链接】memtest_vulkan Vulkan compute tool for testing video memory stability 项目地址: https://gitcode.com/gh_mirrors/me/memtest_vulkan 在现代GPU应用开发、深度学习训练和游戏渲染…

2026/7/26 19:57:33阅读更多 →
如何3步搭建开源STM32 NAND闪存编程器:完整硬件与软件指南

如何3步搭建开源STM32 NAND闪存编程器:完整硬件与软件指南

如何3步搭建开源STM32 NAND闪存编程器:完整硬件与软件指南 【免费下载链接】nand_programmer NANDO - NAND Open programmer 项目地址: https://gitcode.com/gh_mirrors/na/nand_programmer 还在为NAND闪存芯片的读写编程发愁吗?想要一个既专业又…

2026/7/26 19:57:33阅读更多 →
免费开源RAW图像处理软件darktable:从入门到精通的完整指南

免费开源RAW图像处理软件darktable:从入门到精通的完整指南

免费开源RAW图像处理软件darktable:从入门到精通的完整指南 【免费下载链接】darktable darktable is an open source photography workflow application and raw developer 项目地址: https://gitcode.com/GitHub_Trending/da/darktable 还在为昂贵的图像处…

2026/7/26 19:57:33阅读更多 →
Grok 4.5全平台上线:AI大模型多端配置与实战应用指南

Grok 4.5全平台上线:AI大模型多端配置与实战应用指南

Grok 4.5 全平台上线:从 X 平台到网页版、移动端的完整体验指南近期,AI 大模型领域迎来重要更新——Grok 4.5 正式上线 X 平台并全面支持网页版和移动端。作为一名长期关注 AI 技术发展的开发者,我在第一时间进行了深度体验和测试&#xff0c…

2026/7/26 19:57:33阅读更多 →
AI架构师如何构建主动学习体系驱动工业创新

AI架构师如何构建主动学习体系驱动工业创新

1. 项目背景与核心价值在数字化转型浪潮中,AI应用架构师正面临前所未有的机遇与挑战。这个角色不同于传统的软件架构师,需要同时具备技术深度与产业洞察力。我最近主导的几个工业AI项目让我深刻体会到:被动等待技术更新已经行不通了&#xff…

2026/7/26 19:57:33阅读更多 →
AI原生应用体验优化:实时响应与多模态交互实践

AI原生应用体验优化:实时响应与多模态交互实践

1. AI原生应用体验优化的核心挑战在2023年的AI应用爆发潮中,我们发现一个有趣的现象:超过67%的用户在首次使用AI产品后的7天内流失。这个数字背后暴露的正是当前AI原生应用面临的最大痛点——技术先进性与用户体验之间的断层。作为深度参与过12款AI产品设…

2026/7/26 19:55:33阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/25 23:03:25阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/26 19:05:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/26 19:05:21阅读更多 →