Python 智能体实战:从 0 搭建模块化 Agent 路由系统,落地小龙虾门店运营助手

Python 智能体实战:从 0 搭建模块化 Agent 路由系统,落地小龙虾门店运营助手

给你一个可复现的最小版本:技能拆分、动态工具路由、API 封装、排错与上线建议一次讲清

如果你想做一个不只是会聊天,而是会根据任务自动选工具的 AI Agent,这篇可以直接开工。本文的目标很明确:

  1. 用 Python 搭一个模块化 skill-based agent
  2. 让它支持动态工具路由
  3. 把它落到一个实体行业场景:小龙虾门店运营助手

最终产出不是 PPT,而是一个最小可运行接口:你发一句"给我一条今天午市外卖拉新的文案",系统会先判断该走哪个 skill,再返回结果。先别急着造"全能钢铁侠",工程上更靠谱的做法,往往是先把技能表写得像菜单一样清楚。

工具资源导航

如果你看完这波热点,想顺手把方案跑起来或者把账号环境补齐,这两个入口可以先收藏:

  • API调用:主打各种主流模型接入、稳定转发和低门槛调用。
  • GPT代购:官方渠道GPT PLUS/pro充值,秒到账,可开发票

文末资源导航属于工具信息整理,请结合平台规则和自身需求判断。

一、先看热点:这波 Agent 新闻到底透露了什么

事实描述

  • 2026-05-05 ,MarkTechPost 发布教程,主题是用 Python 构建模块化、基于技能的 LLM Agent 系统 ,核心点是 dynamic tool routing
  • 2026-05-05 ,TechCrunch 报道 CopilotKit 融资 2700 万美元 ,方向是帮助开发者部署 app-native AI agents
  • 2026-05-05 ,TechCrunch 报道 SAP 计划收购德国 AI 初创公司 Prior Labs 并重投,同时对客户 Agent 的可用范围采取更谨慎、有限开放的态度。
  • 2026-05-06 ,Inworld AI 发布 Realtime TTS-2,强调语音模型基于完整音频上下文而不只是文本转写。
  • 2026-05-06,Scientific American 讨论"AI agents 能否替代人类员工",并提到已有创业公司拿这个问题做测试。
  • 2026-05-06 ,世界经济论坛讨论了 agentic AI 可能如何改变"创始人"这个角色的工作方式。

观点分析

这些信息放在一起,指向的不是"聊天机器人 2.0",而是三个更工程化的共识:

  1. Agent 正从单体走向模块化:能力要拆成 skill,不然维护会越来越像面条代码。
  2. Agent 正从演示走向应用内集成:CopilotKit 的融资说明,大家要的不是一个漂浮的 AI 入口,而是能嵌进业务流程的 agent。
  3. 企业落地会更看重治理:SAP 的谨慎态度说明,真正上线时,权限、白名单、审计日志比"模型多聪明"更先被问到。

二、场景定义:为什么我建议先做"小龙虾门店运营助手"

CSDN 读者很多都在找"能不能拿来做副业项目"的切口。与其做一个泛泛的 AI 助手,不如做一个垂直场景的小工具。

这里我们定义一个最小场景:

目标用户 :餐饮门店老板或运营人员
常见任务

  • 回答顾客常见问题:营业时间、口味、配送范围
  • 生成促销文案:午市拉新、社群通知、外卖活动
  • 给出简单运营建议:备货、套餐、转化优化

也就是说,我们只做 3 个 skill:

  • faq
  • promo_copy
  • sales_analysis

这就是模块化的第一步:先缩问题,再做路由

三、技术栈与最小闭环

为了可复现,我建议先用下面这套最小组合:

  • Python 3.11
  • FastAPI:暴露接口
  • requests:调用兼容聊天补全风格的模型接口
  • 一个可用的大模型 API:只负责"路由判断"

安装命令:

bash

pip install fastapi uvicorn pydantic requests

环境变量:

bash

export BASE_URL='你的模型接口基址'

export API_KEY='你的密钥'

export MODEL='你的模型名'

四、步骤拆解:从 skill 到动态路由

第 1 步:先写技能,不要先写"大脑"

很多人一上来就想让模型自动完成一切,结果最后谁都能干一点,谁都干不稳定。正确姿势是:先定义技能边界

python

import os

import json

import requests

from fastapi import FastAPI

from pydantic import BaseModel

def faq(q: str) -> str:

