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

重点包括:

复制代码
并发问题
数据一致性
日志损坏
系统恢复
相关推荐
摸鱼同学2 分钟前
06-Skills 下篇:设计原则与生态深度 —— 从会用会写到会设计
ai·agent·vibe coding
IT_陈寒8 分钟前
被Vite的动态导入坑了一整天,原来问题出在这
前端·人工智能·后端
wubba lubba dub dub75013 分钟前
第四十九周学习周报
人工智能·算法·机器学习
装不满的克莱因瓶33 分钟前
学习使用 Python 机器学习工具 sklearn
人工智能·python·学习·机器学习·ai·agent·智能体
摸鱼同学37 分钟前
04-Skills 上篇:从安装到日常使用 —— 让 AI 学会你的工作流
ai·agent·vibe coding·skills
AI智图坊40 分钟前
AIGC赋能跨境电商:如何利用「图生图」与模型提取,破解POD节日款“卡图案”技术瓶颈?
大数据·人工智能·gpt·ai作画·aigc
触底反弹43 分钟前
大模型时代:5 个 Prompt 替代 BERT 训练,搞定 NLP 五大任务
人工智能·node.js·api
vortex51 小时前
AI Skill 设计:网络安全审计中的自主性与规范化博弈
人工智能·安全·web安全
云烟成雨TD1 小时前
Spring AI 1.x 系列【37】RAG 知识库平台案例:知识库管理
java·人工智能·spring
GodGump1 小时前
从生成式 AI 到行动式 AI:下一代人工智能为什么需要“行动能力”
人工智能