II-Agent:一个用于构建和部署智能体的全新开源框架。II-Agent 是一款开源智能助手,旨在简化和增强跨领域的工作流程。它代表了我们与技术互动方式的重大进步——从被动工具转变为能够独立执行复杂任务的智能系统。作为简易的COZE,Dify平替。

ii-agent开源框架,擅长构建跨多个领域工作流的Agent,能独立执行复杂任务已是Agent标配 其技能覆盖研究与核查、内容生成、数据分析可视化、软件开发、工作流自动化、问题解决6个方面 可以用它来做笔记、写文章、做研究、分析数据、写代码、建网站、自动化工作流、故障排除等等,基本上日常工作覆盖的差不多了 ii-agent集成了搜索引擎、代码编辑器、命令行终端等工具,使得它可以处理更复杂的任务,具备持续学习和适应能力 给了命令行界面和网页界面两种交互方式。目前正在开发针对PDF、音频、图像、视频、幻灯片等不同模态的处理能力

概述

II Agent 旨在为 Anthropic Claude 模型提供代理接口。它提供以下功能:

  • 用于直接命令行交互的 CLI 界面
  • 支持现代基于 React 的前端的 WebSocket 服务器
  • 与 Google Cloud 的 Vertex AI 集成,通过 API 访问人类学模型

核心能力

II-Agent 是一款多功能开源助手,旨在提升您在各个领域的工作效率:

领域 II-Agent 的功能
研究与事实核查 多步网页搜索、源三角测量、结构化笔记、快速摘要
内容生成 博客和文章草稿、课程计划、创意散文、技术手册、网站创作
数据分析与可视化 清理、统计、趋势检测、图表和自动报告生成
软件开发 跨多种语言的代码合成、重构、调试、测试编写和分步教程
工作流自动化 脚本生成、浏览器自动化、文件管理、流程优化
解决问题 分解、替代路径探索、逐步指导、故障排除

方法

II-Agent 系统代表了一种构建多功能 AI 代理的复杂方法。我们的方法论核心在于:

  1. 核心代理架构与LLM交互

    • 动态定制上下文的系统提示
    • 全面的交互历史管理
    • 智能上下文管理来处理令牌限制
    • 系统性LLM调用和能力选择
    • 通过执行周期进行迭代改进
  2. 规划与反思

    • 解决复杂问题的结构化推理
    • 问题分解和顺序思考
    • 透明的决策过程
    • 假设的形成和检验
  3. 执行能力

    • 具有智能代码编辑的文件系统操作
    • 在安全环境中执行命令行
    • 高级 Web 交互和浏览器自动化
    • 任务完成和报告
    • 针对各种模式的专门功能(实验性)(PDF、音频、图像、视频、幻灯片)
    • 深度研究整合
  4. 上下文管理

    • 代币使用情况估算和优化
    • 针对冗长互动的战略性缩短
    • 基于文件的大型输出存档
  5. 实时通信

    • 基于 WebSocket 的交互使用界面
    • 每个客户端的独立代理实例
    • 流式传输操作事件以实现响应式用户体验

GAIA 基准评估

II-Agent 已根据 GAIA 基准进行了评估,该基准评估基于 LLM 的代理在多维度(包括多模式处理、工具利用和网络搜索)的现实场景中的运行情况。

我们在评估过程中发现了 GAIA 基准的几个问题:

  • 注释错误:数据集中存在一些不正确的注释(例如,误解日期范围、计算错误)
  • 过时的信息:一些问题涉及不再可访问的网站或内容
  • 语言歧义:措辞不明确导致对问题的不同解释

尽管面临这些挑战,II-Agent 在基准测试中表现出色,特别是在需要复杂推理、工具使用和多步骤规划的领域。

 您可以在此处查看一些样本的完整跟踪:GAIA 基准跟踪

要求

  • Python 3.10+
  • Node.js 18+(用于前端)
  • 已启用 Vertex AI API 或 Anthropic API 密钥的 Google Cloud 项目

环境

环境变量

.env在根目录中创建一个包含以下变量的文件:

# Image and Video Generation Tool
OPENAI_API_KEY=your_openai_key
OPENAI_AZURE_ENDPOINT=your_azure_endpoint
# Search Provider
TAVILY_API_KEY=your_tavily_key
#JINA_API_KEY=your_jina_key
#FIRECRAWL_API_KEY=your_firecrawl_key
# For Image Search and better search results use SerpAPI
#SERPAPI_API_KEY=your_serpapi_key 

STATIC_FILE_BASE_URL=http://localhost:8000/

#If you are using Anthropic client
ANTHROPIC_API_KEY=
#If you are using Goolge Vertex (recommended if you have permission extra throughput)
#GOOGLE_APPLICATION_CREDENTIALS=
 

前端环境变量

对于前端,.env在前端目录中创建一个文件:

NEXT_PUBLIC_API_URL=http://localhost:8000
 

安装

  1. 克隆存储库

  2. 设置Python环境:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    pip install -e .
     
  3. 设置前端(可选):

    cd frontend
    npm install
     

用法

命令行界面

如果要使用人类客户端,请在文件ANTHROPIC_API_KEY中设置.env并运行:

python cli.py 
 

如果要使用顶点,请在文件GOOGLE_APPLICATION_CREDENTIALS中设置.env并运行:

python cli.py --project-id YOUR_PROJECT_ID --region YOUR_REGION
 

选项:

  • --project-id:Google Cloud 项目 ID
  • --region:Google Cloud 区域(例如 us-east5)
  • --workspace:工作区目录的路径(默认值:./workspace)
  • --needs-permission:执行命令前需要权限
  • --minimize-stdout-logs:减少打印到标准输出的日志量

Web 界面

  1. 启动 WebSocket 服务器:

使用 Anthropic 客户端时:

export STATIC_FILE_BASE_URL=http://localhost:8000
python ws_server.py --port 8000
 

使用 Vertex 时:

export STATIC_FILE_BASE_URL=http://localhost:8000
python ws_server.py --port 8000 --project-id YOUR_PROJECT_ID --region YOUR_REGION
 
  1. 启动前端(在单独的终端中):
cd frontend
npm run dev
 
  1. 打开浏览器访问http://localhost:3000

项目结构

  • cli.py:命令行界面
  • ws_server.py:前端的 WebSocket 服务器
  • src/ii_agent/:核心代理实现
    • agents/:代理实现
    • llm/:LLM 客户端接口
    • tools/:工具实现
    • utils/:实用功能

结论

II-Agent 框架基于 Claude 3.7 Sonnet 等大型语言模型的推理能力构建,为构建多功能 AI 代理提供了全面而强大的方法。II-Agent 结合了强大的 LLM、丰富的执行能力、明确的规划和反思机制以及智能上下文管理策略,能够出色地处理各种复杂的多步骤任务。其开源特性和可扩展设计为快速发展的代理 AI 领域的持续研究和开发奠定了坚实的基础。