CognitiveKernel-Pro
扫码查看

用于构建和训练深度研究智能体的框架

CognitiveKernel-Pro

综合介绍

CognitiveKernel-Pro 是一个由腾讯公司开发的开源框架,专门用于构建和训练能够执行深度研究任务的AI智能体。这个框架的核心思想是赋予大语言模型(LLM)像人一样使用工具的能力,从而解决复杂的问题。它将一个复杂的任务分解给不同的“专家”智能体处理,比如负责上网搜索的“网页智能体”和负责处理本地文件的“文件智能体”。这些智能体协同工作,通过思考、执行动作、观察结果的循环,一步步完成用户设定的目标。这个项目的一个显著特点是提供了一套完全开源、可复现的监督微调(SFT)训练方法。开发者可以利用这套方法,训练出自己的强大智能体,而不需要依赖复杂的强化学习(RL)技术。该框架不仅支持多种主流的大语言模型,还开源了训练数据和预训练好的模型,极大地降低了研究和开发高级AI智能体的门槛。

功能列表

  • 模块化智能体架构: 系统包含一个主智能体,以及专门用于处理特定任务的子智能体,如web_agent(网页智能体)和file_agent(文件智能体),实现任务的分解和协同处理。
  • 丰富的工具集: 智能体可以使用多种工具,包括但不限于网页浏览、搜索引擎(支持Google和DuckDuckGo)、本地文件读写(支持PDF、Word、Excel等多种格式)以及执行Python代码。
  • 可插拔大语言模型: 支持多种大语言模型作为智能体的大脑,包括GPT系列、Claude系列,以及通过vLLM等方式本地部署的开源模型。
  • 反思重试机制: 内置了一套评估机制(如 gpt_judge),可以在智能体执行任务后进行自我评估。如果发现结果不佳或未能解决问题,智能体会尝试重新规划并执行,最多可重试三次。
  • 开源训练方案: 提供了一整套基于监督微调(SFT)的训练流程和数据,让开发者可以训练自己的智能体基础模型,并声称其性能优于基于强化学习(RL)的方案。
  • 详细的轨迹记录: 智能体在执行任务时的每一步思考(Thought)、计划(Plan)、代码(Code)和观察(Observation)都会被完整记录下来,方便开发者进行分析、调试和数据再利用。
  • 预训练模型: 项目直接提供了一个基于Qwen3-8B微调好的模型 Qwen3-8B-CK-Pro,用户可以下载后直接使用。

使用帮助

CognitiveKernel-Pro 是一个功能强大的AI智能体框架,但它的运行也需要相对复杂的环境配置。以下是详细的上手使用流程。

第一步:准备运行环境

首先,你需要一个合适的Python环境,官方推荐使用Python 3.12版本。

  1. 安装Python依赖:将项目代码克隆到本地后,需要安装一系列Python库。你可以使用pip命令一次性安装所有必要的依赖项。
    pip install boto3 botocore openai duckduckgo_search rich numpy openpyxl biopython mammoth markdownify pandas pdfminer-six python-pptx pdf2image puremagic pydub SpeechRecognition bs4 youtube-transcript-api requests transformers protobuf openai langchain_openai langchain selenium helium smolagents
    
  2. 设置Web服务 (Playwright):网页智能体(Web Agent)需要一个基于Playwright的Web服务来执行浏览、点击、输入等网页操作。这个服务需要单独运行。
    • 在Linux系统上:首先需要安装一些系统依赖包,这些工具用于处理文件预览、转换等任务。
      apt-get install -y poppler-utils default-jre libreoffice-common libreoffice-java-common libreoffice ffmpeg
      

      然后,执行项目提供的脚本来启动Web服务。

      sh ck_pro/ck_web/_web/run_local.sh
      
    • 在macOS系统上:使用Homebrew安装相应的依赖。
      brew install --cask libreoffice
      brew install poppler
      brew install ffmpeg
      

      然后,执行适用于Mac的脚本。

      sh ck_pro/ck_web/_web/run_local_mac.sh
      

    安全提示: 官方强烈建议在一个沙箱(Sandbox)环境中运行此框架。因为智能体生成的代码会被直接执行,目前没有安全检查。为了基础的系统安全,可以为运行用户禁用sudo权限。

第二步:配置核心服务

