智能体集成 OpenAI API 时,应把模型调用、业务工具、会话状态和权限校验拆成四个边界。模型负责理解和生成,工具服务负责真实读写,状态层保存可追踪历史,权限层在每次数据访问前验证用户归属。
四个模块各负其责
| 模块 | 职责 | 禁止事项 |
|---|---|---|
| 模型层 | 调用 Responses API,读取文本或工具调用 | 不直接持有数据库管理员权限 |
| 工具层 | 执行订单、库存、搜索等白名单函数 | 不执行模型任意生成的 URL、SQL 或命令 |
| 状态层 | 保存会话、响应 ID、任务状态与幂等键 | 不把模型记忆当业务权威数据 |
| 权限层 | 校验登录用户、资源归属和操作范围 | 不因参数格式正确就跳过鉴权 |
跑通一条可审计主路径
先按官方快速入门完成服务端调用,再根据函数调用指南声明一个只读工具,例如“查询当前用户的订单状态”。

- 用户提问,后端生成内部请求 ID并记录用户归属。
- 模型返回工具名和参数,后端只接受预先登记的工具。
- 权限层确认订单属于当前用户,工具层查询真实数据库。
- 结果以
function_call_output回传,模型生成用户可读答案。 - 状态层记录响应 ID、工具结果摘要和最终状态,敏感字段脱敏。
多轮续聊可按官方会话状态指南使用 previous_response_id,也可由本地重发必要历史。无论哪种方式,都要先校验会话属于当前用户。
用失败场景验收边界
- 查询自己的订单:返回真实状态并能追到工具日志。
- 查询别人的订单:在调用业务数据前拒绝,不泄露订单是否存在。
- 工具超时:任务显示失败或待确认,不能让模型补写一个状态。
- 重复提交写操作:同一幂等键只执行一次。
- 切换会话 ID:后端阻止跨用户串线。
只有模型回答正确、工具结果可核对、权限测试通过、失败状态可解释,主路径才算验收完成。编译通过或一次演示不足以证明智能体可上线。
常见问题
所有逻辑都能写在一个 Agent 函数里吗?短期能跑,但权限、重试和状态会迅速混在一起,难以独立验证。应保持模块接口清晰。
模型能决定用户有没有权限吗?不能。权限必须由服务端根据可信身份和业务数据判断。本文没有连接你的系统,工具契约和权限规则需按实际业务实现并回归测试。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31338.html