一、为什么跨境电商需要AI Agent?
跨境生意的痛点,做过的都懂:凌晨三点的阿拉伯语询盘没人回、多平台后台切到眼花、库存同步总是慢半拍、广告预算烧得不明不白。这些问题过去靠堆人解决,但人总有极限——时差、语言、疲劳,都是绕不开的坎。
AI Agent的价值恰恰在于打破这些天花板。它能7×24小时在线响应多语言客户,能自主调用API查询库存、同步订单,还能在多轮推理中完成"理解需求→查询数据→执行动作→生成回复"的完整链路。更重要的是,它不再是一个被动的聊天机器人,而是能自主执行复杂任务的数字员工。
这篇文章将从零开始,手把手搭建一个跨境电商AI Agent,重点解决两个核心问题:如何让Agent准确理解用户模糊的业务指令,以及如何让Agent正确调用外部工具完成任务。
二、技术选型:为什么选择LangChain + ReAct?
市面上Agent开发工具不少,Dify/Coze这类低代码平台上手快,但定制能力有限;LangChain生态成熟、扩展性强,适合需要深度定制的企业场景。
我们选用的核心方案:
| Agent框架 | LangChain | 工具链丰富,支持ReAct模式 |
| 大模型 | ChatBedrock/DeepSeek | 可对接跨境业务常用模型 |
| 工具调用 | LangChain Tools | 标准化工具接口,易于扩展 |
| 向量检索 | 可选Chroma/PGVector | 支撑知识库RAG |
Agent的决策模式采用**ReAct(Reasoning + Acting)**范式——模型交替进行"推理→行动→观察"循环,直到得出最终答案。
三、项目实战:从任务理解到工具调用
3.1 定义Agent需要的能力(工具)
跨境电商场景中,Agent至少需要以下几类工具:
from langchain.tools import StructuredTool
from pydantic import BaseModel, Field
from typing import Optional
# 工具1:商品搜索
class ProductSearchInput(BaseModel):
query: str = Field(description="商品关键词,如'4k monitor'")
min_price: Optional[int] = Field(default=None, description="最低价格(美元)")
max_price: Optional[int] = Field(default=None, description="最高价格(美元)")
def search_products(query: str, min_price: int = None, max_price: int = None) –> str:
"""模拟调用电商平台API搜索商品"""
# 实际场景这里对接Amazon/Walmart API
results = [
{"name": "Samsung 28\\" 4K Monitor", "price": 299, "url": "https://…"},
{"name": "LG 27\\" 4K IPS Monitor", "price": 349, "url": "https://…"},
]
# 价格过滤逻辑
if min_price:
results = [r for r in results if r["price"] >= min_price]
if max_price:
results = [r for r in results if r["price"] <= max_price]
return "\\n".join([f"- {r['name']}: ${r['price']}" for r in results])
search_tool = StructuredTool.from_function(
func=search_products,
name="search_products",
description="搜索跨境电商平台的商品信息,支持按价格区间过滤",
args_schema=ProductSearchInput
)
# 工具2:库存查询
class StockCheckInput(BaseModel):
product_id: str = Field(description="商品ID")
def check_stock(product_id: str) –> str:
"""模拟查询库存"""
# 实际对接ERP系统
return f"商品 {product_id} 当前库存: 156件"
stock_tool = StructuredTool.from_function(
func=check_stock,
name="check_stock",
description="查询商品在海外仓的实时库存",
args_schema=StockCheckInput
)
# 工具3:广告预算调整(高阶场景)
# … 类似结构,对接Amazon DSP/广告平台API
3.2 理解任务:Prompt工程 + 意图解析
Agent能否准确理解用户指令,关键在于Prompt的结构化设计和意图定义的清晰度。
参考企业级Agent实践,意图定义应该做到"做选择题、填填空题":
from langchain.prompts import ChatPromptTemplate
AGENT_SYSTEM_PROMPT = """
你是一个跨境电商运营助手,名叫小智。你的职责是:
1. 理解用户的业务需求,识别意图类型
2. 调用合适的工具完成具体操作
3. 返回清晰、可追溯的执行结果
## 意图类型
你必须先识别用户意图,归类为以下之一:
– SEARCH_PRODUCT: 用户想找商品、比价、找替代品
– CHECK_STOCK: 用户想查库存、确认发货时效
– COMPLAINT: 客户投诉、售后问题(需转人工)
– GENERAL: 闲聊、咨询政策等
## 工具调用规则
– 每个工具都有明确的输入参数,参数不全时必须反问用户
– 严禁臆造数据(如虚构商品ID、价格、库存)
– 调用工具后,以友好的格式向用户展示结果
## 示例
用户:"帮我看看有没有1000块以下的4K显示器?"
→ 意图: SEARCH_PRODUCT
→ 调用: search_products(query="4k monitor", max_price=1000)
→ 回复: 展示结果列表
用户:"查一下SKU为M-2024-001的库存"
→ 意图: CHECK_STOCK
→ 调用: check_stock(product_id="M-2024-001")
→ 回复: "SKU M-2024-001 美国仓当前库存156件"
"""
prompt = ChatPromptTemplate.from_messages([
("system", AGENT_SYSTEM_PROMPT),
("human", "{input}"),
("placeholder", "{agent_scratchpad}")
])
3.3 组装Agent执行器
将模型、工具、Prompt组装成可运行的Agent:
from langchain.agents import create_react_agent, AgentExecutor
from langchain_aws import ChatBedrockConverse # 或使用OpenAI/DeepSeek
# 初始化LLM(以AWS Bedrock为例)
llm = ChatBedrockConverse(
model="global.anthropic.claude-sonnet-4-6",
temperature=0.1, # Agent场景建议较低温度,保证决策稳定性
)
# 组装工具列表
tools = [search_tool, stock_tool]
# 创建ReAct Agent
agent = create_react_agent(
llm=llm,
tools=tools,
prompt=prompt,
)
# 创建执行器
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
verbose=True,
max_iterations=5,
handle_parsing_errors=True,
)
# 运行测试
result = agent_executor.invoke({
"input": "我想买个4K显示器,预算1000美金以内,帮我找几款推荐"
})
print(result["output"])
3.4 进阶:多Agent分工应对复杂场景
当工具数量膨胀到50个以上,单Agent模式容易出现"造不准、造的慢"的问题。此时需要拆分为多Agent协作:
# 架构示意:意图识别Agent → 工具过滤引擎 → 推理执行Agent
# 而不是将所有事项塞给一个Agent
class IntentRouter:
"""意图路由层:先轻量分类,再分发到专用Agent"""
def route(self, query: str) –> str:
# 用轻量模型或规则快速判断意图
if "库存" in query or "还有货吗" in query:
return "stock_agent"
elif "价格" in query or "推荐" in query:
return "product_agent"
else:
return "general_agent"
这种架构的优势:专用Agent上下文更精简,工具列表更短,推理更快更准。
四、避坑指南:跨境电商Agent的关键注意事项
4.1 数据质量是基础
AI Agent的效果高度依赖训练和检索数据的质量。如果客服记录混乱、产品信息不完整、API返回的数据格式不一致,再好的Prompt也救不了。建议在上线前完成数据资产盘点:客户咨询记录(至少3个月)、产品信息库、订单物流数据、历史客服QA对。
4.2 成本与预算管理
多轮ReAct推理Token消耗不可忽视。一个包含3次工具调用的任务,可能消耗数千Token。建议:
- 设置单次会话的Token上限
- 高频问题启用语义缓存
- 给每个用户设置每日预算配额
4.3 人机协作,而非替代
Agent处理简单、重复、规则明确的任务;复杂场景(如投诉升级、异常退款)必须转接人工。这个边界需要在意图识别阶段就界定清楚。
五、完整代码示例
以下是一个完整的可运行Demo,演示搜索商品→查库存→推荐下单的完整链路:
# requirements.txt
# langchain>=0.3.0
# langchain-aws>=0.2.0 # 或 langchain-openai
# pydantic>=2.0.0
import os
from langchain.agents import create_react_agent, AgentExecutor
from langchain.prompts import ChatPromptTemplate
from langchain.tools import StructuredTool
from langchain_aws import ChatBedrockConverse
from pydantic import BaseModel, Field
from typing import Optional
# ================== 1. 定义工具 ==================
class SearchInput(BaseModel):
query: str = Field(description="商品搜索关键词")
max_price: Optional[int] = Field(default=None, description="最高价格(美元)")
def search_products(query: str, max_price: int = None) –> str:
"""模拟商品搜索"""
mock_db = [
{"name": "Samsung 28\\" 4K UHD Monitor", "price": 299, "stock": 45},
{"name": "LG 27\\" 4K IPS Monitor", "price": 349, "stock": 12},
{"name": "Dell UltraSharp 27\\" 4K", "price": 429, "stock": 8},
]
results = [p for p in mock_db if max_price is None or p["price"] <= max_price]
if not results:
return "未找到符合条件的商品"
return "\\n".join([f"- {p['name']}: ${p['price']} (库存: {p['stock']}件)" for p in results])
search_tool = StructuredTool.from_function(
func=search_products,
name="search_products",
description="搜索商品,按价格过滤",
args_schema=SearchInput
)
# ================== 2. 定义Prompt ==================
SYSTEM_PROMPT = """
你是跨境电商助手。用户会提出购物需求,你需要:
1. 分析用户意图(找商品/查库存/其他)
2. 如需搜索,调用search_products工具
3. 结果以清晰列表展示
工具: search_products(query, max_price)
调用示例: search_products(query="4k monitor", max_price=1000)
"""
prompt = ChatPromptTemplate.from_messages([
("system", SYSTEM_PROMPT),
("human", "{input}"),
("placeholder", "{agent_scratchpad}")
])
# ================== 3. 创建Agent ==================
llm = ChatBedrockConverse(
model="global.anthropic.claude-sonnet-4-6",
temperature=0.1,
)
agent = create_react_agent(
llm=llm,
tools=[search_tool],
prompt=prompt,
)
executor = AgentExecutor(
agent=agent,
tools=[search_tool],
verbose=True,
max_iterations=3,
)
# ================== 4. 运行 ==================
if __name__ == "__main__":
user_query = "帮我推荐几款1000美元以内的4K显示器"
result = executor.invoke({"input": user_query})
print("\\n=== 最终回复 ===\\n")
print(result["output"])
六、总结
从零搭建跨境AI Agent,核心要抓住三点:
AI Agent不是"万能助手",也不是"智商税"。它最适合的场景是:规则清晰、重复性高、人力成本敏感的业务环节。找准切入点,它就是最好的数字员工。