智能体的运行依赖三个核心服务:大语言模型(LLM)服务、Web浏览器服务和搜索引擎。你需要通过环境变量来配置它们。

  1. 设置Python路径:将项目根目录添加到PYTHONPATH环境变量,以便Python可以找到项目的模块。
    export PYTHONPATH=/your/path/to/CognitiveKernel-Pro
    

    请将 /your/path/to/CognitiveKernel-Pro 替换为你的实际项目路径。

  2. 配置大语言模型 (LLM):你需要指定一个大语言模型API的端点。
    • 使用自托管的vLLM模型:
      export LLM_URL=http://xx.xx.xx.xx:8080/v1/chat/completions
      
    • 使用GPT模型:
      export LLM_URL=gpt:gpt-4.1
      export AZURE_OPENAI_ENDPOINT="YOUR_ENDPOINT"
      export AZURE_OPENAI_API_KEY="YOUR_API_KEY"
      export AZURE_OPENAI_API_VERSION="YOUR_API_VERSION"
      
    • 使用Claude模型:
      export LLM_URL=claude:
      export AWS_ACCESS_KEY="YOUR_KEY"
      export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_KEY"
      
  3. 配置Web浏览器服务:指定第一步中启动的Web服务的IP地址和端口。如果是在本地运行,通常如下设置:
    export WEB_IP=localhost:3001
    
  4. 配置搜索引擎:你可以选择免费的DuckDuckGo或付费的Google搜索。
    • 使用DuckDuckGo (无需API Key):
      export SEARCH_BACKEND="DuckDuckGo"
      
    • 使用Google搜索:
      export SEARCH_BACKEND="Google"
      export SEARCH_API_KEY="YOUR_API_KEY"
      export SEARCH_CSE_ID="YOUR_CSE_ID"
      

第三步:执行一个简单的测试任务

配置完成后,可以通过运行一个简单的例子来验证环境是否正常。

  1. 准备输入文件:项目提供了一个简单的测试输入文件,位于 ck_main/_test 目录。你可以直接使用它。
  2. 构建执行命令:智能体的许多参数通过一个名为 MAIN_ARGS 的环境变量传入。这个变量是一个JSON格式的字符串,用于配置各个智能体使用的模型和环境。
    MAIN_ARGS="{'web_agent': {'model': {'call_target': '${LLM_URL}'}, 'web_env_kwargs': {'web_ip': '${WEB_IP}'}}, 'file_agent': {'model': {'call_target': '${LLM_URL}'}}, 'model': {'call_target': '${LLM_URL}'}}"
    
  3. 运行主程序:使用以下命令启动任务。这个命令会以调试模式(-mpdb)运行,并将所有日志输出到 _log_simple_test 文件中。
    NO_NULL_STDIN=1 python3 -u -mpdb -m ck_pro.ck_main.main \
    --updates "${MAIN_ARGS}" \
    --input /your/path/to/simple_test.jsonl \
    --output /your/path/to/simple_test.output.jsonl |& tee _log_simple_test
    
    • --input: 指定包含任务描述的输入文件。
    • --output: 指定用于保存任务执行结果和轨迹的文件。
    • tee _log_simple_test: 将屏幕输出同时保存到文件。
  4. 查看结果:执行完成后,你可以使用 less -R _log_simple_test 命令查看带有颜色的日志输出,或者直接检查 simple_test.output.jsonl 文件来分析详细的执行轨迹。

应用场景

  1. 学术研究与内容创作对于需要进行大量文献回顾和信息整合的研究人员或内容创作者,可以指令智能体:“搜索关于‘AI Agent在自动化软件测试中的应用’的最新5篇论文,总结它们的核心方法、实验结果,并以Markdown格式报告。”智能体会自动上网搜索、下载并阅读PDF论文、提炼关键信息,并最终生成一份结构化的报告。
  2. 复杂数据分析与报告生成当面对一个包含多个数据文件(如Excel、CSV)的文件夹时,可以指令智能体:“分析这个文件夹里所有销售数据,计算每个季度的总销售额和增长率,找出销售额最高的产品,并生成一份PPT报告。”智能体会调用文件智能体读取和处理数据,进行计算和分析,最后生成一份演示文稿。
  3. 智能软件开发助手开发者可以利用此框架构建一个开发助手。例如,指令它:“在当前项目中实现一个用户登录功能,需要包括输入验证和后端API调用,并为前端代码编写单元测试。”智能体可以读取现有代码,编写新的功能模块,并执行测试,辅助开发者完成编码任务。

QA

  1. CognitiveKernel-Pro 是什么?它是一个开源框架,用于构建和训练能够使用工具(如网页浏览器、搜索引擎、文件系统)来完成复杂研究任务的AI智能体。你可以把它理解为一个给大语言模型装上“手”和“眼睛”的系统,让它能与数字世界交互。
  2. 它和其它AI智能体框架有什么不同?其主要区别在于对模型训练的侧重。CognitiveKernel-Pro 提供了一套完整的、基于监督微调(SFT)的训练方案和开源数据,旨在降低训练高性能智能体的门槛,并且声称这种方法比需要复杂环境和奖励设计的强化学习(RL)更有效、更稳定。
  3. 使用这个框架是免费的吗?这个框架本身是开源且免费的。但是,它的运行依赖一些外部服务。如果你使用像GPT-4或Claude这样的大模型,或者使用Google搜索API,你需要支付相应的API调用费用。不过,框架也支持使用本地部署的开源模型和免费的DuckDuckGo搜索引擎作为替代,从而实现零成本运行。
  4. 运行CognitiveKernel-Pro需要什么样的技术背景?使用者需要具备基本的Python编程能力、熟悉Linux或macOS的命令行操作,并对大语言模型API的使用有一定了解。由于配置过程涉及多个组件(Web服务、LLM服务、环境变量),因此需要用户耐心阅读文档并进行调试。
微信微博Email复制链接