Agent感知模式的情景化联想应用

📋 本文目录


一、前言

1.1 整合的价值

把5个工具整合起来:

  • 工具链:按顺序执行,处理完整流程

  • Agent:智能选择工具,灵活应对

  • 上下文持久化:记住用户情境

1.2 你将学到什么?

  • ✅ 如何构建上下文工具链

  • ✅ 如何整合到Agent

  • ✅ 上下文感知的实际效果

  • ✅ 与其他模块的配合


二、工具链整合

2.1 完整流程

复制代码
输入内容
    ↓
[工具1] context_collector → 收集上下文
    ↓
[工具2] context_modeler → 建模上下文
[工具3] context_reasoner → 推理情境
[工具4] situational_responder → 生成响应
    ↓
[工具5] context_manager → 管理上下文

2.2 运行演示

复制代码
cd 05_context_awareness
python context_chain_demo.py

2.3 生成的输出文件

  • output_context.txt - 上下文信息

  • output_response.txt - 生成的响应

  • output_analysis.txt - 情境分析


三、Agent整合

3.1 构建上下文感知Agent

复制代码
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate
from langchain.memory import ConversationBufferMemory

# 1. 初始化LLM
llm = ChatOpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama",
    model="qwen2.5:3b-instruct",
    temperature=0.7
)

# 2. 注册工具
tools = [
    context_collector,
    context_modeler,
    context_reasoner,
    situational_responder,
    context_manager
]

# 3. 构建提示模板
prompt = ChatPromptTemplate.from_messages([
    ("system", """你是一个上下文感知的智能助手。
你需要理解当前的情境,包括对话历史、用户情况、环境因素和任务状态,
然后给出最合适的回答。"""),
    ("placeholder", "{chat_history}"),
    ("user", "{input}"),
    ("placeholder", "{agent_scratchpad}")
])

# 4. 创建Agent
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=False,
    handle_parsing_errors=True,
    memory=ConversationBufferMemory(return_messages=True)
)

3.2 运行Agent

复制代码
cd 05_context_awareness
python context_agent_demo.py

3.3 Agent特殊命令

  • context - 查看当前上下文

  • user - 查看用户信息

  • env - 查看环境信息

  • task - 查看任务状态

  • clear - 清除上下文


四、效果演示

4.1 无上下文 vs 有上下文(真实运行结果)

无上下文感知:

复制代码
用户: 我刚刚网购了一台笔记本电脑
用户: 我喜欢安静、健康的餐厅

用户: 它什么时候到?
AI: 我不太理解您说的"它"指什么,请您具体说明一下
    (因为没有上下文,不知道对话历史和用户偏好)

用户: 给我推荐餐厅
AI: 我不太理解您说的"它"指什么,请您具体说明一下
    (因为没有上下文,不知道对话历史和用户偏好)

有上下文感知:

复制代码
============================================================
上下文感知Agent - 交互式对话
============================================================

指令:
  - 直接输入内容与助手对话
  - context  - 查看当前上下文
  - user     - 查看用户信息
  - summary  - 查看上下文摘要
  - clear    - 清除上下文
  - quit/exit- 退出

============================================================
============================================================
上下文感知Agent - 初始化中...
============================================================
[OK] 上下文感知Agent初始化完成!


开始对话吧!

> 你好,我准备去看周杰伦的演唱会

用户: 你好,我准备去看周杰伦的演唱会
助手: 你好!观看周杰伦的演唱会一定非常棒呢!你打算什么时候去呢?我可以帮你查询一下附近的场馆和时间安排哦。

> 今天天气怎么样

用户: 今天天气怎么样
助手: 你好!今天是2026年5月27日的晚上,我这里没有查到具体天气的信息哦。你可以查看一下当地的天气预报,或者直接打开手机上的天气应用查看最新的天气情况。希望你今晚能有个好心情!

> 演唱会你觉得怎么样

用户: 演唱会你觉得怎么样
助手: 你好!周杰伦的演唱会一定非常精彩呢!音乐和表演都是他多年来的积累和心血,你肯定不会失望的。不过关于你的问题,我没有具体的信息来回答,因为我只知道你想去看他的演唱会了。你可以告诉我更详细一些,比如你计划在哪一天去听现场吗?我可以帮你查一下那晚的天气情况哦。

4.2 上下文感知重点说明

从上面的真实交互可以看出Agent的上下文感知能力:

  1. 记忆用户意图:用户说"你好,我准备去看周杰伦的演唱会" → 被记住了

  2. 对话连贯性:后续对话中助手记得"我只知道你想去看他的演唱会了" → 体现了记忆功能

  3. 时间感知:助手知道"今天是2026年5月27日的晚上" → 环境上下文

  4. 个性化回复:基于之前的信息继续提供相关建议

4.3 对比总结

维度 无上下文 有上下文
理解代词 不知道"它"指什么 知道是笔记本电脑
用户偏好 不知道 知道喜欢安静健康
响应质量 模糊不清 个性化精准

五、总结与展望

5.1 模块总结

模块 说明
上下文收集 多源信息收集
上下文建模 结构化表示
上下文推理 智能推断
情境响应 个性化回复
上下文管理 生命周期管理

📚 参考资源

资源 链接
LangChain Context Docs https://python.langchain.com/docs/modules/memory/context/

点赞 + 关注,更新不迷路!🚀

相关推荐
浅安的邂逅3 小时前
261020-DeepSeek 双线出击:V4.1-Flash 登顶 Agent Arena,推理框架 DeepInfer 全面开源
人工智能·开源·deepseek·ai日报·产品发布/更新
龙亘川3 小时前
电子印章系统对接管理业务建模:从需求申请、接口开发到监控运维的全流程闭环
大数据·运维·人工智能·智慧城市·开源软件
话梅姐姐呀3 小时前
TCP/IP 架构各层的协议概述
人工智能·物联网·网络协议·tcp/ip·iot
tq10863 小时前
对齐之后:理解、延迟与截断
人工智能
stereohomology3 小时前
我对DeepSeek4.1flash能力变化的感觉和第三方评估相当
人工智能·学习·llm
灵动的艺术3 小时前
如一 Agent 架构解读(一):数字分身的执行模型——Run、Turn 与四个时间尺度
人工智能·架构·agent
远翔调光芯片^138287988723 小时前
单节锂电自行车车灯如何实现稳定亮度?FP6291 升压 + IP2332N 充电管理方案分享
人工智能·单片机·嵌入式硬件·物联网·智能家居
lambo mercy3 小时前
核心组件——少样本提示few-shotting、示例选择器
人工智能
程序猿阿森3 小时前
深入解析 NLI:RAG 与大模型防幻觉的“最后一道防线”
前端·人工智能·算法
2601_965448874 小时前
让AI写开源项目的产品介绍+宣传片脚本,实测效果
人工智能