必须在初始化阶段注入可验证策略约束,定义pydantic模型policyconstraint声明操作范围、字段白名单与输出规范,绑定至agent实例并校验输入,配置工具调用限制及策略审计日志。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在AgentKit中让智能体严格按业务规则执行、不越界调用工具或生成违规内容,必须在初始化阶段就注入可验证的策略约束,而非依赖LLM提示词临时控制。
定义硬性策略Schema
创建一个Pydantic模型,显式声明智能体允许执行的操作范围、输入字段白名单、输出格式强制规范。例如:禁止访问用户邮箱字段、仅允许查询2024年后的订单、返回JSON必须含status和data两个键。
这一步不可跳过——AgentKit的tool calling协议会依据该Schema自动生成OpenAI tools数组,若未声明,则框架默认放行所有参数,【后续无法在运行时拦截非法字段】。
把模型类命名为PolicyConstraint,放在project/agents/policy.py路径下。
绑定策略到Agent实例
在Agent类的__init__方法中,传入PolicyConstraint实例,并在run()方法开头插入校验逻辑:
① 解析input字典,用PolicyConstraint.model_validate(input)触发字段级校验;
② 若校验失败,直接raise ValueError并附带具体违反条款(如“date_range超出允许区间”);
③ 校验通过后才进入LLM调用流程。这确保非法请求在第一毫秒就被截断,不会消耗token或触发工具。
配置沙箱级工具调用限制
方法一:在tool注册时使用agentkit.tool装饰器的allow_local参数设为False,禁用本地文件读写类工具;
方法二:重写AgentRunner._execute_tool方法,在调用前比对当前tool.name是否在预设的allowed_tools列表中;
【注意:方法二需修改框架源码,仅适用于已编译部署的私有版本,公共pip包不支持】。
启用策略审计日志开关
启动AgentRunner时,传入audit_policy=True参数;
日志将记录每次输入校验结果、被拒绝的字段名、触发的策略条款编号;
这些日志默认写入./logs/policy_violations.jsonl,每行一条结构化记录,可用于对接企业SIEM系统。











