目录

多智能体低开销通信与共享记忆实验系统

本项目围绕本地多智能体连续任务构建统一运行系统。规划、检索、推理、总结四个角色使用固定职责,分别通过纯文本、协议字段或隐状态协作。共享记忆保存已获得的事实及经验;记忆证据足够时复用,不足时补查固定知识库。系统支持连续问答和代码执行,并在前端展示角色处理、信息交接、记忆流转与实验指标。

目录

位置 内容
src/ 应用源码、框架源码、固定数据与知识库、已有测试。
docs/ 项目说明、创新说明、成员分工和工具使用说明。
tests/ 测试说明、实验汇总、运行记录、评分修订及校验入口。
demo/ 已构建的项目页面与启动入口。
presentation/ 最终答辩演示文稿与语音演示视频。
作品原创承诺书.pdf 已填写的官方原创承诺书。

应用场景与主要功能

系统面向模型本地部署后,多角色重复处理信息、交接内容较长以及连续任务需要复用事实的场景。主要功能包括:固定四角色协作、协作方式选择、相似度或超图检索、事实及经验记忆、内部状态接续与缓存管理、代码工具执行和实验结果查看。AutoForm 与 LLMLingua-2 入口保留在源码中。

系统环境与依赖

页面与历史记录查看:Python 3.10 及以上、现代浏览器,不需要显卡和模型权重。

真实任务:Python 3.11 及以上,推荐使用 Python 3.12 独立环境;PyTorch、Transformers、Accelerate、Sentence Transformers 等,按机器安装合适的处理器或显卡版本。隐状态必须访问本地模型内部状态。模型权重与检索模型不随代码包提交。

python -m venv .venv

Windows 使用 .\.venv\Scripts\Activate.ps1,Linux 使用 source .venv/bin/activate。启用后安装:

python -m pip install -r src/examples/competition_agents/requirements.txt accelerate

需要使用本地框架源码时安装:

python -m pip install -e src/libs/checkpoint -e src/libs/sdk-py -e src/libs/prebuilt -e src/libs/langgraph

预先在本机部署运行模型和 sentence-transformers/all-MiniLM-L6-v2 检索模型。应用使用本地已部署文件;openEuler 的部署步骤见下节。

openEuler 部署

本系统支持在 openEuler 24.03 LTS 系列(含 SP3)的 64 位 x86 服务器上部署。后端使用 Python,前端为已构建的静态页面,部署时沿用 Linux 环境的安装与启动流程。页面展示和已有实验记录查看可在无显卡环境运行;本地模型实验需要准备模型文件以及相应的内存、显存和驱动。

以下命令从仓库根目录执行。先安装系统依赖:

sudo dnf install -y git curl tar bzip2 gcc gcc-c++ make libgomp

建议使用独立的 Python 3.12 环境,避免系统自带 Python 版本与模型依赖不匹配。已有 Conda 的机器可直接创建环境;尚未安装时,可先安装 Miniforge:

curl --fail -L https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -o /tmp/competition-miniforge.sh
bash /tmp/competition-miniforge.sh -b -p "$HOME/miniforge3"
source "$HOME/miniforge3/etc/profile.d/conda.sh"

创建环境:

conda create -n competition-agents python=3.12 pip -y
conda activate competition-agents
python -m pip install --upgrade pip

使用 NVIDIA 显卡时,先安装驱动,再安装与驱动匹配的 PyTorch。下面以驱动支持 CUDA 12.8 的环境为例:

nvidia-smi
python -m pip install "torch>=2.5,<3" --index-url https://download.pytorch.org/whl/cu128
python -c "import torch; print(torch.cuda.is_available())"

最后一条应输出 True。其他驱动版本需选择对应的 PyTorch 安装源。无显卡、仅查看演示与实验记录时,可用以下命令替代上面的显卡安装步骤:

python -m pip install "torch>=2.5,<3" --index-url https://download.pytorch.org/whl/cpu

安装项目依赖和随包提供的框架源码:

python -m pip install -r src/examples/competition_agents/requirements.txt accelerate
python -m pip install -e src/libs/checkpoint -e src/libs/sdk-py -e src/libs/prebuilt -e src/libs/langgraph

启动项目:

python demo/start_demo.py --no-browser

该命令同时启动页面和后端,访问地址为 http://127.0.0.1:5173,后端端口为 8765。提交包已包含构建好的页面,直接启动不需要安装前端构建工具。运行真实任务前,准备基础模型和检索模型,并在页面选择对应模型;命令行也可使用下节的 --local-model 指定本地模型目录。

部署在远程服务器时,在本机另开终端建立端口转发,将 user@server 替换为实际登录用户和服务器地址;非默认连接端口可追加 -p 参数:

ssh -L 5173:127.0.0.1:5173 -L 8765:127.0.0.1:8765 user@server

保持连接,在本机浏览器打开 http://127.0.0.1:5173,即可查看控制台、协作过程、记忆流转及指标对比。连续问答与代码执行使用同一套项目入口,三种协作方式的职责、知识库和记忆模块保持一致。

构建与运行

已构建界面可直接运行:

python demo/start_demo.py

打开 http://127.0.0.1:5173,后端接口在本机 8765 端口。启动后先显示控制台,不自动执行模型。点击页首“实验记录”导入同一模型与任务的记录,即可查看协作、记忆及指标页面。

修改前端后的重建命令:

cd src/examples/competition_agents/frontend
npm ci
npm run build

将 dist/ 中的页面与 assets/ 替换到 demo/web/;不复制运行日志目录。

真实短演示:

python demo/start_demo.py --single-task --offline

在控制台选择已部署的本地模型,点击“启动实验”,只执行所选数据集的第一题。完整实验直接使用正常启动方式,或在应用目录执行:

cd src/examples/competition_agents
python run_competition.py --method plain --dataset topiocqa-ranked-153 --backend local --local-model /models/your-model --limit 10 --isolated-memory
python run_competition.py --method structured --dataset topiocqa-ranked-153 --backend local --local-model /models/your-model --limit 10 --isolated-memory
python run_competition.py --method latent --dataset topiocqa-ranked-153 --backend local --local-model /models/your-model --limit 10 --isolated-memory
python run_competition.py --method latent --dataset codeact --backend local --local-model /models/your-model --limit 10 --isolated-memory

测试方法与数据

python tests/verify.py
python tests/verify.py --unit
python tests/verify.py --frontend

第一条核对交付文件、源码清单和已有记录,不加载模型。--unit 执行指标接口检查;--frontend 执行前端配置、任务状态及基线计算检查,运行前先在 src/examples/competition_agents/frontend 执行 npm ci。测试依据见 tests/README.md,演示操作见 demo/README.md。

指标页按同模型、同数据集及同实验条件显示三种方式,支持自动选择纯文本基线或指定基线,并计算单题耗时、交接字符和载荷的变化。基线选择在页面定时刷新后保持。

连续问答采用文献[17]发布的 TopiOCQA 验证集中编号153会话的前十轮,保留原始问题及顺序;代码执行采用本仓库20项功能任务的前10项。主实验是三个模型、两类任务、三种方式,共18组180条任务。模型名称、参数与逐题结果保存在原始结果归档中。

关于
121.2 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号