General Agent Framework by LinXueyuan
Project description
AgentLin
通用 Agent 架构,支持多Agent协作和RPC远程调用。
主要特性
- 🤖 多Agent系统: 基于RabbitMQ的消息队列支持多Agent协作
- 🔗 RPC远程调用: 像本地函数一样调用远程Agent方法
- ⏰ 时间同步: 分布式时间协调机制
- 🛠️ 工具集成: 丰富的工具生态系统
- 📊 数据处理: 内置数据分析和可视化工具
- 🔄 自动重连: 健壮的连接管理和故障恢复
开始使用
1. 安装
pip install agentlin
本地安装
apt-get install build-essential libssl-dev libffi-dev python3-dev
pip install pip --upgrade
pip install -e .
# plotly 需要额外下载 chrome 内核用于渲染图表
plotly_get_chrome
2. 创建 .env 文件
复制 .env.example 文件为 .env 并填写所需的环境变量。
环境变量定义了访问 o3 模型的 API 密钥和其他配置。
3. 创建软链接
将公共数据目录 /mnt/aime/datasets/agent/agent_data 软链接到你本地项目的 data 目录下
ln -s /mnt/aime/datasets/agent/agent_data data
4. 运行应用程序
streamlit run chart_o3_toolcall.py
注意:如果你不是在交互式建模的容器里运行的,需要挂一个代理服务将本地请求转发到北美:
cd tool_server
bash run_aime_proxy_server.sh
5. 运行 MCP 服务器
HOME_DIR=<your_home_directory> agentlin mcp-server --name file_system --host localhost --port 9999 --path /mcp --debug
agentlin mcp-server --name bash --host localhost --port 9999 --path /mcp --debug
agentlin mcp-server --name memory --host localhost --port 9999 --path /mcp --debug
agentlin mcp-server --name web --host localhost --port 9999 --path /mcp --debug
TODO_FILE_PATH=<your_todo_file_path> agentlin mcp-server --name todo --host localhost --port 7780 --path /mcp --debug
详细文档
参见 RPC消息队列使用指南
目录结构
agentlin/
├── core/ # 核心架构组件
│ ├── agent_schema.py # Agent 模式定义
│ ├── simulator.py # 仿真器
│ ├── multimodal.py # 多模态支持
│ └── types.py # 数据类型定义
├── route/ # 路由和代理管理
│ ├── client.py # 客户端
│ ├── mcp_proxy_*.py # MCP 代理相关
│ ├── task_agent_manager.py # agent 会话管理
│ └── task_*_manager.py # 任务管理器
├── code_interpreter/ # 代码解释器
│ ├── client.py # 解释器客户端
│ ├── jupyter_*.py # Jupyter 集成
│ ├── tool_call_display.py # 工具调用显示
│ └── ... # 其他组件
└── tools/ # 工具集合
├── tool_aime.py # AIME 工具
├── tool_code_interpreter.py # 代码解释器工具
├── tool_chart.py # 图表工具
└── tool_*.py # 其他工具
chart_agent/ # 图表 Agent
table_agent/ # 表格 Agent
tool_server/ # 工具服务器
docs/ # 项目文档
assets/ # 配置文件
data/ # 数据文件,软链接到 /mnt/aime/datasets/agent/agent_data
Agent 能力扩展
我们通过多个层级对 agent 能力进行扩展:
- 原子工具(Atomic Tools): 最基本的功能单元,足够通用才能成为原子工具,如代码解释器、结构化数据生成器作为工具、子智能体能力作为工具、动态加载技能的能力作为工具、MCP 能力作为工具。
- 代码解释器(Code Interpreter): 通过代码解释器执行代码的能力,可以在代码里调用其他工具、函数
- 子智能体(SubAgent): 组合多个工具,具有独立上下文,形成特定能力的智能体
- 技能(Skills): 按需加载的技能包,包含一些工具、关于使用这些工具的提示词和示例
- 结构化数据生成器(Structured Data Generators): 用户要求返回结构化数据时,专门用于生成结构化数据的工具。可以利用 LLM 约束解码能力,确保数据结构正确。
- MCP 能力(MCP Capabilities): 通过 MCP 协议调用远程服务的能力,允许 agent 使用分布式资源和服务
- 智能体作为工具(Agent-as-Tool): 将完整的智能体封装为工具
- 环境(Environment): 预定义的任务环境,集成了多种工具和技能,环境的描述和提示词注入到系统提示词中,环境的工具注册为原子工具
- 通用环境(General Environments): 面向广泛任务的环境,如有状态浏览器环境、文件系统环境、沙盒环境
- 专用环境(Specialized Environments): 面向特定任务的环境,如量化交易环境、漏洞挖掘环境
- 基于 Bash 扩展的工具(Tools-in-Bash): 定义在 Bash 环境中运行的工具,agent 需要通过
ls、cat、--help等命令来探索和使用这些工具 - 基于 MCP 扩展的工具(Tools-in-MCP): 定义在 MCP 服务器中运行的工具,agent 通过 MCP 协议的
list_tools,call_tool等方法来调用这些工具 - 基于代码执行的工具(Tools-in-CodeInterpreter): 定义在代码执行环境中运行的工具,agent 通过代码调用这些工具
- 基于浏览器扩展的工具(Tools-in-Browser): 定义在浏览器环境中运行的工具、插件、扩展,agent 通过 browser-use 工具来调用这些浏览器工具
- 基于计算机扩展的工具(Tools-in-Computer): 定义在计算机环境中运行的工具、APP,agent 通过 computer-use 工具来调用这些计算机工具
- 基于手机扩展的工具(Tools-in-Mobile): 定义在手机环境中运行的工具、APP,agent 通过 mobile-use 工具来调用这些手机工具
同时,按权限级别对工具进行分类:
- 系统级工具(System-level Tools): 内建于 agentlin 框架中的原子工具
- 开发者级工具(Developer-level Tools): 由环境或 MCP 服务器注册的工具
- 用户级工具(User-level Tools, Client-Side Tools): 由用户自定义并注册的工具
agentlin CLI 工具
使用 agentlin --help 查看命令行工具的帮助信息:
| 命令名称 | 描述 |
|---|---|
| mcp-server | 运行指定的 MCP 服务器。 |
| env-as-mcp-server | 将环境作为 MCP 服务器运行。 |
| code-interpreter-server | 运行代码解释器服务器。 |
| agent-server | 运行代理服务器。 |
| task-server | 运行任务服务器。 |
| sgl-server | 运行 sgl 服务器。 |
| evaluate | 运行评估。 |
| run | 运行智能体(Agents)。 |
| env | 管理、提供服务并与环境交互。 |
| tool | 管理和运行工具。 |
| skill | 管理和运行技能。 |
| code-interpreter | 运行代码解释器。 |
agentlin mcp-server
启动 MCP 服务器,注册工具供 agent 调用
agentlin mcp-server --name <tool_name> --host <host> --port <port> --path <path> [--debug]
agentlin env (agent-env)
管理和运行环境,提供环境服务
agentlin env list
agentlin env info <env_name>
agentlin env play --env <env_name> --env-args '{"arg1": "value1", "arg2": "value2"}'
如果环境是带工具的,即继承自 IToolEnvironment,则可以将环境转换为 MCP server,后续可注册环境内的工具供 agent 调用。
agentlin env-as-mcp-server --env <env_name> --port <port> --env-args '{"arg1": "value1", "arg2": "value2"}'
agentlin tool (agent-tool)
管理和运行工具,提供工具服务
agentlin tool list
agentlin tool --name <tool_name> --tool-args '{"arg1": "value1", "arg2": "value2"}'
agentlin skill (agent-skill)
管理和运行技能,提供技能服务
agentlin skill list
agentlin skill info <skill_name>
agentlin skill --name <skill_name> --skill-args '{"arg1": "value1", "arg2": "value2"}'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentlin-0.0.26.tar.gz.
File metadata
- Download URL: agentlin-0.0.26.tar.gz
- Upload date:
- Size: 456.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.11.5 Darwin/25.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d34fb9f1cba5faa354019d5d6e7fce7a5a4f32ad781f23613de96bddc2764f2
|
|
| MD5 |
3bc028d0381c2846a80a8ac888cb71e3
|
|
| BLAKE2b-256 |
1571f2c6c491e20b063c8c729afb0d76b9986f9f4bc1c13bbdea1f7665323a2a
|
File details
Details for the file agentlin-0.0.26-py2.py3-none-any.whl.
File metadata
- Download URL: agentlin-0.0.26-py2.py3-none-any.whl
- Upload date:
- Size: 531.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.11.5 Darwin/25.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6629f1f5bbc0c8defa060123bfc59947d4490c94287cc160da71f78378748648
|
|
| MD5 |
face5c13cd5ca857932a6d8d11d58a60
|
|
| BLAKE2b-256 |
e98566921ff79603a180b9801b7a9e614c692d12a567dd89f6f61a76dfa8be47
|