return '门店营业到凌晨 2 点,支持微辣、中辣,外卖可下单。'

def promo_copy(q: str) -> str:

if '外卖' in q:

return '文案:今天午市小龙虾双人餐限时加赠冰饮,适合拼单,外卖下单更省心。'

return '文案:今晚到店点小龙虾套餐,可享限时加菜福利,适合朋友聚餐。'

def sales_analysis(q: str) -> str:

return '建议:优先看午市套餐转化、外卖占比和复购表现。当前示例未直连 POS,所以返回的是运营策略,不直接生成真实报表。'

SKILLS = {

'faq': {

'desc': '回答营业时间、口味、配送、门店基础信息',

'func': faq,

},

'promo_copy': {

'desc': '生成促销文案、社群通知、活动标题',

'func': promo_copy,

},

'sales_analysis': {

'desc': '分析销量、套餐、备货和简单运营建议',

'func': sales_analysis,

},

}

第 2 步:让模型只做"选路",别让它包打天下

这里的大模型只负责一件事:在多个 skill 里选一个最合适的

python

def fallback_route(user_text: str) -> dict:

if any(k in user_text for k in ['营业', '几点', '口味', '配送']):

return {'skill': 'faq', 'reason': '关键词命中 FAQ'}

if any(k in user_text for k in ['文案', '活动', '拉新', '社群', '外卖']):

return {'skill': 'promo_copy', 'reason': '关键词命中营销文案'}

if any(k in user_text for k in ['销量', '备货', '库存', '套餐', '转化']):

return {'skill': 'sales_analysis', 'reason': '关键词命中运营分析'}

return {'skill': 'faq', 'reason': '兜底路由'}

def route_by_llm(user_text: str) -> dict:

skill_text = '\n'.join([f"- {k}: {v['desc']}" for k, v in SKILLS.items()])

prompt = (

'你是一个工具路由器,只能从候选技能中选择 1 个,并严格返回 JSON。\n'

f'候选技能:\n{skill_text}\n'

f'用户问题:{user_text}\n'

'输出格式:{"skill":"技能名","reason":"简短原因"}'

)

复制代码
try:
    resp = requests.post(
        os.environ['BASE_URL'].rstrip('/') + '/chat/completions',
        headers={
            'Authorization': f"Bearer {os.environ['API_KEY']}",
            'Content-Type': 'application/json',
        },
        json={
            'model': os.environ['MODEL'],
            'messages': [{'role': 'user', 'content': prompt}],
            'temperature': 0,
        },
        timeout=30,
    )
    content = resp.json()['choices'][0]['message']['content']
    data = json.loads(content)
    if data['skill'] in SKILLS:
        return data
except Exception:
    pass

return fallback_route(user_text)

第 3 步:封装成 API,变成真正可调用的服务

python

app = FastAPI()

class AskReq(BaseModel):

question: str

@app.post('/ask')

def ask(req: AskReq):

route = route_by_llm(req.question)

result = SKILLS[route['skill']]'func'

return {

'route': route,

'result': result,

}

启动:

bash

uvicorn app:app --reload --port 8000

测试:

bash

curl -X POST 'http://127.0.0.1:8000/ask'

-H 'Content-Type: application/json'

-d '{"question":"给我一条今天午市外卖拉新的文案"}'

一个可能的返回结果:

{

"route": {

"skill": "promo_copy",

"reason": "用户要促销文案"

},

"result": "文案:今天午市小龙虾双人餐限时加赠冰饮,适合拼单,外卖下单更省心。"

}

到这里,你已经有了一个可复现的最小 Agent 闭环:输入问题 → 路由 → 调技能 → 返回结果。

五、调试排错:最常见的坑基本都在这里

1)模型不返回 JSON

解决方法:

  • 路由提示词里明确"只能返回 JSON"
  • temperature=0
  • fallback_route() 兜底

2)路由不稳定,今天选文案,明天选 FAQ

原因通常不是模型太笨,而是skill 描述写得太模糊desc 要避免重叠,例如"处理用户问题"这种描述基本等于没写。

3)运营分析胡说八道

如果没接真实 POS、CRM、库存系统,就不要让它装作知道真实销量。上面的 sales_analysis() 故意只给策略性建议,这是事实边界,也是产品边界。

4)响应变慢

路由本身就是一次模型调用。如果你的场景请求量大,可以做两件事:

  • 高频问题先走关键词路由
  • 只有复杂问题才调用模型路由

