OWL(Optimized Workforce Learning): 优化劳动力学习的通用智能体,用于处理现实世界的自动化任务(58.18 平均分)

OWL 在 GAIA 基准测试中取得 58.18 平均分,在开源框架中排名 🏅️ #1!

OWL 是一个前沿的多智能体协作框架,推动任务自动化的边界,构建在 CAMEL-AI Framework

其愿景是彻底变革 AI 智能体协作解决现实任务的方式。通过利用动态智能体交互,OWL 实现了跨多领域更自然、高效且稳健的任务自动化。

官网:https://github.com/camel-ai/owl/

设置OWL环境

OWL需要python3.11的集成环境,可以使用Conda或venv创建。

使用 Conda(推荐):

复制代码
conda create -n owl python=3.11
conda activate owl

使用 venv(备用):

复制代码
python -m venv owl_env
# Windows 系统
owl_env\Scripts\activate
# Unix 或 MacOS 系统
source owl_env/bin/activate

克隆仓库源代码

git clone https://kkgithub.com/camel-ai/owl.git
cd owl

安装python依赖库

python -m pip install -r requirements.txt

设置大模型 秘钥

owl/.env_template 文件中,可以找到所有必要的 API 密钥以及各服务的注册网址。要使用这些 API 服务,请按照以下步骤操作:

  1. 复制并重命名 : 复制 .env_example 文件,并将其重命名为 .env

  2. 填写密钥 : 打开 .env 文件,在相应字段中填入对应的 API 密钥。

    OPENAI API

    OPENAI_API_KEY = "openai"
    OPENAI_API_BASE_URL = "http://192.168.1.5:1337/v1"

这里测试使用自己的是自己搭建的内部api和秘钥。

运行agent例程

OWL跟其它几款比如Open-Manus、OpenHands等智能体不同,它只提供了例程,而不是交互界面。所以针对每一个问题,都要单独到源码里去修改,当然目前是非常时刻,只要智能体够优秀,其它方面都可以往后稍稍,也就是不太那么重要。

运行最小化示例

python owl/run_mini.py

例程咨询的问题是:

question = (
        "What was the volume in m^3 of the fish bag that was calculated in "
        "the University of Leicester paper `Can Hiccup Supply Enough Fish "
        "to Maintain a Dragon's Diet?`"
    )

给出最终回答是:

### Steps I Suggest for Detailed Information:
1. **Access the Paper**: Click on the provided link to view the entire paper.
2. **Locate Volume Information**: Look for sections that discuss the dimensions or calculations related to the fish bag's volume.
3. **Calculate if Necessary**: If dimensions are provided, use the formula for volume calculation as mentioned earlier.

Unfortunately, without detailed information directly from the paper or another verification method, I can't provide the exact volume in cubic meters (m³) of the fish bag at this moment. For any calculations or specific values mentioned within the paper, you would need to check its full content.

If further assistance is needed in accessing the paper or other methods to calculate the volume, please let me know!

普通示例执行下面语句:

python oel/run.py

修改示例运行自己的任务

可以通过修改 run.py 脚本里的question变量来运行自己的任务:

python 复制代码
# Define your own task
question = "Task description here."

society = construct_society(question)
answer, chat_history, token_count = run_society(society)

print(f"Answer: {answer}")

比如run.py原来代码里是:

python 复制代码
def main():
    r"""Main function to run the OWL system with an example question."""
    # Example research question
    question = (
        "What was the volume in m^3 of the fish bag that was calculated in "
        "the University of Leicester paper `Can Hiccup Supply Enough Fish "
        "to Maintain a Dragon's Diet?`"
    )

比如我们需要咨询问题:怎样才能使用AI大模型来解决蛋白质口袋的问题?,那么源码改成:

python 复制代码
def main():
    r"""Main function to run the OWL system with an example question."""
    # Example research question
    question = (
        "怎样才能使用AI大模型来解决蛋白质口袋的问题?"
    )

OWL智能体第9轮的回答是:

python 复制代码
 Round #9 assistant_response:
 请按照以下步骤进行,以确保您能够有效使用AI大模型解决蛋白质口袋的问题:

### 步骤 1: 下载并确认PDB文件
1. **下载PDB文件**: 确保您已成功下载所需的PDB文件。
   - 访问[Protein Data Bank (PDB)](https://www.rcsb.org/)来搜寻和下载您感兴趣的蛋白质结构。
2. **确认文件格式和内容**:
   - 确保文件格式为`.pdb`。
   - 使用文本编辑器打开此文件,检查内容是否完整且没有损坏。

### 步骤 2: 运行AlphaFold(如果需要)
- **检查是否需要生成新的蛋白质结构**:
   1. 如果您决定使用AlphaFold生成新的结构,请确认您的计算机或云服务具备GPU支持。
   2. 获取AlphaFold代码和数据,您可以从[AlphaFold的GitHub页面](https://github.com/deepmind/alphafold)下载相关资源。
   3. 按照安装说明设置所需环境,包括安装相关的Python库和所需的数据文件。
   4. 准备目标蛋白质的氨基酸序列,并使用以下命令运行AlphaFold(请替换为您的实际文件和目录):
      ```bash
      python run_alphafold.py --fasta_paths=your_protein_sequence.fasta --output_dir=output_directory
      ```

### 步骤 3: 口袋识别
- 使用PocketFinder或Fpocket进行口袋识别:
  1. 启动PocketFinder或Fpocket的命令行界面。
  2. 输入以下命令加载您的PDB文件(请替换为您的实际文件名):
     ```bash
     fpocket -f your_protein.pdb
     ```
  3. 执行口袋识别程序,保存识别结果文件以供后续分析。

### 步骤 4: 分子对接
- 使用AutoDock进行分子对接:
  1. 确保您拥有目标配体的PDB或PDBQT格式文件。
  2. 在AutoDock的图形界面中加载您的蛋白质及其口袋信息。
  3. 设置对接参数,并执行对接。

### 步骤 5: 结果分析
- 检查每个步骤的输出:
  - 特别关注口袋的识别结果和分子对接输出。
  - 记录重要数据和任何异常结果。

### 步骤 6: 可视化
- 使用PyMOL进行可视化:
  1. 打开PyMOL,加载蛋白质结构和识别的口袋信息。
  2. 利用PyMOL的可视化功能查看和分析结果。

### 检查
- 请确保您用不同工具重新检查了最终结果的合理性。
- 如果您有专门的代码,请确认其输出是否正常。

完成这些步骤后,请告知我您的进展或遇到的问题,我将根据您的反馈提供进一步的支持!

尽管蛋白质口袋识别对大多数人都是不太了解的领域,但是智能体告诉了我们6+1个步骤,让我们对该任务有个初步的了解。所以感觉OWL还是可以的。

任务问题里附带文件

有时候我们的问题里需要附带一些文件,这时候只要在prompt里提供文件路径和问题即可:

复制代码
# 处理本地文件(例如,文件路径为 `tmp/example.docx`)
question = "给定的 DOCX 文件中有什么内容?文件路径如下:tmp/example.docx"

society = construct_society(question)
answer, chat_history, token_count = run_society(society)

print(f"答案:{answer}")

复现 GAIA 上的实验结果

OWL提供了一个脚本用于复现 GAIA 上的实验结果。

查看 run_gaia_roleplaying.py 文件,并运行以下命令:

复制代码
python run_gaia_roleplaying.py

国内运行这个示例的话,需要先加huggingface的镜像:

Linux下

export HF_ENDPOINT=https://hf-mirror.com

Windows下

set HF_ENDPOINT=https://hf-mirror.com

另外 huggingface下载数据集需要验证.....先搁置,以后再解决。

总结

OWL这个智能体表现也不错,它是依托于CAMEL Framework Design Principles 这个AI设计框架,在短期内构建出来的。这启发了我们创建自己智能体的思路,并且让我们认识到,结合已有的框架和设计原则可以大大提高智能体的开发效率与效果。在开发我们自己的智能体时,我们决定借鉴 CAMEL 框架的核心理念,即模块化、可扩展性和可复用性。

另外设计智能体的一个很重要原则就是持续演进与反馈机制。如何建立一个反馈循环机制,以便根据用户的使用情况和反馈不断改进智能体的功能和行为。这一过程将是动态的,将允许智能体随着时间的推移变得更加智能。

调试

huggingface下载数据集需要验证

File "E:\Program Files\anaconda\envs\owl\Lib\site-packages\huggingface_hub\utils\_http.py", line 426, in hf_raise_for_status

raise _format(GatedRepoError, message, response) from e

huggingface_hub.errors.GatedRepoError: 401 Client Error. (Request ID: Root=1-67cdb0eb-1673056068c29e2645b214d1;a8b277d2-42a0-4689-bc6f-1316aaa7447a)

Cannot access gated repo for url https://hf-mirror.com/datasets/gaia-benchmark/GAIA/resolve/897f2dfbb5c952b5c3c1509e648381f9c7b70316/.gitattributes.

Access to dataset gaia-benchmark/GAIA is restricted. You must have access to it and be authenticated to access it. Please log in.

Exception ignored in: <function VideoDownloaderToolkit.del at 0x0000017BBD554A40>

Traceback (most recent call last):

File "E:\github\owl\owl\camel\toolkits\video_downloader_toolkit.py", line 116, in del

ImportError: sys.meta_path is None, Python is likely shutting down

先搁置。

相关推荐
NocoBase36 分钟前
使用Langflow和AstraDB构建AI助手:从架构设计到与NocoBase的集成
人工智能·低代码·开源·api·开发工具
浪九天1 小时前
人工智能直通车系列14【机器学习基础】(逻辑回归原理逻辑回归模型实现)
人工智能·深度学习·神经网络·机器学习·自然语言处理
OreoCC2 小时前
第N5周:Pytorch文本分类入门
人工智能·pytorch·python
刘阿去3 小时前
tcc编译器教程6 进一步学习编译gmake源代码
c语言·学习
紫雾凌寒4 小时前
计算机视觉应用|自动驾驶的感知革命:多传感器融合架构的技术演进与落地实践
人工智能·机器学习·计算机视觉·架构·自动驾驶·多传感器融合·waymo
LuckyLay4 小时前
Golang学习笔记_49——解释器模式
笔记·学习·设计模式·golang·解释器模式
sauTCc4 小时前
DataWhale-三月学习任务-大语言模型初探(一、二、五章学习)
人工智能·学习·语言模型
暴力袋鼠哥4 小时前
基于深度学习的中文文本情感分析系统
人工智能·深度学习
视觉语言导航4 小时前
RAG助力机器人场景理解与具身操作!EmbodiedRAG:基于动态三维场景图检索的机器人任务规划
人工智能·深度学习·具身智能
岱宗夫up4 小时前
《加快应急机器人发展的指导意见》中智能化升级的思考——传统应急设备智能化升级路径与落地实践
人工智能·aigc