在今天的AI代理设计中存在根本性的紧张关系! 只有在开始构建生产环境时,这种紧张关系才会变得明显: 你越严格地执行指令,就越牺牲上下文的细微差别。 可以这样想。 当你构建一个面向客户的代理时,有些指令确实是不可谈判的。 因此,你希望你的代理严格执行这些指令,即使这样做听起来很机械。 例如,金融中的合规披露或医疗保健中的安全警告等指令不能容忍任何错误。 但其他指令则是温和的建议,比如匹配客户的语气或保持回复简洁。这些应该影响对话,而不是主导对话。 问题在于,大多数代理架构并不允许你轻易表达这种区别。 每条指令通常都得到相同级别的执行,因此你要么被迫对所有事情都严格要求,听起来很机械,要么对所有事情都灵活处理,冒着错过关键规则的风险。 而且,不,你不能仅仅在提示中强调某些指令,因为提示中指令的存在本身就已经偏向模型的行为。强调只会在现有偏见的基础上增加更多偏见。 但我发现Parlant最新的“关键性水平”控制很有趣(开源,拥有18k颗星)。 它让你告诉你的代理每条指令需要多大关注。 ``` agent.create_guideline( condition="客户询问药物", action="直接转到医疗提供者",...