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的地方

重点包括:

复制代码
并发问题
数据一致性
日志损坏
系统恢复
相关推荐
智慧地球(AI·Earth)2 小时前
OpenClaw设置教程之安全篇
人工智能·安全·openclaw
JXSJHF2 小时前
告别云端依赖:2026年AI PC如何实现离线运行百亿参数模型
人工智能
IT WorryFree2 小时前
openclaw接入企业飞书机器人:个人增效和团队自动化两种场景
服务器·自动化·飞书
财迅通Ai2 小时前
海立股份子公司参展AWE2026 以创新科技赋能行业转型升级
大数据·人工智能·物联网
SuAluvfy2 小时前
AI 编辑器:Cursor vs Trae
人工智能·编辑器
UWA2 小时前
顺势而为,AI 技术融入性能优化
人工智能·ai·性能优化·游戏开发
HowDonew2 小时前
PyTorch 目标检测:为何训练 Loss 极低,一开 model.eval() 测试就瞬间爆炸?
人工智能·pytorch·目标检测
SelectDB技术团队2 小时前
OLAP 无需事务?Apache Doris 如何让实时分析兼具事务保障
数据库·数据仓库·人工智能·云原生·实时分析
用户4815930195912 小时前
文件即真理:深度解析 OpenClaw 的 Markdown 记忆系统
人工智能