MyAgent 摒弃了花哨的提示词堆砌,专注于底层的工程化实现与代理能力扩展:
- 四层混合记忆架构 (Hybrid Memory Architecture):采用 SQLite (关系型) + ChromaDB (向量型) 混合存储。实现了包括短期对话上下文、长期的知识沉淀(Knowledge)、不可变的用户画像(Profile)以及任务历史(Task)的生命周期隔离与协同。
- 基于遗忘算法的存储分配:通过内置的 Decay 遗忘机制引擎定期清理/折叠低价值记忆(核心公式
Score = Importance × AccessFreq × e^(-λ×Time) × TypeCoeff),防止向量空间的数据污染。 - 动态上下文压缩 (Context Compression):设计了滑动窗口与高频摘要合并策略,突破大模型 Context Window 长度限制,用较低的 Token 消耗率维持深度对话树。
- MCP (Model Context Protocol) 原生支持:实现了一套符合标准规范的通信中间件,支持通过 STDIO 及 SSE 动态挂载、卸载本地或远端的外部工具集,从而安全且无缝地与外部系统交互。
- 意图路由与技能分发 (Skill Dispatching):内置基于
YAML+Markdown的声明式轻量化本地插件系统。Agent 会前置执行意图识别(Intent Recognition),按需懒加载 (Lazy Load) 执行环境与专属工具链。
系统遵循领域驱动设计 (DDD) 原则与整洁架构 (Clean Architecture),确保各种基础服务和模型接口的高度解耦:
┌─────────────────────────────────────────────────────────────┐
│ Interface Layer │
│ CLI (Textual TUI) │ REST API (FastAPI) │
├─────────────────────────────────────────────────────────────┤
│ Application Layer │
│ AgentService ─┬─ SkillDispatcher (渐进式意图识别与Skill管理) │
│ ├─ MemoryManager (分级记忆管理与召回优化) │
│ ├─ ContextCompressor (滑动窗口与摘要归零) │
│ └─ LLM Core Engine (流式解析与 Tool Loop) │
├─────────────────────────────────────────────────────────────┤
│ Core Layer │
│ Entities (Memory/Message) │ Interfaces │ System Prompts │
├─────────────────────────────────────────────────────────────┤
│ Infrastructure Layer │
│ SQLite + ChromaDB │ MCP Client Registry │ Forgetting Engine │
└─────────────────────────────────────────────────────────────┘
- Python 3.10+
- Node.js 18+ (用于运行 Npm 生态的部分 MCP Tool Servers,如 Playwright 工具等)
- 需支持 Tool Calling / Function Calling 的任意 OpenAI 兼容模型 API (如
gpt-4o,claude-3-5-sonnet,deepseek-chat)
推荐使用 uv 工具进行极速的 Python 依赖隔离和安装:
git clone https://github.com/Lin-A1/myagent.git
cd myagent
# 安装 Python 核心依赖和本体模块
uv sync
# (后备方案:pip install -e .)
# 安装前端/MCP 插件相关依赖
npm install如需 Agent 直接操作你正在使用的浏览器(复用已登录的会话和 Cookies),请在 Chrome/Edge 中安装 Playwright MCP Bridge 扩展。
复制提供的环境变量模板文件,配置模型与数据库信息:
cp .env.example .env.env 核心配置项说明:
LLM_API_KEY: 必填,大模型推理 API Key。LLM_BASE_URL: 必填,符合 OpenAI 标准的接口 URL (默认https://api.openai.com/v1)。LLM_MODEL: 需要调用的基座模型名称。DATABASE_URL: 关系型数据库连接驱动配置(支持异步驱动引擎)。
由底层统一提供了标准控制台及 REST 服务网关两种交互形式:
# 方式一:进入基于 Textual 驱动的高级 TUI 终端模式
myagent
# 方式二:以后台守护进程 / Web API 模式启动 (默认监听 0.0.0.0:8000)
python -m myagent.interface.apiMyAgent 能够零代码集成外部 MCP Server。只需修改工程目录中的 mcp_servers/mcp_servers.json 即可进行声明式接入:
{
"mcpServers": {
"sqlite-tool": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "./storage/db/myagent.db"],
"autoConnect": true
}
}
}你可以通过在 skills/ 目录下放置 SKILL.md,使用知识图谱和结构化标签定义智能体在特定业务上的操作约束:
---
name: backend-tester
description: 评估和执行后端的单元与接口集成测试
version: "1.0.0"
---
# Action Constraints
1. 必须在 ./tests/ 层级目录下通过 Pytest 执行验证
2. 不允许直接发起未经 Mock 确认的 DB Write 操作myagent/
├── myagent/
│ ├── config/ # DI 依赖注入容器及 Pydantic Settings 解析
│ ├── core/ # 领域模型定义及 Prompt 模板池
│ ├── infrastructure/ # 底层驱动 (LLM 网关, DB/Vector 操作逻辑)
│ └── interface/ # 表现层级 (CLI TUI / FastAPI)
├── skills/ # 本地 YAML/Markdown 混合驱动的技能包
├── mcp_servers/ # 第三方 MCP Server 声明式配置表
├── storage/ # 本地持久化产生的数据卷 (SQLITE / ChromaDB)
└── tests/ # Pytest 单元与集成测试套件用例库
- 多层级记忆持久化设计与向量存储接入
- 基于 React (Reason + Act) 的工具调用循环及熔断机制
- 标准 Textual TUI CLI 终端构建
- Model Context Protocol 底层适配开发及会话隔离管理
- 分布式运行状态管理支持 (Redis 存储后端增强)
- 对复杂客户端的高级自动化接管机制 (基于 Playwright 视觉增强引擎)
- 针对长文本分析和 RAG 流程的知识库微调管理工具
深入了解系统底层,欢迎参阅文档:
- 记忆存储架构和衰退(Decay)引擎原理解析
- 如何在 Myagent 中部署和编写 Skill 插件
- MCP (Model Context Protocol) 适配规范与扩展教程
- 开发者 REST API 接口定义
欢迎在 GitHub 上提交 Issue 和 Pull Request,共同探索工程化智能体架构的前沿。了解详细流程,请查阅 CONTRIBUTING.md。
本项目代码与协议均基于 MIT License 开源发布。