# myagent **Repository Path**: akinggw/myagent ## Basic Information - **Project Name**: myagent - **Description**: 这是一个基于c++开发的AI agent系统,开发目的并不是想做成一个通用的agent系统,而只是作为软件系统的一个补充 主要用于替换软件系统中一些人为的工作流,转为AI来控制, 另外使得原用软件系统更好用,更智能。 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-25 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # myagent 项目分析报告 ## 1. 项目概述 myagent 是一个基于 C++ 开发的 AI agent 系统,其设计目标不是构建通用的 agent 系统,而是作为现有软件系统的补充,主要用于: - 替换软件系统中的人为工作流,转为由 AI 控制 - 提升现有软件系统的易用性和智能性 ## 2. 系统架构 ### 2.1 核心组件 整个系统基于 **Actor 模型** 构建,主要包含以下四个核心组件: | 组件 | 职责 | 实现文件 | |------|------|---------| | **actor** | 系统基础,负责消息传递和处理 | srcs/agentcpp/actor.h/cpp | | **agent** | 派生自 actor,管理和传递消息 | srcs/agentcpp/agent.h/cpp | | **tool** | 支持 MCP 协议,基于 duktape 实现工具逻辑 | srcs/agentcpp/tool.h/cpp | | **model** | 测试使用 GLM-5 | srcs/agentcpp/glm_model.h/cpp | ### 2.2 系统架构图 ``` ┌─────────────────┐ │ plan_agent │ 任务规划与派发 └────────┬────────┘ │ ┌────────▼────────┐ │ sub_agents │ 各种功能的专业 agent └────────┬────────┘ │ ┌────────▼────────┐ │ agent │ 基础 agent 类 └────────┬────────┘ │ ┌────────▼────────┐ │ actor │ 消息传递基础 └────────┬────────┘ │ ┌────────▼────────┐ │ tools │ 工具系统 └────────┬────────┘ │ ┌────────▼────────┐ │ model │ AI 模型 (GLM-5) └─────────────────┘ ``` ## 3. 核心功能分析 ### 3.1 已实现功能 1. **工具系统**: - 支持 MCP 协议 - 支持本地和远程调用 - 基于 duktape 引擎,使用 JavaScript 实现工具逻辑 - 工具配置可从文件加载 2. **Agent 系统**: - 实现了基本的 agent 类,支持消息处理和工具调用 - 实现了 plan_agent,可将任务派发给不同功能的 sub_agents - 支持设置 agent 名称、描述、脚本等属性 3. **网络通信**: - 内置 WebSocket 服务器,支持网络通信 - 消息管理系统,处理消息的发送和接收 ### 3.2 计划功能 1. **记忆功能**:计划实现 agent 的记忆能力,使其能够记住之前的交互和信息 2. **业务场景测试**:在不同的业务场景下进行测试和完善 ## 4. 技术实现分析 ### 4.1 核心技术栈 | 技术/库 | 用途 | 来源 | |---------|------|------| | C++ | 主要开发语言 | 项目源码 | | duktape | JavaScript 引擎,用于工具逻辑实现 | srcs/duktape/ | | GLM-5 | AI 模型 | srcs/agentcpp/glm_model.h/cpp | | WebSocket | 网络通信 | srcs/network/ | | JSON | 数据交换格式 | srcs/common/json.hpp | | log4z | 日志系统 | srcs/common/log4z.h/cpp | | BS_thread_pool | 线程池 | srcs/common/BS_thread_pool.hpp | ### 4.2 关键模块分析 #### 4.2.1 Actor 模型实现 Actor 模型是整个系统的基础,提供了消息传递和处理的机制。通过 Scheduler 管理 Actor 的生命周期和消息分发。 #### 4.2.2 Agent 系统 - **基础 agent**:实现了消息处理、工具调用等核心功能 - **plan_agent**:扩展了基础 agent,增加了任务规划和派发能力,可以根据任务类型将其分配给不同的 sub_agents #### 4.2.3 工具系统 工具系统基于 duktape JavaScript 引擎,支持通过配置文件定义工具的参数、描述和脚本逻辑。工具可以被 agent 调用,执行特定的任务。 #### 4.2.4 网络系统 - **WebSocket 服务器**:提供网络接口,支持外部与系统的通信 - **消息管理系统**:处理消息的路由和分发 ## 5. 目录结构分析 ``` ├── bin/ # 二进制文件和配置 │ ├── configs/ # 配置文件 │ │ ├── agents/ # agent 配置 │ │ └── tools/ # 工具配置 │ └── test.html # 测试页面 ├── screen/ # 截图 ├── srcs/ # 源代码 │ ├── agentcpp/ # agent 相关实现 │ ├── common/ # 通用工具类 │ ├── duktape/ # JavaScript 引擎 │ ├── network/ # 网络相关实现 │ ├── main.cpp # 主入口文件 │ └── makefile # 构建文件 ├── .gitignore # Git 忽略文件 ├── LICENSE # 许可证 └── README.md # 项目说明 ``` ## 6. 系统运行流程 1. **启动流程**: - 解析命令行参数,设置 WebSocket 服务器端口 - 初始化系统管理器和 WebSocket 服务器 - 配置日志系统 - 初始化线程池 - 创建监督者(Supervisor) - 启动 WebSocket 服务器 - 启动消息系统 - 进入主循环,等待 WebSocket 服务器停止 2. **消息处理流程**: - 外部通过 WebSocket 发送消息 - 消息系统接收并处理消息 - 根据消息类型分发给相应的 agent - agent 处理消息,可能调用工具或与模型交互 - 将处理结果返回给发送者 ## 7. 配置系统 系统使用 JSON 格式的配置文件来定义 agent 和工具: - **Agent 配置**:位于 `bin/configs/agents/` 目录,定义了不同功能的 agent - **工具配置**:位于 `bin/configs/tools/` 目录,定义了可被 agent 调用的工具 ## 8. 项目特点与优势 1. **模块化设计**:系统采用模块化设计,各组件职责明确,便于扩展和维护 2. **Actor 模型**:基于 Actor 模型实现,提供了高效的消息传递机制 3. **工具系统**:支持通过 JavaScript 实现工具逻辑,灵活性高 4. **网络通信**:内置 WebSocket 服务器,支持远程调用 5. **可扩展性**:通过 plan_agent 可以轻松扩展不同功能的 sub_agents ## 9. 应用场景 该系统可应用于以下场景: 1. **自动化工作流**:替换软件系统中的人为工作流,提高效率 2. **智能助手**:作为软件系统的智能助手,提供自然语言交互 3. **任务调度**:通过 plan_agent 实现复杂任务的调度和管理 4. **业务流程优化**:根据业务场景定制 agent,优化业务流程 ## 10. 未来发展建议 1. **记忆功能**:尽快实现 agent 的记忆能力,使其能够记住之前的交互和信息 2. **多模型支持**:扩展支持更多的 AI 模型,提高系统的适应性 3. **知识库集成**:集成知识库,使 agent 能够访问和利用更多的领域知识 4. **可视化界面**:开发更友好的可视化界面,方便用户配置和管理 agent 5. **性能优化**:针对大规模任务处理进行性能优化,提高系统的响应速度和处理能力 ## 11. 结论 myagent 是一个设计合理、架构清晰的 AI agent 系统,基于 C++ 和 Actor 模型实现,具有良好的可扩展性和灵活性。系统已经实现了工具调用、任务循环和任务派发等核心功能,为后续的功能扩展和业务应用奠定了坚实的基础。 通过进一步完善记忆功能和在不同业务场景下的测试,myagent 有望成为一个强大的 AI 助手系统,为软件系统提供智能化的能力。 #### 截图预览 ![现有智能体](https://gitee.com/akinggw/myagent/raw/master/screen/微信图片_20260329141637_1312_14.png) ![连续任务执行](https://gitee.com/akinggw/myagent/raw/master/screen/微信图片_20260329141108_1308_14.png) ![多任务切换](https://gitee.com/akinggw/myagent/raw/master/screen/微信图片_20260329141617_1310_14.png)