# CogitoAgent
**Repository Path**: cnt-code/cogito-agent
## Basic Information
- **Project Name**: CogitoAgent
- **Description**: 持续思考的智能体 - 探索文件 · 联网搜索 · 自主学习
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: project
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 1
- **Created**: 2026-06-07
- **Last Updated**: 2026-06-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 智能体, 人工智能, Nodejs, agnet, JavaScript
## README
# CogitoAgent
CogitoAgent 是一款运行于本地的自主 AI 智能体,融合了文件管理、知识挖掘、系统操作与联网能力。它直接在用户配置的工作目录下运行,无需上传任何文件至第三方服务器,在保障数据隐私安全的同时,提供持续运转的智能助理服务。
不同于传统的聊天机器人,CogitoAgent 具备持续思考、自主探索、工具执行的能力,能够在后台主动发现和整理用户的本地文件资产,并可通过扩展工具集获得更多能力。

## 需要这些依赖
Node.js 18+ 是推荐版本。其他版本可能需要不同的安装命令。
```
npm install
```
非必需依赖,仅用于特定功能。
```
# 如果需要开发调试
npm install --save-dev nodemon
```
## 文件信息
以下列出所有相关代码及其他相关文档的存储位置。
```
CogitoAgent/
├── src/
│ ├── agent/
│ │ ├── Agent.js # 核心智能体与状态机
│ │ ├── prompt.js # 对话历史与上下文管理
│ │ └── tools/ # 工具集
│ │ ├── index.js # 工具统一导出入口
│ │ ├── path.js # 工作区路径工具
│ │ ├── file.js # 文件操作工具
│ │ ├── web.js # 网页相关工具
│ │ ├── system.js # 系统操作工具
│ │ └── TOOL_DEVELOPMENT.md # 工具开发文档
│ ├── api/
│ │ ├── client.js # OpenAI 兼容 API 客户端
│ │ └── webSearch.js # 联网搜索模块
│ ├── io/
│ │ └── terminal.js # 终端 UI 与彩色输出
│ ├── config.js # 配置管理
│ └── setup.js # 首次运行引导
├── personas/ # 预设人设包
│ ├── explorer.md
│ ├── scholar.md
│ ├── assistant.md
│ ├── creative.md
│ ├── critic.md
│ ├── teacher.md
│ ├── wenchen.md
│ ├── wujiang.md
│ ├── yingwei.md
│ ├── zhanshi.md
│ ├── moushi.md
│ ├── jianguan.md
│ └── xiake.md
├── data/
│ └── conversation.json # 对话历史持久化
├── persona.md # 当前人设配置
├── config.json # 用户配置
└── package.json
```
## 自动操作
### 本地自动操作

### 网页自动操作

### 文件增删改查

## 可爱的架构图
CogitoAgent 智能体项目通用架构图。
```mermaid
graph TD
classDef core fill:#e3f2fd,stroke:#1565c0,stroke-width:2px,color:#0d47a1
classDef tools fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#e65100
classDef io fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#4a148c
classDef api fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,stroke-dasharray: 5 5,color:#1b5e20
subgraph Core ["Agent Core"]
StateMachine["State Machine
THINKING / AWAITING_INPUT"]:::core
ThinkLoop["Think Loop
每3秒触发"]:::core
PromptMgr["Prompt Manager
历史压缩管理"]:::core
end
subgraph Tools ["Tools"]
FileTools["File Tools
ls/read/copy/mkdir"]:::tools
WebTools["Web Tools
search/browse/fetch"]:::tools
SystemTools["System Tools
listApps/openApp/closeApp"]:::tools
end
subgraph IO ["I/O"]
Terminal["Terminal UI
彩色输出"]:::io
UserInput["User Input
ENTER打断"]:::io
end
subgraph API ["API Layer"]
Client["OpenAI Client
流式响应"]:::api
WebSearch["Web Search
联网搜索"]:::api
end
UserInput --> StateMachine
StateMachine --> ThinkLoop
ThinkLoop --> PromptMgr
PromptMgr --> Client
Client --> FileTools
Client --> WebTools
Client --> SystemTools
FileTools --> Terminal
WebTools --> Terminal
SystemTools --> Terminal
WebSearch --> Client
```
## 核心功能
### 核心功能的参数
| 功能 | 说明 |
| -------- | ------------------------------ |
| `思考间隔` | 3秒 |
| `历史压缩阈值` | 150轮对话后自动总结 |
| `状态机` | THINKING / AWAITING\_INPUT 双状态 |
| `流式输出` | OpenAI 兼容 API 实时响应 |
### 特别的工具
| 工具 | 功能描述 |
| ----------------------- | -------------------- |
| `ls(path)` | 列出目录内容(只显示一级) |
| `read(path)` | 读取文件内容(自动检测二进制文件并跳过) |
| `copy(src, dest)` | 复制文件 |
| `mkdir(path)` | 创建文件夹(支持递归创建) |
| `create(path, content)` | 创建新文件 |
| `search(query)` | 联网搜索,获取最新信息摘要与参考链接 |
| `browse(url)` | 在默认浏览器中打开指定网址 |
| `fetchPage(url)` | 抓取静态网页正文,提取标题、段落和链接 |
| `listApps()` | 列出当前电脑已安装的所有软件 |
| `openApp(name)` | 通过名称打开指定软件 |
| `closeApp(name)` | 关闭正在运行的指定软件 |
(其实还有13种预设人设...)
## 使用指南
### 首次运行
1. 安装依赖:
```bash
npm install
```
1. 启动程序:
```bash
npm start
```
首次运行会自动引导完成以下配置:
1. API Base URL(支持 OpenAI 兼容的第三方 API)
2. API Key
3. 模型名称
4. 工作区路径
5. 人设选择
### 日常交互
```bash
npm start
```
启动后:
- **ENTER** — 打断当前思考,输入指令
- **指令 + ENTER** — 发送消息给 AI
- **exit** — 退出程序
### 应用场景
- **文件检索与管理**: 用自然语言描述需求,AI 在工作区中定位、复制、整理文件
- **知识挖掘**: 自动发现被遗忘的文件,将分散的文档变成可检索的知识库
- **项目理解**: 基于探索历史回答"这个目录/文件是做什么的",帮助快速了解陌生项目
- **内容摘要**: 读取文件内容并提炼关键信息,节省阅读时间
- **联网助手**: 结合本地文件与实时网络信息进行综合回答
- **系统控制**: 列出、打开或关闭软件,作为简易的系统控制助手
- **数字伙伴**: 自定义人设,拥有持续记忆的个人 AI 伙伴
## 已知问题
- [ ] 工具"downloadFile"会把目标文件下载到%temp%里
- [ ] AI回复会早于工具调用提示
## 项目许可证
本项目采用 Apache 2.0 许可证开源。
如有任何问题、需求或 Bug 反馈,请通过以下方式联系我们。
Source Issues :