定义文案Agent,限制其发散思维

张勇△
2026-06-16 15:55
阅读 770

聊聊中台团队落地AI智能体与视频生成的实战踩坑记录

坐标成都,下午三点,阳光刚好洒在工位上。我戴着降噪耳机,音响里放着告五人的《给你一瓶魔法药水》,手里端着刚泡好的盖碗茶,准备敲点东西。

作为某上市公司技术中台团队的一员,我的日常本来是搞搞基建、写写公共组件,顺便研究下前端动画和交互。毕竟在成都,生活节奏相对舒服,大家都有点“巴适”的心态,写代码也讲究个优雅。但就在上周五晚上快下班时,运营部的产品经理老李突然杀到工位,甩给我一个“智能营销内容生成平台”的需求,要求下个月初必须上线。

当时我看着他那张充满期待的脸,真的想把手里的HHKB键盘砸过去。这哪是提需求,这是要我命啊!但吐槽归吐槽,中台团队的宿命就是给业务兜底。既然躲不掉,不如趁机搞点技术探索,把最近关注的一些AI工具链落地到实际项目里,就当是团队内部的技术练兵了。

老李的需求听起来很“缝合怪”:要一键生成带炫酷交互的H5页面,要有AI生成的无版权配图,后台还得有复杂的文案审核和分发逻辑,最后还得把静态图转成动态的AI视频用来发短视频平台。

面对这种“既要又要还要”的需求,我拉上组里的几个兄弟盘了一下技术选型。前端交互这块,我平时就对动画和交互比较痴迷,这次果断引入了 Lovable。这玩意儿简直是前端福音,通过自然语言就能生成带复杂交互的React组件。图片素材方面,为了避开版权大坑,我们选用了 DALL-E 来生成营销配图。后台那堆复杂的业务逻辑,如果手写各种API调用和状态机,估计头发得掉光,于是我们引入了 CrewAI,用多智能体协作来编排任务。至于最后一步,把生成的静态图变成动态物料,我们直接对接了第三方的 AI视频 生成接口。

想法很丰满,现实很骨感。真正动手的时候,坑是一个接一个。

先说 Lovable。老李要求H5页面要有“丝滑的视差滚动和粒子特效”。我一开始直接用大白话给Lovable提需求,结果它给我生成的页面虽然能跑,但动画卡顿得像PPT,完全不符合我对前端交互的审美。后来我改变了策略,把需求拆解,先让它生成基础DOM结构,然后再用Prompt让它补充 Framer Motion 的具体配置参数,比如明确指定 whileInView 的触发条件,以及 transition 里的 stiffnessdamping 物理弹簧参数。这下生成的代码直接就能用,丝滑度拉满,省了我至少两天的调CSS时间。

接着是 DALL-E 的坑。这玩意儿生成风景和抽象概念没得说,但一到生成“人物”就翻车。有次它给我生成了一张“三个美女喝咖啡”的图,我定睛一看,好家伙,其中一个人长了六根手指,另一个的咖啡杯直接长在了耳朵上。当时真的想顺着网线过去打产品经理。后来我总结了最佳实践:在Prompt里必须加上明确的风格限制,并且尽量让画面主体不超过两个,或者采用背影、侧脸、局部特写来规避人体结构的生成缺陷。

最让我头疼的是 CrewAI。老李要求后台能自动根据热点写文案、审核合规性、然后分发。我一开始只写了两个Agent,一个写手,一个审核。结果这俩货经常陷入死循环,审核Agent疯狂挑刺,写手Agent疯狂重写,API调用费用蹭蹭往上涨,看得我心滴血。

后来我重构了CrewAI的架构,引入了Manager Agent来做任务路由,并且给每个Agent加了严格的Memory和明确的Goal约束。下面是我们优化后的核心配置代码:

from crewai import Agent, Task, Crew, Process

copywriter_agent = Agent(
    role="资深营销文案",
    goal="根据提供的产品卖点,撰写不超过100字的短视频口播文案",
    backstory="你是一个在上市公司摸爬滚打多年的营销老手,懂梗但绝不低俗。",
    verbose=True,
    allow_delegation=False
)

# 定义合规审核Agent
compliance_agent = Agent(
    role="法务合规审核员",
    goal="检查文案是否包含违禁词,并确保没有虚假宣传",
    backstory="你是一个极其严谨的法务,对广告法倒背如流。",
    verbose=True,
    allow_delegation=False
)

# 任务编排
copy_task = Task(
    description="为{product_name}撰写口播文案,突出{key_feature}。",
    expected_output="一段100字以内的口播文案,语气轻松幽默。",
    agent=copywriter_agent
)

review_task = Task(
    description="审核文案的合规性,如果有问题直接修改,不要打回重写。",
    expected_output="修改后的合规文案,或者输出'PASS'。",
    agent=compliance_agent,
    context=[copy_task] # 关键:指定上下文,避免重复生成
)

# 组装Crew
marketing_crew = Crew(
    agents=[copywriter_agent, compliance_agent],
    tasks=[copy_task, review_task],
    process=Process.sequential, # 改为顺序执行,避免死循环
    verbose=2
)

processhierarchical 改成 sequential,并在Task里加上 context 传递,这俩Agent终于不吵架了,执行效率提升了至少三倍。

最后一步是 AI视频 生成。我们选了市面上主流的图生视频API。这里有个大坑:AI视频生成接口通常很慢,如果在前端同步等待,页面早就超时白屏了。我们前端配合后端搞了个WebSocket长连接,结合前端动画做了一个非常炫酷的“AI施法中”的加载进度条。当视频生成完毕,进度条瞬间炸开变成视频封面,老李看到后直呼内行,说这个交互体验绝了。

上线后,这个平台成了运营部的新宠。老李终于不天天催我改需求了,甚至还在部门群里发了个大红包感谢中台团队。

回顾这一个月的折腾,我最大的心得就是:AI工具绝对不是银弹,它们不会自动帮你把代码写得完美无缺。无论是 Lovable 的前端生成,还是 CrewAI 的智能体编排,都需要开发者懂业务、懂底层原理,去精准地“调教”它们。

现在,我又可以戴上耳机,听着歌,在成都舒服的下午继续研究我的前端动画了。至于老李的新需求?让他先排队拿号吧!

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