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/

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

相关推荐
江畔柳前堤10 分钟前
云原生 × AI 全景图谱:从 Kubernetes 到 Agent 基础设施的一次认知跃迁
人工智能·分布式·gpt·云原生·kubernetes·原型模式·agi
大模型码小白19 分钟前
Harness Engineering 驾驭工程:从使用到项目实战
大数据·数据库·人工智能·python·spring
学习日记52528 分钟前
第 5 章:自定义 Skill——把重复操作封装成一键命令
人工智能·ai·prompt
云上工程笔记29 分钟前
AstraFlow + React/Vite:如何用自然语言开发并部署一个 AI 咖啡网站原型
前端·人工智能·react.js
醍醐实验室32 分钟前
长文本外推中的 RoPE Base 调优:从 10,000 到 500,000 的数学底数奥秘
人工智能
搞科研的小刘选手1 小时前
【香港中文大学(深圳)、IEEE主办 | 深圳举办】第六届IEEE能源工程与电力系统国际学术会议(EEPS 2026)
人工智能·电力系统·能源工程·香港中文大学(深圳)·会议推荐
weixin_446260851 小时前
面向编码智能体的「先学测试,再用测试提升修复能力」框架
人工智能
2401_865382501 小时前
政务信息化项目审价的现实意义
大数据·人工智能·政务
lvts_cs1 小时前
汽车零部件产业发展趋势,对地方招商工作带来的影响
大数据·人工智能·汽车
AI云海1 小时前
计算机视觉之YOLO11整体架构、多任务能力
人工智能·计算机视觉·架构