
语言模型(LM)代理和工具使用的最新进展,例如ChatGpt插件等应用程序,可以实现丰富的功能,但也扩大了潜在风险,例如泄漏私人数据或造成财务损失。确定这些风险是劳动密集型的,需要实施工具,手动为每个测试方案设置环境并找到风险的情况。随着工具和代理变得越来越复杂,测试这些代理的高成本将使寻找高风险,长尾的风险变得越来越困难。 TooleMu是一个基于LM的仿真框架,可实现大规模识别和评估此类风险,从而促进Safter LM代理的发展。
此存储库包含:
TooleMu的灵活性使得策划新的工具包和测试案例,以测试LM代理。我们热情地邀请您通过贡献精选的工具包和测试用例来增强我们的基准!
TooleMu有助于迅速识别LM代理在LM女人含的环境中的各种工具和场景中的现实故障,并促进具有LM Automate评估的更安全的LM代理的开发。它由3个主要组成部分组成:

要运行我们的代码,我们需要安装另一个称为instectcoder的软件包。此PACAKGE用于以模块化的方式管理我们的提示系统。请注意,此软件包仍在开发中。
我们建议您在可编辑模式下使用PIP安装软件包,这意味着您对代码进行的任何更改都将立即有效,而无需重新安装软件包。要安装软件包,请运行以下命令:
# Clone the repositories
git clone https://github.com/ryoungj/ToolEmu.git
git clone https://github.com/dhh1995/PromptCoder.git
# Install the packages
cd PromptCoder
pip install -e .
cd ../ToolEmu
pip install -e .安装后,您需要设置OpenAI或Claude API键。您可以通过在项目目录中创建一个名为.env的文件来执行此操作,然后将键输入此文件中:如下:
OPENAI_API_KEY=[YOUR_OPENAI_KEY]如果要运行Claude模型,则还需要ANTHROPIC_API_KEY 。
[尝试我们的演示] [在笔记本上运行]
首先,通过演示在模拟器中尝试特定的测试用例。在这里,您可以执行我们的样本案例和任何您自己的策划案例。此外,我们还提供了一个笔记本,您可以从我们广泛的策划数据集中选择和运行案例,并对设置具有颗粒状的控制。其中提供了详细的说明。
要评估我们的策划基准中的特定LM代理,该基准由144个测试用例和assets/文件夹中的36个工具包组成,请运行以下命令:
python scripts/run.py脚本将在我们的仿真器(带有scripts/emulate.py )中执行代理,然后评估模拟轨迹(带有scripts/evaluate.py )。评估结果将使用scripts/helper/read_eval_results.py将其打印到控制台。要使用特定的设置进行评估,请指定以下参数:
--agent-model :代理的基本模型,默认gpt-4-0613 。--agent-temperature :代理的温度,默认为0。--agent-type :代理的类型,默认的naive ,其基本提示符仅包括格式说明和示例。其他选项包括ss_only (包括安全要求)或helpful_ss (包括安全性和有用要求)--simulator-type :模拟器的类型,默认值为adv_thought (用于对抗模拟器)。另一个选择是std_thought (对于标准模拟器)。--batch-size :用于运行仿真和评估的批处理大小,默认5。如果将其设置为10,则可能会遇到频繁的速率限制错误。请注意,运行和评估测试用例的成本约为1.2美元,运行整个数据集的总计约170美元。要评估测试用例的子集,您可以指定要运行的案例数( --trunc-num )。例如,将其设置为10只能运行前10个测试用例(随机随机随机混乱--shuffle )。
有关对管道的详细控制,请参阅脚本/文件夹。
如果您想按照我们的规格来策划自己的工具包或测试用例,我们提供脚本来集思广益并生成具有GPT-4的初始集合,您可以从中查看,过滤和完善您的策展集。
根据您的特定用例,您可能需要考虑以下选项,从简单到更复杂的数据策划:
有关更多详细信息,请参阅“ Generation Readme”。
我们欢迎对该存储库的贡献,尤其是在贡献新工具和测试案例以扩大我们的评估基准的方面。有关更多详细信息,请参考贡献指南。
@inproceedings{ruan2024toolemu,
title={Identifying the Risks of LM Agents with an LM-Emulated Sandbox},
author={Ruan, Yangjun and Dong, Honghua and Wang, Andrew and Pitis, Silviu and Zhou, Yongchao and Ba, Jimmy and Dubois, Yann and Maddison, Chris J and Hashimoto, Tatsunori},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024}
}