一个不能“观察环境”的智能体,只是一个大型提示词。

一个能够“感知状态+基于状态决策”的智能体,才是真正的 Agent

当你开始做真正的智能体系统时,会遇到一个共同痛点:

  • 用户让 Agent 做任务时,它不知道“当前状态是什么”
  • 工作流执行到一半断掉后无法续跑
  • Agent 不知道文件是否已生成、数据是否已准备好
  • Agent 只会“一次性生成”,不会“根据环境变化做动作”
  • Agent 在流程中迷路,搞不清楚下一步是什么

这些根本问题,本质都是: 缺乏环境感知( Environment Awareness)和状态检查(State Checking)。

今天我们把这个问题讲透,给你提供一个可直接用于生产级 智能体的环境感知机制。

1. 什么是“环境感知”?

环境感知指的是:智能体在执行任务前、执行中、执行后,通过观察外部环境来判断:

  • 我现在在哪里?
  • 我应该做什么?
  • 我应该执行哪个工具?
  • 我该继续任务、重试、回滚还是结束?

比如以下场景:

表格 还在加载中,请等待加载完成后再尝试复制

没有这些感知机制,任何多步骤任务都会变得脆弱。

2. 什么是“状态检查”?

状态检查的目标是:

不要让智能体凭空“猜测下一步”, 而要让它基于可观察状态做决策。

具体分为三类:

① 环境状态(Environment State)

外部世界的信息,比如:

  • 文件是否存在?
  • API 是否可用?
  • 目录里是否已经有输出?
  • 搜索结果是否为空?
② Agent 内部状态(Internal State)

智能体自己的状态机器,比如:

  • 当前流程处在哪一步?
  • 哪些工具已调用?
  • 是否有中断?
  • 是否需要回滚?
③ 用户状态(User State)

与用户有关的信息,比如:

  • 用户是否已提供全部参数?
  • 用户是否确认目标?
  • 用户是否中途修改需求?

3. 环境感知 = 工具调用之前的“前置工具”

关键一句话:

环境感知不是能力,而是工具。

它由一组“检查工具(Check Tool)”组成,比如:

  • check_file_exists(path)
  • check_api_status(url)
  • check_text_quality(text)
  • check_model_output_valid(json_schema)
  • check_step_finished(step_id)
  • check_memory(record_id)

这些都是 Agent 的“数学感官”。

4. 环境感知的标准流程

一个 Agent 要执行动作前,必须遵循以下流程:

[Step 1] 读取上下文(memory / cache / db)
         ↓
[Step 2] 观察环境(观察工具)
         ↓
[Step 3] 判断当前状态
         ↓
[Step 4] 推理下一步(LLM)
         ↓
[Step 5] 调用技能 / 工具
         ↓
[Step 6] 记录状态 (memory/state log)

这就是 Agent 的“循环神经系统(feedback loop)”。

5. 具体示例:自动生成日报的智能体

假设你让一个 Agent 自动生成日报:

流程:

1.  检查当天是否已经生成日报
2.  检查数据库是否有当天数据
3.  数据不足 → 生成错误报告
4.  数据存在 → 汇总数据
5.  生成 markdown
6.  写入文件
7.  检查写入是否成功

❌ 没有环境感知的版本:

Agent 会试图直接写日报 → 数据缺失 → 生成错误内容 → 文件重复 → 覆盖旧内容

✔ 有环境感知的版本:

检查今天的输出文件?
    是 → 结束
数据库有数据?
    否 → 写错误报告
    是 → 继续
生成报告
检查报告是否符合 schema?
写入文件
校验文件是否写入成功?

智能体成为一个真正的“自动化机器人”。

6. 如何实现环境感知?(四层架构)

① 最低层:检查工具(Check Tools)

如:

check_file(path)
check_json(json_str)
check_step(step_name)
check_url_status(url)

这些是“传感器”。

② 中间层:状态管理器(State Manager)

职责:

  • 存储当前流程状态(step1 → step2 → step3…)
  • 存储历史状态
  • 记录执行日志
  • 将状态返回给 LLM

就像一个 Redux Store 或 Vuex Store。

③ 上层:状态机(State Machine)

工作流 = 状态机

每个状态有:

  • 进入条件
  • 离开条件
  • 能力(调用哪些 Skill)
  • 可转移状态(next states)

例如:

INIT → CHECK_DATA → ANALYZE → WRITE → VERIFY → DONE
④ 最高层:LLM 决策(Reasoning Layer)

LLM 根据状态推理下一步:

  • 使用哪个 Skill?
  • 是否重试?
  • 是否中断?
  • 是否跳到 fallback?

7. 可以直接使用的 Prompt 模板

环境感知 Prompt

你是一个具备环境感知能力的智能体,你必须先观察再行动。
请根据以下信息决定下一步:
【当前环境状态】
{{environment}}
【当前任务状态】
{{task_state}}
【用户目标】
{{user_goal}}
请严格输出:
是否具备继续执行的条件(yes/no)
2. 如果 yes:下一步应该做什么?调用哪个技能?
3. 如果 no:缺少什么?需要用户补充或需要检查哪些数据?
输出 JSON:
{"can_continue": "...","next_step": "...","next_skill": "...","reason": "..."
}

8. 3 类工程级环境感知模式

模式 1:静态条件检查

适用于:

  • 文件是否存在?
  • 参数是否齐全?
模式 2:动态环境变化检查

适用于:

  • 数据是否更新?
  • API 是否恢复?
  • 用户是否修改目标?
模式 3:循环轮询(持续运行)

流程:

检查环境 → 决定是否运行 → 运行 → 更新状态 → 休眠 → 继续

适用于:

  • 定时自动任务
  • 自动巡检
  • 自动清洗数据
  • 自动代理执行器(autonomous agent)

9. 总结

  • 环境感知 = 智能体的“传感器系统”
  • 状态检查 = 智能体的“自我意识与决策基础”
  • 两者是工作流、自动化、技能系统的地基
  • 生产级智能体必须具备环境感知能力
  • 没有环境感知的 Agent = 脆弱、不可控、不可靠
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