AI系统测试实践:Tool执行与状态管理(Agent系统最容易出Bug的地方)

前言:

上一篇分析了 Agent系统如何通过LLM触发Tool

复制代码
用户输入
↓
LLM决策
↓
生成 tool_call
↓
系统执行 Tool

以及:

复制代码
LLM只负责决策
系统代码负责执行
状态层负责持久化

系统中,LLM并不会直接执行业务逻辑

模型只负责生成调用请求,真正完成操作的是 Tool执行层

因此,在AI系统架构中通常会形成如下结构:

复制代码
输入层
↓
LLM决策层
↓
Tool执行层
    ├─业务逻辑
    └─状态存储(JSONL / DB)
↓
输出层

本文重点梳理 Tool执行层和状态管理层的工作方式


一、Tool执行层:AI系统真正做事情的地方

在Agent系统中,Tool层负责执行真实业务逻辑。

例如一个工作记录Agent系统中,常见Tool包括:

复制代码
record_fragment
get_fragments_by_date
confirm_clock_event

当LLM生成tool_call后,后端系统会解析并执行对应函数。

例如:

复制代码
def record_fragment(content, author, occurred_date=None):
    item = {
        "id": generate_fragment_id(),
        "type": "fragment",
        "content": content.strip(),
        "author": author,
        "created_at": now_iso()
    }

    _append_jsonl(FRAGMENTS_PATH, item)

    return {"ok": True, "saved": item}

这个函数完成两个核心工作:

复制代码
业务逻辑处理
数据持久化

在很多AI系统中,Tool层本质上就是:

复制代码
Service层

负责调用:

复制代码
数据库
日志系统
业务服务

二、状态层:AI系统的持久化数据

Tool执行完成后,系统通常需要更新状态。

状态层的作用是:

复制代码
记录系统数据
保存历史信息
支持后续查询

例如一个实现可以使用 JSONL 文件。

复制代码
def _append_jsonl(path, obj):
    with open(path, "a", encoding="utf-8") as f:
        f.write(json.dumps(obj, ensure_ascii=False) + "\n")

每次记录都会写入一行数据:

复制代码
{"id": "abc123", "type": "fragment", "content": "完成测试用例", "author": "张三"}
{"id": "def456", "type": "summary", "content": "今日完成任务", "author": "张三"}

这种方式的优点是:

复制代码
实现简单
日志可追溯
方便调试

但在企业系统中,状态层通常会使用:

复制代码
数据库
缓存系统
日志系统

例如:

复制代码
MySQL
Redis
Elasticsearch

三、为什么状态层最容易出Bug

在很多AI系统中,问题往往不是出现在模型,而是出现在状态层。

常见问题包括:

复制代码
并发写入
数据不一致
状态污染
日志损坏

例如在测试过程中,如果多个请求同时写入 JSONL 文件:

复制代码
线程A写入
线程B写入

就可能出现:

复制代码
空行
半行数据
JSON解析错误

系统在读取日志时就会出现:

复制代码
KeyError
JSONDecodeError

因此在系统中通常需要:

复制代码
文件锁
数据库事务
消息队列

来保证数据一致性。


四、AI系统中的执行链路

结合前两篇内容,可以得到完整执行流程:

复制代码
User Input
↓
LLM (Prompt + Tool Schema)
↓
tool_call
↓
Backend Parse
↓
Tool Execute
↓
State Update
↓
Return Response

可以看到:

复制代码
LLM → 决策
Tool → 执行
State → 持久化

这三者共同构成了 AI系统的核心执行链路


五、从测试视角看Tool层

在AI系统测试中,Tool层其实是非常重要的一部分。

需要重点关注:

复制代码
Tool是否正确触发
参数是否正确
执行逻辑是否稳定
状态是否正确更新

典型测试点包括:

复制代码
错误参数处理
并发写入
异常恢复
数据一致性

这些问题往往比模型本身更容易影响系统稳定性。


六、小结

在Agent系统中,大模型并不会直接执行系统操作,而是通过 Tool 驱动系统行为。

整个系统可以总结为:

复制代码
LLM负责决策
↓
Tool负责执行
↓
状态层负责持久化

梳理这一点,对于理解 AI系统架构与测试方法非常关键。


下一篇

下一篇将继续讨论:

AI系统测试实践:状态层为什么是AI系统最容易出Bug的地方

重点包括:

复制代码
并发问题
数据一致性
日志损坏
系统恢复
相关推荐
kfaino1 天前
码农的AI翻身(三)你好,我叫 Embedding
后端·ai编程
冬奇Lab1 天前
Workflow 系列(01):基础理论——三种执行模型与 Anthropic 5 种模式
人工智能·agent·工作流引擎
冬奇Lab1 天前
每日一个开源项目(第143篇):page-agent - 纯 JS 的网页 GUI Agent,无需截图、无需插件、无需后端
前端·人工智能·agent
_山海1 天前
OpenSpec-基于SDD规格驱动开发
ai编程·vibecoding
程序员cxuan1 天前
虽迟但到!GPT-5.6 终于来了!
人工智能·后端·程序员
ZhengEnCi1 天前
Q03-UI设计进阶技巧-让界面更高级的7个核心原则
人工智能
IT_陈寒1 天前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
不加辣椒1 天前
第12章 工具调用与 Agent 提示工程
人工智能
用户1693176172661 天前
前端给AI消息做日期分组与时间线
人工智能
i晟1 天前
Claude Code Harness 深度拆解:从你敲回车到模型回复,中间发生了什么
人工智能