六、上线建议:别急着全自动,先做"可控自动化"

结合 2026-05-05 TechCrunch 关于 SAP 的报道,我的建议很明确:企业环境里,Agent 首先要可治理,其次才是可炫技

建议按这个顺序上线:

  1. 内部试运行:先给店长和运营同学用
  2. 白名单技能:只开放 FAQ、文案、基础建议,不要一开始就接支付、退款、真实库存改写
  3. 保留人工确认:活动文案、备货建议先让人点确认
  4. 记录日志:至少保留问题、路由结果、技能输出、耗时

如果你后面要做语音入口,2026-05-06 Inworld AI 发布 Realtime TTS-2 这条新闻也值得参考:语音 Agent 的体验关键不只是"能说话",而是能持续理解上下文。所以别把语音版理解成"给文本套个喇叭",那样很容易做成会说话的复读机。

七、成本与合规注意点

成本

  • 用模型做"路由"而不是整段重写,通常比全量生成更省 token
  • skill 描述尽量短,不要每次塞一大段背景材料
  • 高频 FAQ 尽量缓存

合规

  • 不要把用户手机号、详细订单、支付信息原样塞进提示词
  • 对"备货建议""员工排班"这类可能影响经营决策的内容,加人工审核
  • 给用户明确提示:这是 AI 辅助,不是最终经营结论

Scientific American 在 2026-05-06 讨论"AI agents 能否替代人类员工",这个问题很抓眼球,但对开发者更有价值的角度是:先替代重复流程,再增强人工判断。否则你很容易得到一个看上去很聪明、出了事谁都不敢担责的系统。

八、趋势判断:开发者和副业实践者接下来该怎么做

事实描述

  • MarkTechPost 的教程说明,模块化技能 + 动态路由已经是可操作的工程路径。
  • CopilotKit 融资说明,市场在押注"应用内 Agent",不是孤立聊天框。
  • WEF 讨论 founder 被 agentic AI 改写,说明 AI 正在改变工作分工,而不只是增加一个工具栏按钮。

观点分析

如果你是开发者,下一阶段更值得做的,不是"再做一个通用助手",而是:

  • 垂直场景 agent:餐饮、教育、招聘、客服、销售支持
  • 技能层:路由、记忆、评测、日志、权限
  • 应用内集成:嵌进 CRM、工单、内容后台,而不是停留在 demo 页

如果你想做副业项目,我更建议从"可付费的小功能"切入,例如:

  • 门店 FAQ + 活动文案助手
  • 社群运营回复助手
  • 简单数据分析 + 建议输出助手

先让一个小 skill 稳定赚钱,再考虑扩展成多 skill agent。别一开始就想做全行业超级智能体,那通常是把复杂度和云账单一起点满。

结尾

这几条 2026 年 5 月初的 Agent 热点,放在一起看,其实结论很朴素:Agent 的下一步不是更会聊天,而是更会分工、更能接工具、更容易治理。

今天这套 Python 最小实现,已经足够你做出一个能演示、能测试、能继续扩展的原型。下一步你可以做三件事:

  1. 把 mock skill 换成真实业务数据源;
  2. 给路由结果加评测集,持续优化命中率;
  3. 逐步从文本入口扩展到语音或应用内嵌。

先把一个场景跑通,比讨论"AI 会不会取代所有人"更有生产力。工程世界里,能上线的系统,永远比会上发言更诚实。

相关推荐
tumu_C1 小时前
C++模板:Ret(Arg...)的相关
开发语言·c++·算法
H_unique1 小时前
Trae实现Web UI自动化测试
python·ui·ai编程·trae
小白学大数据1 小时前
新闻爬虫开发实战:Python 搞定新闻网站关键词文章抓取
开发语言·爬虫·python·自动化
m0_733565461 小时前
怎么对MongoDB数据进行批量部分更新_BulkWrite机制与性能优化
jvm·数据库·python
何玺1 小时前
从免费到5088元:拆解字节跳动豆包AI的“收税”逻辑
人工智能
阿Y加油吧1 小时前
吃透 RAG 检索:纯向量短板、BM25 混合检索、RRF 融合与重排序
人工智能·leetcode
qq1180096171 小时前
电力预测大赛经验教训与心得总结
人工智能·深度学习·机器学习
m0_463672201 小时前
如何理解闭包对内存的影响并手动解除引用防止泄漏
jvm·数据库·python