向AI转型的程序员都关注公众号 机器学习AI算法工程
项目名称:CogitoAgent — 云端驱动、本地执行的自主AI智能体
技术栈:Node.js + Electron + WebSocket + LLM API
核心定位:隐私优先的本地AI助手,持续思考、自主探索、工具执行
工具数量:16+工具模块,100+工具函数
CogitoAgent 是一款运行于本地的自主AI智能体,融合了文件管理、知识挖掘、系统操作、代码执行与联网能力。它直接在用户配置的工作目录下运行,无需上传任何文件至第三方服务器,在保障数据隐私安全的同时,提供持续运转的智能助理服务。
与传统聊天机器人的本质区别
传统聊天机器人是"一问一答"的被动模式,用户不提问,AI就处于休眠状态。而CogitoAgent具备三大核心能力:
- 持续思考:
每3秒自动触发一次思考循环,主动分析当前任务状态 - 自主探索:
LLM自主决策调用工具,无需用户逐一下达指令 - 工具执行:
内置19个工具模块,支持文件操作、代码执行、Git、数据库、OCR等
简而言之,CogitoAgent不是又一个聊天机器人,而是一个真正"活"在你电脑里的智能体。
二、核心功能特性
|
|
|
|---|---|
| 隐私优先 |
|
| 持续思考 |
|
| 工具执行 |
|
| 安全沙箱 |
|
| 多会话管理 |
|
| 桌面模式 |
|
| MCP协议 |
|
| 插件系统 |
|
| 思维链可视化 |
|
| Agent集群 |
|
| 微信集成 |
|
- 记忆系统
—— 基于 SQLite 的长期存储和语义检索 - 任务管理
—— 任务创建、分解和状态追踪 - 代码沙箱
—— isolated-vm进程级隔离,支持 JS 和 Python - 角色系统
—— 22 个预设角色,支持自定义和热切换 - 会话管理
—— 独立上下文,自动压缩 - 统计模块
—— 工具使用追踪和性能指标 - 思维链可视化
—— 实时思考过程展示 - 智能体集群
—— 子智能体创建、任务委派与集群监控,详见 introduction/agent-cluster.md
扩展
详见 introduction/extensions.md
- 插件系统
—— 动态加载自定义工具插件 - MCP 协议
—— 将工具暴露为 MCP Server - 追踪系统
—— 工具执行和 LLM 调用的轻量级可观测性 - 熔断与重试
—— 可靠的网络请求 - 多模型支持
—— OpenAI、Moark、Anthropic、Google - 网络搜索
—— 内置互联网搜索能力
Docker
详见 introduction/deployment.md
docker-compose up -d
三、技术架构深度解析
3.1 整体架构
CogitoAgent采用分层架构设计,主要包含四个层次:
┌─────────────────────────────────────────────────────┐
│ 终端层 (Terminal Layer) │
│ ┌──────────────┐ ┌─────────────────────┐ │
│ │ CLI Terminal │ │ Electron Dashboard │ │
│ │ 输入入口 │ │ GUI 窗口 │ │
│ └──────────────┘ └─────────────────────┘ │
├─────────────────────────────────────────────────────┤
│ 核心层 (Core Layer) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Agent.js │ │ state.js │ │session.js│ │
│ │ 思考循环 │ │ 状态机 │ │ 会话管理 │ │
│ │ 3秒触发 │ │ │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │commands.js│ │registry.js│ │ stats.js │ │
│ │ 命令处理 │ │ 工具注册 │ │ 统计分析 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
├─────────────────────────────────────────────────────┤
│ 工具层 (Tool Layer) │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ 文件 │ │ 网页 │ │ 浏览器 │ │ 代码 │ │
│ │ 操作 │ │ 工具 │ │ 自动化 │ │ 沙箱 │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ Git │ │ 任务 │ │ 记忆 │ │ 微信 │ │
│ │ 操作 │ │ 管理 │ │ 系统 │ │ 渠道 │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
├─────────────────────────────────────────────────────┤
│ 扩展层 (Extension Layer) │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ MCP │ │ 插件 │ │ 重试 │ │ 追踪 │ │
│ │ 协议 │ │ 系统 │ │ 熔断 │ │ 可观测 │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
├─────────────────────────────────────────────────────┤
│ API层 (API Layer) │
│ ┌─────────────────────────────────────────┐ │
│ │ LLM API (OpenAI / Claude / 兼容API) │ │
│ └─────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
3.2 核心组件职责
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.3 双状态机设计
CogitoAgent的状态机设计非常简洁,只有两个核心状态:
STATE = {
THINKING: 'THINKING', // 思考状态
AWAITING_INPUT: 'AWAITING_INPUT' // 等待用户输入
}
设计优势:
-
THINKING状态下,思考循环持续运行,AI主动分析和执行任务 -
AWAITING_INPUT状态下,思考循环完全停止,等待用户输入 -
用户按Enter键可随时中断思考,切换到输入模式 -
解决了一般Agent"用户输入时AI还在思考"的冲突问题
3.4 基于标记的工具调用协议
CogitoAgent没有使用OpenAI的Function Calling(因为需要特定API支持和复杂的参数schema),而是设计了一套纯文本标记协议:
工具调用格式:
[TOOL] functionName(args) [/TOOL]
优势:
-
不依赖特定API的Function Calling支持 -
比JSON schema更简单直观 -
兼容任何OpenAI兼容的API -
易于调试和日志记录
四、工具系统详解
CogitoAgent内置19个工具模块,覆盖100+工具函数:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
五、核心优势与价值
隐私安全:数据不出本地
所有文件操作使用本地fs模块,对话历史存于data/conversation.json,不上传任何用户数据到第三方服务器。只有对话上下文会发送到用户配置的LLM API,工作区文件始终保持在本地。
适用场景:企业内部文档处理、敏感数据处理、个人隐私文件管理
持续思考:AI主动工作
传统AI需要用户不断提问,CogitoAgent每3秒自动触发思考循环。例如,用户可以说"帮我整理downloads文件夹",AI会在后台持续执行,直到任务完成。
核心机制:setTimeout递归循环 + 双状态机,确保思考过程可控
工具丰富:一站式解决方案
内置19个工具模块,覆盖文件管理、代码执行、网页搜索、数据库操作、OCR识别、Office文档等场景。用户无需在多个工具间切换,CogitoAgent可以自动调用合适的工具完成复杂任务。
示例:"帮我搜索最新的AI论文,下载PDF,提取摘要,保存到research文件夹"
安全沙箱:代码执行无忧
JavaScript代码执行采用isolated-vm进程级隔离,确保AI执行代码时不会影响系统安全。Python代码通过子进程执行,同样具备隔离性。
安全等级:进程级隔离,比虚拟机更轻量,比直接执行更安全
多会话管理:任务隔离
支持多个独立对话会话,每个会话拥有独立的上下文和历史记录。可以为不同项目或任务创建不同会话,互不干扰。
功能:会话创建、切换、删除、重命名、历史压缩
桌面模式:可视化操作
提供Electron桌面窗口,通过WebSocket与终端Agent通信。支持Dashboard模式和Monitor模式,可视化展示思考过程、工具执行、集群状态。
模式:桌面悬浮窗 + Dashboard全窗口 + Monitor监控面板
六、社区认可度
项目在Gitee和GitHub双平台开源,拥有完整的文档体系(中文为主),包括工具系统文档、架构文档、配置指南、部署文档等。作者在CSDN发布了一系列开发实战文章,详细介绍了项目的技术路线和实现细节。
七、实战指南
7.1 环境要求
- Node.js
:22.12或更高版本 - npm/yarn
:包管理器 - Python
:3.x(可选,用于Python代码执行)
7.2 安装步骤
# 1. 克隆项目(国内推荐Gitee)
git clone https://gitee.com/cnt-code/cogito-agent.git
cd cogito-agent
# 2. 安装依赖
npm install
# 3. 首次启动(会进入配置向导)
npm start
国内用户注意:如果npm install下载Electron二进制文件失败,可设置镜像:
# Windows PowerShell
$env:ELECTRON_MIRROR = "https://npmmirror.com/mirrors/electron/"
npm install
# Linux/Mac
export ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
npm install
7.3 首次配置
运行npm start后,会进入交互式配置向导,需要填写以下信息:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7.4 启动模式
|
|
|
|
|---|---|---|
npm start |
|
|
npm run cli |
|
|
npm run electron:desktop |
|
|
npm run electron:dashboard |
|
|
7.5 常用命令
|
|
|
|---|---|
/sessions |
|
/new |
|
/switch <id> |
|
/persona <name> |
|
/personas |
|
/tools |
|
/status |
|
/help |
|
/clear |
|
ENTER |
|
exit |
|
7.6 实战示例
示例1:文件整理
# 用户输入
帮我整理downloads文件夹,把所有PDF文件移动到Documents/PDFs目录
# CogitoAgent自动执行流程
1. 调用 ls("C:\Users\username\Downloads") 列出文件
2. 筛选出所有.pdf文件
3. 调用 mkdir("C:\Users\username\Documents\PDFs") 创建目标目录
4. 循环调用 move() 移动每个PDF文件
5. 返回整理结果
示例2:代码分析
# 用户输入
分析当前项目的代码结构,给出改进建议
# CogitoAgent自动执行流程
1. 调用 ls(".") 列出项目根目录
2. 递归读取关键文件(package.json、src/等)
3. 调用 searchMemory() 查找相关记忆
4. LLM分析代码结构,生成改进建议
5. 返回结构化分析报告
示例3:网页研究
# 用户输入
搜索最新的React 19特性,总结关键变化
# CogitoAgent自动执行流程
1. 调用 search("React 19 new features 2026") 搜索网页
2. 调用 fetchPage() 获取相关页面内容
3. LLM分析和总结关键特性
4. 调用 create() 保存总结到本地文件
5. 返回结构化总结
八、扩展开发
8.1 自定义工具开发
CogitoAgent支持动态加载自定义工具插件。工具开发遵循统一接口规范:
// 自定义工具示例: myTool.js
module.exports = {
name: 'myCustomTool',
description: '我的自定义工具',
parameters: {
type: 'object',
properties: {
input: { type: 'string', description: '输入参数' }
},
required: ['input']
},
async execute(args) {
// 工具逻辑实现
return { success: true, data: '执行结果' };
}
};
8.2 MCP协议集成
CogitoAgent支持将工具作为MCP Server暴露,供其他AI客户端(如Claude Desktop、Cursor等)集成使用。
8.3 插件系统
通过插件系统,可以在运行时动态加载新的工具模块,无需修改核心代码。
九、Docker部署
项目支持Docker容器化部署:
# 使用docker-compose一键启动
docker-compose up -d
# 或者手动构建
docker build -t cogito-agent .
docker run -it -v /path/to/workspace:/workspace cogito-agent
十、适用人群
开发者
-
学习Agent架构设计:状态机、工具系统、会话管理 -
学习LLM应用开发:流式响应、上下文管理、提示词工程 -
学习Electron桌面应用开发
技术团队
-
内部知识库管理和检索 -
自动化运维任务 -
代码审查和分析
个人用户
-
文件整理和管理 -
信息搜索和总结 -
日程管理和提醒
十一、与同类项目对比
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
十二、总结
CogitoAgent的核心价值
- 隐私优先:
数据不出本地,适合处理敏感信息 - 持续思考:
AI主动工作,无需用户不断提问 - 工具丰富:
19个工具模块覆盖常见场景 - 安全沙箱:
代码执行进程级隔离 - 易于扩展:
插件系统和MCP协议支持
CogitoAgent不是一个完美的项目——它有已知的安全隐患,有平台限制(目前主要支持Windows),有未覆盖的测试。但它展示了一个完整、可运行、可扩展的本地智能体应该是什么样子:
-
一个持续运行的思考循环 -
一套简单但够用的工具调用协议 -
一个可定制的人设系统 -
一种隐私优先的设计理念
对于想要了解AI Agent架构、学习LLM应用开发、或需要本地AI助手的开发者来说,CogitoAgent是一个值得研究和使用的开源项目。
机器学习算法AI大数据技术
搜索公众号添加: datanlp
长按图片,识别二维码
阅读过本文的人还看了以下文章:
【模型高效部署】tensorrtx 深度解读,yolov11高性能推理实战案例
整理开源的中文大语言模型,以规模较小、可私有化部署、训练成本较低的模型为主
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx

