引言
2024年春天,我第一次在公司听到"AI Agent"这个词。PPT里,这个带着金属光泽的名词在投影幕布上闪烁,像一颗来自未来的种子。当时的我一脸不屑一顾,绝不会想到,这颗种子会在短短8个月里,在普通人的生活中生长出如此茂盛的枝蔓。
而今天,在火山引擎的「扣子」平台上,我的第一个AI Agent终于诞生了。当我看着这个能自动推荐深夜食堂、会安慰加班用户的美食助手时,突然意识到:AI Agent的本质,是一个具备环境感知、自主决策、持续进化能力的数字生命体。而扣子平台,正在揭开这种魔法背后的工业逻辑。
题外话:我在 coze 上发布的第一个AI Agent,欢迎点击 饭团喵星人 解锁美食推荐,目前在coze可以通过“100份美食推荐”搜索到。
关于如何使用扣子,整个操作流程如下:
创建 bot > 填写名称和描述 > 编排 > 调优 > 发布
架构介绍
AI Agent 技术架构图
扣子的AI Agent架构可以分为五层(图1)。
架构核心模块
模块流程
下面以美食智能体为例来分析核心模块的具体流程,整个流程从用户->感知->推理->决策->行动->数据,输出的数据来支撑数据资产。
- 知识点解析,数据资产: 通过整个流程持续积累、结构化存储,并能够为后续任务提供价值支撑的核心数据资源。这些数据不仅是系统运行的结果,更是驱动智能体持续优化和个性化服务的核心燃料。以美食推荐Agent为例,数据资产的具体组成为 直接输入&隐性反馈:
# 结构化存储的示例(JSON格式)
{
"user_profile": {
"id": "U123456",
"dietary_restrictions": ["素食", "花生过敏"], # 显式输入
"preference_embedding": [0.76, -0.23, ...], # 隐性特征向量
"behavior_logs": [
{"action": "收藏餐厅", "target": "Green Safe"},
{"action": "跳过推荐", "target": "川菜"}
]
}
}
- 显性数据:用户直接提供的口味、禁忌、地理位置等
- 隐性数据:点击、停留时长、跳过等行为埋点
- 环境数据:当前时间、天气、设备传感器信息(如移动速度判断用餐紧急度)
模块解析
| 架构组件 | 技术实现 | 案例场景 |
|---|---|---|
| 大模型Reasoning | 火山模型+LoRA微调 | 将用户"随便吃点"的模糊需求,解析为「人均100-150元」「步行15分钟内」「有网红甜品」的精确需求 |
| 组件编排 | Langchain式DAG调度器 | 协调知识库查询(过敏源检查)、实时插件(等位时间API)、数据库检索(用户历史评分)的优先级排序 |
| 插件体系 | OpenAI Plugin标准+自定义Adapter | 餐厅导航插件:将推荐结果转化为高德地图AR导航路线 |
| 工作流引擎 | 状态机+规则引擎 | 处理复杂场景: |
| 用户选择困难时触发「二选一助力模式」→ 调用大模型生成对比段子 → 记录选择倾向 | ||
| 知识库 | 向量检索+图神经网络 | 检索相似用户案例: |
| "对海鲜过敏却喜欢日料" → 推荐寿喜烧/鳗鱼饭等非海鲜日料 | ||
| 触发器 | 多模态事件监测 | 当用户消息包含"纠结""选择困难"关键词时,自动激活决策辅助工作流 |
具体融合路径分析
1. 感知层 → 信息聚合阶段
技术实现细节:
# 伪代码, 多模态特征融合(perception_fusion.py)
def multimodal_fusion(inputs):
# 文本特征提取
text_emb = TextEncoder(inputs['text'])
# 视觉特征提取
img_emb = VisionEncoder(inputs['image'])
# 跨模态对齐
aligned_feature = CrossModalAttention(
query=text_emb,
key=img_emb,
value=img_emb
)
# 特征降维
return DimensionalityReducer(aligned_feature)
对应架构图元素:
- 「信息聚合」节点实现跨模态特征对齐
- 「用户输入」节点接收文本/图片/语音原始数据
2. 认知层 → Acting控制逻辑
决策过程分解:
架构图映射:
- 「工作流」节点处理多步骤任务
- 「知识库」节点提供领域知识支撑
- 「触发器」节点激活特定决策路径
# 伪代码
class CognitiveEngine:
def __init__(self, knowledge_graph):
self.kg = knowledge_graph # 餐饮领域知识图谱
def infer(self, user_intent, entities):
# 知识检索
candidates = self.kg.query(
location=entities["location"],
cuisine_type=entities["cuisineType"]
)
# 约束条件应用
filtered = apply_constraints(candidates, entities["constraints"])
# 个性化排序
ranked = self._personalize_ranking(filtered, user_profile)
return ActionPlan(ranked[:3], reasoning_logs)
def _personalize_ranking(self, candidates, profile):
# 混合排序策略:协同过滤 + 实时特征
return sorted(candidates, key=lambda x:
x.rating * 0.6 +
profile.similarity_to(x.features) * 0.4
)
3. 行动层 → 任务执行
实现工具使用能力的核心在于扣子的API编排系统,执行器工作流程:
# 伪代码, 插件执行器(plugin_executor.py)
class PluginExecutor:
def execute(self, action_type):
if action_type == "文生图":
return StableDiffusionAPI.generate()
elif action_type == "联网查询":
return WebCrawler.fetch_real_time_data()
elif action_type == "数据记录":
return VectorDB.upsert()
# 数据库操作示例
def update_user_profile(user_id, preference):
with VectorDB.connect() as db:
db.execute(
"UPDATE profiles SET pref=? WHERE uid=?",
(json.dumps(preference), user_id)
)
性能保障:
- 插件执行超时自动熔断(阈值800ms)
- 数据库事务ACID特性保障
Langchain 式技能编排:可解释的业务逻辑
扣子的技能链(Skill Chain)实现参考Langchain设计理念,以「猜菜名」游戏为例(图3):
关键组件实现:
# 游戏状态管理器(game_state.py)
class GameStateMachine:
def __init__(self):
self.states = {
"INIT": self._handle_init,
"CLUE_GEN": self._generate_clue,
"ANSWER_CHECK": self._validate_answer
}
def transition(self, current_state, user_input):
return self.states[current_state](user_input)
def _handle_init(self, input):
dish = select_dish_based_on(user_history)
return ("CLUE_GEN", {"target_dish": dish})
def _generate_clue(self, context):
clue_prompt = f"用不超过5个emoji描述{context['target_dish']}"
return ("ANSWER_CHECK", {"clue": llm_generate(clue_prompt)})
设计模式:有限状态机(FSM)实现多轮对话管理
人设与回复逻辑:人格化AI的工程实现
在扣子中,人格控制系统通过角色参数矩阵实现(表1):
表1 人设控制系统参数矩阵
| 参数维度 | 技术实现 | FoodieMaster配置值 |
|---|---|---|
| 语气风格 | 风格迁移模型(StyleBERT) | 萌系+15%幽默因子 |
| 情感响应强度 | 情感计算层(AffectNet) | 共情系数β=0.83 |
| 主动引导倾向 | 强化学习策略网络 | 探索率ε=0.21 |
回复生成算法:
// 伪代码
def personality_response_generation(input_text):
# 人格权重注入
base_prompt = f"[萌系角色设定] 用户说:{input_text}"
# 控制生成稳定性
return llm.generate(
prompt=base_prompt,
do_sample=True,
top_p=0.85,
typical_p=0.92,
repetition_penalty=1.15
)
核心参数解析:
- top_p(核采样):控制生成多样性
- typical_p(典型性采样):平衡创意与可控性
- repetition_penalty:防止重复响应
结语:AI Agent的初步探索
由于初次尝试AI Agent创建,虽然业务中已经很了解,但我的心情还是不一样的(一种是创造者的心情,一种是打工人的心情)。我们总会意识到:AI Agent正在突破工具范畴,向着具备自主认知能力的伙伴进化。这种进化不是魔法,而是建立在对混合智能架构、可解释工作流、人格建模等技术的系统化工程实现之上。2025年的AI Agent,正在用代码重新定义「智能」的边界。