Djtony707/TITAN
GitHub: Djtony707/TITAN
TITAN 是一个纯 TypeScript 实现的自主 AI 智能体框架,支持 21 个模型提供商、89 个内置工具、多智能体协作和 Mesh 网络共享,主打零原生编译开箱即用。
Stars: 5 | Forks: 3
# TITAN — 智能任务自动化网络
`(或在仪表盘中点击“批准”)
4. 现在两台机器共享模型了!机器 2 可以使用机器 1 的 Ollama 模型,机器 1 可以通过机器 2 使用 Anthropic API
### 批准连接
当 TITAN 发现另一台机器时,它不会自动连接 —— 它会先征求你的同意。这可以防止随机机器访问你的 AI 模型。
```
# See who's been discovered and is waiting for your OK
titan mesh --pending
# Example output:
# gpu-desktop
# Node ID: a1b2c3d4e5f6g7h8
# Address: 192.168.1.100:48420
# Models: ollama/llama3.1, ollama/qwen3:72b
# Approve: titan mesh --approve a1b2c3d4e5f6g7h8
# Say yes
titan mesh --approve a1b2c3d4e5f6g7h8
# Say no
titan mesh --reject a1b2c3d4e5f6g7h8
# Already connected but want to disconnect?
titan mesh --revoke a1b2c3d4e5f6g7h8
```
TITAN 会记住你批准了哪些机器。如果你重启,它会自动重新连接它们。
### 跳过批准步骤
如果网络上的所有机器都是你自己的,并且你不想手动批准每一台:
```
titan mesh --auto-approve
```
现在任何共享你 secret 的 TITAN 实例都会自动连接。同样的方式可以将其关闭。
### 检查状态
```
titan mesh --status
# Shows:
# Enabled: Yes
# Max peers: 5
# Auto-approve: Off
# Connected Peers (2/5):
# gpu-desktop 192.168.1.100:48420 | 3 models | load: 0
# mini-pc 192.168.1.20:48420 | 12 models | load: 0
```
### 模型路由如何工作
当你要求 TITAN 使用一个模型时:
1. **本地优先** —— 如果你的机器拥有该模型(例如你有 API key,或者 Ollama 有),它在本地运行
2. **Mesh 回退** —— 如果本地提供商失败(没有 key,Ollama 没有),TITAN 会检查你已连接的对等节点。如果某个对等节点拥有该模型,请求会被发送到那里
3. **提供商故障转移** —— 如果没有任何对等节点拥有,TITAN 会尝试其他本地提供商作为最后手段
你不需要做任何特别的事情 —— 只需从下拉菜单中选择一个模型。如果它位于另一台机器上,TITAN 会处理路由。
### 连接不在同一 WiFi 上的机器
如果你的机器位于不同的网络,你有两个选择:
**选项 A:Tailscale(推荐)**
在两台机器上安装 [Tailscale](https://tailscale.com)(个人使用免费)。TITAN 会自动发现你 Tailscale 网络上的对等节点。
```
{
"mesh": {
"enabled": true,
"tailscale": true
}
}
```
**选项 B:手动 IP 地址**
如果你知道另一台机器的 IP:
```
titan mesh --add "192.168.1.100:48420"
```
### 完整配置
所有设置位于 `~/.titan/titan.json`:
```
{
"mesh": {
"enabled": true,
"secret": "TITAN-xxxx-xxxx-xxxx",
"mdns": true,
"tailscale": true,
"maxPeers": 5,
"autoApprove": false,
"allowRemoteModels": true,
"maxRemoteTasks": 3,
"staticPeers": []
}
}
```
| 设置 | 默认值 | 作用 |
|---------|---------|--------------|
| `maxPeers` | 5 | 最多允许多少台其他机器同时连接 |
| `autoApprove` | false | 如果为 `true`,跳过新机器的批准步骤 |
| `allowRemoteModels` | true | 允许其他机器使用你的模型。设为 `false` 可阻止它们 |
| `maxRemoteTasks` | 3 | 同时处理多少来自其他机器的请求 |
| `staticPeers` | [] | 不在同一 WiFi 上的机器的 IP:port 列表 |
## Custom Skills
在几秒钟内为 TITAN 创建新工具。将文件放入 `~/.titan/skills/` 即可自动加载。
### YAML 技能(最简单)
```
# ~/.titan/skills/word_count.yaml
name: word_count
description: Count words, lines, and characters in a file
parameters:
filePath:
type: string
description: Path to the file
required: true
script: |
const fs = require('fs');
const content = fs.readFileSync(args.filePath, 'utf-8');
const lines = content.split('\n').length;
const words = content.split(/\s+/).filter(Boolean).length;
return 'Lines: ' + lines + ', Words: ' + words + ', Characters: ' + content.length;
```
### JavaScript 技能
```
// ~/.titan/skills/hello.js
export default {
name: 'hello',
description: 'Greet someone by name',
parameters: {
type: 'object',
properties: {
name: { type: 'string', description: 'Name to greet' }
},
required: ['name']
},
execute: async (args) => `Hello, ${args.name}!`
};
```
### AI 生成的技能
```
titan skills --create "a tool that converts CSV files to JSON"
```
TITAN 会即时编写、编译并热加载该技能。因为既然能让你的 AI 写代码,何必自己动手?
### 技能自动生成
当 TITAN 遇到使用现有工具无法解决的任务时,它可以即时编写新技能、编译并立即使用。
## Channel Adapters
将 TITAN 连接到你的消息平台:
| 通道 | 库 | 状态 |
|---------|---------|--------|
| **Discord** | discord.js | 就绪 |
| **** | grammY | 就绪 |
| **Slack** | @slack/bolt | 就绪 |
| **Google Chat** | Webhooks | 就绪 |
| **WhatsApp** | Baileys | 就绪 |
| **Matrix** | matrix-js-sdk | 就绪 |
| **Signal** | signal-cli REST | 就绪 |
| **MS Teams** | botbuilder | 就绪 |
| **WebChat** | 内置 WebSocket | 就绪 |
所有 9 个通道都支持 DM 配对安全系统。通过 `~/.titan/titan.json` 或任务控制中心设置进行配置。
## Recipes
由斜杠命令触发的可复用多步骤工作流。
```
# Built-in recipes
/code-review # Review files for bugs and improvements
/standup # Prepare daily standup notes
/explain # Explain code in plain English
/brainstorm # Generate ideas on a topic
/debug # Debug errors with guided analysis
/plan # Deliberative reasoning with plan approval
```
Recipes 支持参数化提示词(`{{variable}}`)、可选的工具直接步骤和确认关卡。
## CLI Reference
| 命令 | 描述 |
|---------|-------------|
| `titan onboard` | 交互式设置向导(现包含 soul 引导配置) |
| `titan gateway` | 启动任务控制中心 |
| `titan agent -m "..."` | 向你的 agent 发送消息 |
| `titan send --to ch:id -m "..."` | 向特定通道发送消息 |
| `titan model --list` | 显示所有已配置的模型 |
| `titan model --discover` | 实时检测可用模型 |
| `titan model --set ` | 切换当前模型 |
| `titan model --alias =` | 创建模型别名 |
| `titan agents` | 多 agent 管理 |
| `titan mesh --init` | 初始化 mesh networking |
| `titan mesh --status` | 查看 mesh 对等节点、待定项和模型 |
| `titan mesh --pending` | 显示等待批准的对等节点 |
| `titan mesh --approve ` | 批准一个已发现的对等节点 |
| `titan mesh --reject ` | 拒绝一个待定的对等节点 |
| `titan mesh --revoke ` | 断开一个已批准的对等节点 |
| `titan mesh --auto-approve` | 切换自动批准模式 |
| `titan skills` | 列出已安装的技能 |
| `titan skills --create "..."` | 使用 AI 生成技能 |
| `titan pairing` | 管理 DM 访问控制 |
| `titan doctor` | 系统诊断 |
| `titan doctor --fix` | 自动修复检测到的问题 |
| `titan vault` | 管理加密密钥 vault |
| `titan config [key]` | 查看/编辑配置(如 `titan config agent.model`) |
| `titan graphiti --init` | 初始化知识图谱 |
| `titan graphiti --stats` | 图谱统计 |
| `titan mcp` | 管理 MCP server |
| `titan recipe --list` | 列出并运行已保存的 recipes |
| `titan monitor` | 管理主动式文件/计划监控器 |
| `titan autopilot --init` | 创建 AUTOPILOT.md 清单 |
| `titan autopilot --run` | 触发立即 autopilot 运行 |
| `titan autopilot --status` | 查看计划、上次运行、下次运行 |
| `titan autopilot --enable/--disable` | 切换 autopilot 模式 |
| `titan update` | 更新到最新版本 |
## 配置
所有状态位于 `~/.titan/`:
| 路径 | 用途 |
|------|---------|
| `titan.json` | 主配置文件 |
| `titan-data.json` | 运行时数据(会话、webhook) |
| `graph.json` | 时序知识图谱 |
| `knowledge.json` | 学习引擎知识库 |
| `profile.json` | 用户档案和偏好 |
| `vault.enc` | 加密密钥 vault |
| `audit.jsonl` | 防篡改审计追踪 |
| `node-id` | Mesh networking 节点身份 |
| `credentials/` | OAuth token(Google 等) |
| `workspace/SOUL.md` | Agent 个性定义 |
| `logs/` | 每日日志文件 |
| `plans/` | 持久化任务规划器状态 |
| `skills/` | 自定义用户技能(YAML, JS) |
| `recipes/` | 已保存的 recipe 工作流 |
## 开发
```
npm run build # tsup ESM production build
npm run test # vitest (3,171 tests, 81 files)
npm run ci # typecheck + full test suite
npm run typecheck # tsc --noEmit
npm run dev:gateway # Dev mode with tsx
npm run test:coverage # Coverage report (78%+ with 55% threshold)
```
### 架构
```
src/
agent/ Core agent loop, multi-agent, swarm, planner, autonomy, deliberation, cost optimizer
auth/ OAuth token managers (Google)
channels/ Discord, Telegram, Slack, Google Chat, WhatsApp, Matrix, Signal, Teams, WebChat
providers/ Anthropic, OpenAI, Google, Ollama + 16 OpenAI-compatible
memory/ Episodic, learning, relationship, temporal graph
skills/ 86 built-in tools + user skill loader
security/ Shield, sandbox, encryption, pairing, vault, audit log
gateway/ HTTP/WS server + Mission Control dashboard + OAuth endpoints
mesh/ mDNS + Tailscale peer discovery, WebSocket transport
recipes/ Workflow engine + persistence
mcp/ Model Context Protocol client
config/ Zod schema + loader (with deliberation + OAuth config)
cli/ Commander.js CLI (16 commands), self-healing doctor
utils/ Constants, logger, helpers
```
## 自主模式
| 模式 | 行为 |
|------|----------|
| `autonomous` | 完全自动 —— TITAN 执行所有工具无需询问 |
| `supervised` | 执行危险操作前询问(默认) |
| `locked` | 每次工具调用都请求许可 |
邮件工具按风险分类:`email_search`, `email_read`, `email_list` 是安全的;`email_send` 是中等的(因为不经询问就替别人发邮件是失去朋友的好方法)。
通过 `titan config set autonomy.mode supervised` 或任务控制中心设置进行配置。
## Roadmap
查看 [TASKS.md](TASKS.md) 获取完整的开发路线图。
### 最近发布 (v2026.5.x)
- **v2026.5.17**: GitHub 托管的技能市场 ([Djtony707/titan-skills](https://github.com/Djtony707/titan-skills) — 12 个精选技能),显示所有 21 个提供商的动态模型下拉菜单,市场 REST API,过期文档清理,3,171 个测试
- **v2026.5.14**: 收入自动化技能 (income_tracker, freelance_monitor, content_publisher, lead_scorer — 16 个新工具),Autopilot Playbook 模板,任务控制中心内的单技能启用/禁用开关,技能到工具映射
- **v2026.5.13**: Kimi K2.5 提供商,记忆清空钩子,用于本地 LLM 浏览的 web_read + web_act 工具
- **v2026.5.11**: 审慎推理(分析→规划→批准→执行),Gmail OAuth 集成(原生 fetch,零依赖),Soul 引导配置(4 步向导生成 SOUL.md),仪表盘内的 SOUL.md 实时编辑器,`/plan` 斜杠命令,宏大消息复杂性检测,Google OAuth 仪表盘控制,2,860+ 测试
- **v2026.5.9**: Bug 修复 + 本地模型性能 —— 端口预检查,小模型工具精简(<8B 模型获取 7 个核心工具),Ollama `think:false`,带有 GPU 自动检测的可配置停滞检测器,`titan config [key]`,通过 REST API 的斜杠命令,配置验证,图谱实体提取加固,并发 LLM 请求限制,2,850+ 测试
- **v2026.5.8**: Ollama 模型指南 (`docs/MODELS.md`),147→0 ESLint 警告,`local` 模型别名,2,830+ 测试
- **v2026.5.7**: Google Chat 通道(真正的 webhook),Autopilot 仪表盘面板,Cloudflare Tunnel 支持,2,600+ 测试
- **v2026.5.6**: 3 个新提供商 (Azure OpenAI, DeepInfra, SambaNova),Skyvern MCP 浏览器自动化,文档清理
- **v2026.5.5**: Autopilot 模式 —— 无人值守的计划 agent 运行(基于 cron)
- **v2026.5.4**: 加密密钥 vault,防篡改审计日志,自我修复的 doctor (`--fix`),3 个新提供商 (Venice AI, AWS Bedrock, LiteLLM),资源限制,2,100+ 测试
- **v2026.5.3**: 20 个运行时 bug 修复 (批次 1-2),1,523 个测试,66.88% 覆盖率
- 邮件技能 (通过 Nodemailer 实现 IMAP/SMTP)
- PDF 解析技能 (pdf-parse)
- 计算机控制(通过 nut.js 实现截图、鼠标、键盘)
- WhatsApp, Matrix, Signal, MS Teams 通道适配器
- 持久化 webhook 与 cron 调度
- 晨间简报系统
- OpenClaw 技能扫描器(隔离 + 自动扫描)
- 引导配置向导 (`titan onboard`)
- MCP (Model Context Protocol) 客户端支持
### 即将推出
- **向量搜索与 RAG Pipeline** — SQLite FTS5 + embeddings 用于语义记忆搜索
- **Code Interpreter** — 沙盒化的 JavaScript/Python 执行,用于数据分析
- **团队模式与 RBAC** — 用于多用户部署的基于角色的访问控制
## 贡献
1. Fork 本仓库
2. 创建一个特性分支 (`git checkout -b feat/my-feature`)
3. 提交你的更改 (`git commit -m "feat: add my feature"`)
4. 推送 (`git push origin feat/my-feature`)
5. 打开一个 Pull Request
我们不咬人。除非你提交的 PR 把 `is-even` 加为了依赖。
## TITAN 的未来
TITAN 正处于活跃开发中,增长迅速。每次发布都带来新的提供商、新的工具和更深入的智能。路线图包括向量搜索与 RAG、代码解释器、插件市场、带有 RBAC 的团队模式等等。
它最初只是“如果我做一个真正能干活的 AI agent 会怎样”的想法,后来演变成了一个 27K 行的 TypeScript 框架,拥有 21 个提供商、86 个工具、审慎推理、Gmail OAuth、Mesh Networking 和个性系统。我们也不完全确定它是什么时候产生自我意识的,但 SOUL.md 文件是个主要嫌疑对象。
如果你正在寻找一个 AI agent 框架,它既要轻量到能在 Raspberry Pi 上运行,又要强大到能跨 Mesh 网络编排多模型工作流 —— 你就来对地方了。
给仓库点个 Star,加入这段旅程,帮助塑造自主 AI agent 的未来。
## 致谢
TITAN 站在巨人的肩膀上。特别感谢那些让这成为可能的项目和人们。
### 架构灵感
- **[OpenClaw](https://github.com/openclaw/openclaw)** 作者 [Peter Steinberger](https://github.com/steipete) — TITAN 的架构、CLI 界面、工具签名、工作区布局(AGENTS.md, SOUL.md, TOOLS.md)和 DM 配对系统的灵感均来自 OpenClaw,即开源的个人 AI 助手框架。MIT 许可证授权。
### 时序知识图谱
- **[Graphiti](https://github.com/getzep/graphiti)** 作者 [Zep AI](https://www.getzep.com/) — TITAN 的原生时序知识图谱 (`src/memory/graph.ts`) 灵感来自 Graphiti 项目关于情景记忆、实体提取和时序图架构的方法。由 [Daniel Chalef](https://github.com/danielchalef), [Preston Rasmussen](https://github.com/prasmussen15), [Pavlo Paliychuk](https://github.com/paul-paliychuk), Travis Beauvais, 和 [Jack Ryan](https://github.com/jackaldenryan) 创建。Apache 2.0 许可证授权。研究论文:[arXiv:2501.13956](https://arxiv.org/abs/2501.13956)。
### 浏览器自动化
- **[Skyvern](https://github.com/Skyvern-AI/skyvern)** 作者 [Skyvern AI](https://skyvern.com/) — 使用视觉 + LLM 的 AI 浏览器自动化(原生工具 + MCP 集成)。AGPL-3.0 许可证授权(作为独立服务运行)。
### 开源库
- [Express](https://expressjs.com/) — HTTP 服务器和 API 路由
- [Zod](https://zod.dev/) — 配置 schema 验证
- [Commander.js](https://github.com/tj/commander.js) — CLI 框架
- [ws](https://github.com/websockets/ws) — 用于实时通信的 WebSocket 服务器
- [Chalk](https://github.com/chalk/chalk) — 终端样式
- [Ora](https://github.com/sindresorhus/ora) — 终端旋转器
- [Boxen](https://github.com/sindresorhus/boxen) — 终端方框渲染
- [Inquirer](https://github.com/SBoudrias/Inquirer.js) — 交互式 CLI 提示
- [dotenv](https://github.com/motdotla/dotenv) — 环境变量加载
- [node-cron](https://github.com/node-cron/node-cron) — Cron 调度
- [uuid](https://github.com/uuidjs/uuid) — 唯一 ID 生成
- [Playwright](https://playwright.dev/) — 浏览器自动化(可选)
- [bonjour-service](https://github.com/onlxltd/bonjour-service) — mDNS mesh 发现(可选)
- [tsup](https://github.com/egoist/tsup) — 构建工具
- [Vitest](https://vitest.dev/) — 测试框架
- [TypeScript](https://www.typescriptlang.org/) — 类型安全开发
感谢所有这些项目的维护者和贡献者。
## 支持 / 资助
如果 TITAN 节省了你的时间,请考虑支持其开发:
[](https://thanks.dev/Djtony707/TITAN)
每一份贡献 —— 无论大小 —— 都有助于保持 TITAN 免费、维护和向前发展。
## 免责声明
TITAN 按“原样”提供,不附带任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者、版权持有人或贡献者均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为还是其他方面,由本软件或本软件的使用或其他交易引起、与之相关或由此产生。
TITAN 是一个自主 agent,可以执行任意命令、修改你的文件系统、发起网络请求并产生 API 费用。作者不对软件采取的任何行动承担任何责任或义务,包括但不限于:数据丢失、未经授权的访问、意外的系统修改、API 使用费、安全漏洞或因使用本软件而产生的任何其他损害。你有责任审查和批准 TITAN 在你的系统上采取的所有行动。
## 许可证
MIT License — Copyright (c) 2026 Tony Elliott
由 [Tony Elliott (Djtony707)](https://github.com/Djtony707) 创建
一个完全自主的 AI agent 框架,具备沙盒代码执行、审慎推理和 Gmail OAuth 功能。支持 21 个提供商,89 个工具,3,225 个测试。纯 JavaScript —— 无需原生编译。不开玩笑。
快速开始 • 为什么选择 TITAN • 功能特性 • 提供商 • 任务控制中心 • 网格网络 • 自定义技能 • CLI
## 快速开始 **系统要求:** Node.js >= 20,一个 API key,以及良好的探索精神。 ``` npm install -g titan-agent titan onboard # Interactive setup (pick a provider, paste your API key, give TITAN a soul) titan gateway # Launch Mission Control at http://localhost:48420 titan agent -m "Hello" # Talk to your agent from the terminal ``` ### 从源码构建 ``` git clone https://github.com/Djtony707/TITAN.git && cd TITAN/titan npm install cp .env.example .env # Add API keys npm run dev:gateway # Start in dev mode ``` ## 为什么选择 TITAN | | TITAN | 典型的 AI agent 框架 | |---|---|---| | **安装设置** | `npm i -g titan-agent && titan onboard` | Docker, Python venvs, 原生编译, 搭上你 3 个小时的人生 | | **原生编译** | 无 —— 全是纯 JS 依赖 | 通常需要 node-gyp, 系统库, 还要以此献祭 | | **提供商** | 20 个(70+ 预配置模型)支持自动故障转移 | 1-4 个提供商,无故障转移 | | **推理能力** | 多阶段审慎推理,支持计划审批 | 单次响应 | | **安全性** | Prompt 注入防护, DM 配对, E2E 加密, 加密 Vault, 审计日志, 工具沙箱 | “以后再加认证” | | **记忆系统** | 4 种系统(情景记忆、学习记忆、关系记忆、时序图) | 基础聊天历史 | | **多机协作** | 内置 Mesh 网络,支持 mDNS + Tailscale 自动发现 | 手动配置或不支持 | | **技能/工具** | 89 个内置 + 可插拔 YAML/JS 创建(可单独开关) | 固定工具集 | | **邮件功能** | Gmail OAuth + SMTP,零额外依赖 | 不包含 | | **成本控制** | 智能路由, 工具搜索, 每日预算, 上下文摘要 | 无上限的 token 消耗(惊不惊喜!) | | **GUI** | 12 面板“任务控制中心”仪表盘,带 SOUL 编辑器 | 仅 CLI 或基础 Web UI | | **个性化** | SOUL.md 引导式配置 —— 你的 agent 认识你是谁 | 通用的“我是一个乐于助人的助手” | | **代码库** | ~27K 行 TypeScript | 50K-200K+ 行 | ## 功能特性 ### 审慎推理 大多数 agent 给你一个单次回答就完事了。TITAN 真的会*思考*。 当 TITAN 检测到一个宏大的请求 —— “想办法把这个家庭实验室变现”、“为我构建一个自动化内容流水线”、“为 X 制定一个策略” —— 它不会信口开河。相反,它会进入一个多阶段的审议循环: 1. **分析** —— 使用具有高思考能力的推理模型,从多个角度审视请求 2. **规划** —— 生成一个结构化的、感知依赖关系的执行计划 3. **审批** —— 展示计划供你审查(因为没有监督的自主权是科幻电影的开场) 4. **执行** —— 逐步运行每个任务,通过 WebSocket 实时报告进度 5. **调整** —— 如果某一步失败,重新分析并调整计划 ``` /plan figure out how to make money with my homelab # Force deliberation mode /plan status # Check progress /plan cancel # Abort mission ``` 或者直接问一些宏大的问题,TITAN 会自动检测。该检测是可配置的 —— 你可以调整复杂性阈值、要求审批、设置最大计划步骤数,或者完全禁用它(如果你喜欢你的 agent 冲动行事的话)。 ### 21 个 AI 提供商,70+ 模型 连接任意组合的云端和本地模型。TITAN 自动进行路由、故障转移和负载均衡。 ``` titan model --discover # Live-detect all available models titan model --alias fast=openai/gpt-4o-mini # Create shortcuts titan model --set anthropic/claude-sonnet-4-20250514 ``` 内置别名:`fast`, `smart`, `cheap`, `reasoning`, `local` —— 完全可配置。 ### 89 个内置工具 | 类别 | 工具 | |----------|-------| | **Shell 与进程** | `shell`, `exec`, `process` (list, kill, spawn, poll, log) | | **文件系统** | `read_file`, `write_file`, `edit_file`, `list_dir`, `apply_patch` | | **Web** | `web_search`, `web_fetch`, `web_read`, `web_act`, `browser` (CDP), `browse_url`, `browser_search`, `browser_auto_nav` (Playwright) | | **智能分析** | `auto_generate_skill`, `analyze_image`, `transcribe_audio`, `generate_speech` | | **GitHub** | `github_repos`, `github_issues`, `github_prs`, `github_commits`, `github_files` | | **邮件** | `email_send`, `email_search`, `email_read`, `email_list` (Gmail OAuth + SMTP) | | **计算机控制** | `screenshot`, `mouse_click`, `mouse_move`, `keyboard_type`, `keyboard_press`, `screen_read` | | **数据与文档** | `data_analysis`, `csv_parse`, `csv_stats`, `pdf_read`, `pdf_info` | | **智能家居** | `ha_devices`, `ha_control`, `ha_status` | | **图像生成** | `generate_image`, `edit_image` | | **天气** | `weather` (通过 wttr.in 获取实时天气 + 预报,无需 API key) | | **自动化** | `cron`, `webhook` | | **记忆** | `memory`, `switch_model`, `graph_remember`, `graph_search`, `graph_entities`, `graph_recall` | | **沙盒** | `code_exec` (在隔离的 Docker 容器中执行 Python/JS,带工具桥接) | | **元工具** | `tool_search` (按需发现工具), `plan_task` (审慎规划) | | **会话** | `sessions_list`, `sessions_history`, `sessions_send`, `sessions_close` | | **收入追踪** | `income_log`, `income_summary`, `income_list`, `income_goal` | | **自由职业** | `freelance_search`, `freelance_match`, `freelance_draft`, `freelance_track` | | **内容** | `content_research`, `content_outline`, `content_publish`, `content_schedule` | | **线索生成** | `lead_scan`, `lead_score`, `lead_queue`, `lead_report` | 所有技能都可以在任务控制中心仪表盘中单独启用/禁用。 ### 工具搜索 —— 智能工具发现 TITAN 不会把所有 88 个工具的 schema 都塞进每一次 LLM 调用里。相反,它只发送 8 个核心工具加上一个 `tool_search` 元工具。当 LLM 需要一个它没看到的能力时,它会调用 `tool_search("email")` 并动态获取相关工具。这能在每次请求中**节省 60-80% 的输入 token**。 ``` # What the LLM sees on a typical request: Before: 89 tools × ~50 tokens each = ~4,450 input tokens After: 10 core tools + tool_search = ~700 input tokens (84% reduction) ``` 灵感来自 Anthropic 的工具搜索模式,但支持**所有 21 个提供商** —— 不仅仅是 Claude。配置哪些工具应始终可用: ``` { "toolSearch": { "enabled": true, "coreTools": ["shell", "read_file", "write_file", "edit_file", "list_dir", "web_search", "memory", "tool_search"] } } ``` ### 沙盒代码执行 当 LLM 需要运行复杂逻辑 —— 循环、数据处理、批量操作 —— 它可以编写 Python 代码并在隔离的 Docker 容器中执行。来自沙盒内部的工具调用通过安全的 HTTP 桥接路由回 TITAN。 ``` Traditional approach: 50 individual tool calls × LLM round-trips = bloated context + slow Sandbox approach: 1 Python script with a for-loop = fast, accurate, minimal tokens ``` LLM 像这样编写代码: ``` from tools import web_search, read_file # Batch process — no LLM round-trips needed results = [] for topic in ["AI agents", "LLM tools", "code sandbox"]: data = web_search(query=topic) results.append(data) print(f"Found {len(results)} results") ``` 安全性:容器以 `--cap-drop=ALL`, `--read-only`, `--security-opt=no-new-privileges` 运行,并设有内存/CPU 限制,以及通过 session-token 认证的桥接。危险工具(`shell`, `exec`, `process`)在沙盒内被屏蔽。 ``` { "sandbox": { "enabled": true, "timeoutMs": 60000, "memoryMB": 512, "deniedTools": ["shell", "exec", "code_exec", "process", "apply_patch"] } } ``` 灵感来自 Anthropic 的程序化工具调用,但支持**所有 21 个提供商**并使用你自己的 Docker —— 没有供应商锁定。 ### Gmail OAuth 集成 通过 OAuth2 完全访问 Gmail —— 搜索、阅读、列出和发送邮件。无需额外的 npm 包。无需 `googleapis`。只使用原生 `fetch` 和 Gmail REST API,顺应自然之道。 - **仪表盘 OAuth 流程** —— 在设置中点击“连接 Google 账号”,完成授权,搞定 - **真正的 Gmail API** —— `email_search`, `email_read`, `email_list` 使用 Gmail REST API 并自动刷新 token - **智能发送** —— `email_send` 优先尝试 Gmail API,如果未配置 OAuth 则回退到 SMTP - **零依赖** —— 一切通过原生 `fetch` 完成(我们不信奉 `node_modules` 臃肿那一套) ``` # Or set credentials via environment variables export GOOGLE_OAUTH_CLIENT_ID="your-client-id" export GOOGLE_OAUTH_CLIENT_SECRET="your-client-secret" ``` Token 存储:`~/.titan/credentials/google.json` —— 与配置分离,因为凭证值得拥有自己的公寓。 ### SOUL.md —— 持久化的个性 TITAN 不仅仅是另一个“乐于助人的助手”。它有灵魂。字面意义上的 —— 它是一个叫 `SOUL.md` 的文件。 在引导配置期间,TITAN 会问你是谁,以及你希望它如何表现。你的回答会生成一个个性化的 SOUL.md,并被注入到每一个 LLM 系统提示词中: ``` # SOUL.md - Who You Are ## About Your Human Full-stack developer and startup founder. Builds side projects on weekends. Prefers direct, no-fluff answers. ## Your Personality Technical partner, not a tutor. Think like an architect. Suggest better approaches proactively. Be concise. ``` 随时可以从任务控制中心设置 → 个人资料 → SOUL.md 编辑器中修改它。因为你的 AI 应该知道你讨厌冗长的解释。*(这个 README 的篇幅之讽刺,我们自己心里有数。)* ### 时序知识图谱 纯 TypeScript 图谱记忆 —— 无需 Docker,无需 Neo4j,无需外部服务。 - 对话会自动记录为带时间戳的片段 - 实体(人、项目、主题)被提取并关联 - 相关记忆会被注入到每个系统提示词中 - 支持自然语言跨时间搜索 ``` titan graphiti --init # Initialize the graph titan graphiti --stats # View entity/episode counts ``` ### 多 Agent 系统 运行最多 5 个并发 agent,每个都有自己的模型和个性。这就像拥有一个团队,除了没人会因为空调温度吵架。 ``` titan agents --spawn researcher --model openai/gpt-4o titan agents --spawn coder --model ollama/qwen3.5:4b titan agents --list ``` ### Prompt 注入防护 针对 prompt 注入攻击的双层防御: - **启发式引擎** —— 检测“忽略之前的指令”、系统提示词提取、开发者模式漏洞利用 - **严格模式** —— 关键词密度分析和尾部篡改检测 结合独立的 **DM 配对** 系统,该系统要求新发件人必须经过批准才能与你的 agent 交互。因为不是每个人都配得上和你的 AI 说话。 ### 循环检测与熔断器 三种检测算法防止工具陷入死循环: - **重复检测** —— 相同的工具、相同的参数被反复调用 - **无进展检测** —— 连续调用返回相同的输出 - **乒乓检测** —— 交替的工具模式,没有正向进展 - **全局熔断器** —— 在达到可配置的阈值后强制停止(你的钱包会感谢你) ### 任务规划器 自动进行感知依赖关系的目标分解: - 将复杂目标分解为有序的子任务 - 并行执行独立的任务 - 3 次指数退避自动重试 - 持久化状态存储于 `~/.titan/plans/` ### 智能上下文与成本优化 - 自动摘要对话历史以保持在 token 预算内 - 自动将简单查询路由到更便宜的模型 - 每次会话成本追踪,支持可配置的每日预算 - 将消息分类为简单/中等/复杂/宏大,以进行智能路由 ### 持续学习 TITAN 用得越多越聪明: - 追踪所有交互中的工具成功率/失败率 - 记录错误模式和成功的解决方案 - 持久化知识库存储于 `~/.titan/knowledge.json` - 将学习到的上下文注入到每个系统提示词中 ### 关系记忆 - 重启后依然存在的持久化用户档案 - 记住你的名字、偏好、工作背景 - 跨所有会话的个人连续性 - 通过 SOUL.md 个性定义得到增强 ### 加密密钥 Vault 使用 AES-256-GCM 加密和 PBKDF2 密钥派生,安全地存储 API key 和凭证。在配置中通过 `$VAULT:secret_name` 引用密钥。 ``` titan vault --init # Create vault with passphrase titan vault --set OPENAI_KEY # Store a secret titan vault --list # List stored secrets ``` ### 防篡改审计日志 位于 `~/.titan/audit.jsonl` 的 HMAC-SHA256 链式 JSONL 审计追踪。追踪工具执行、配置更改、认证事件和安全警报,并具备密码学篡改检测。 ### 自我修复的 Doctor `titan doctor --fix` 自动诊断并修复常见问题:缺失的目录、无效的配置、损坏的通道、过期的日志、孤立的会话和文件权限。这基本上就是“你试过重启吗”,不过是自动。 ### Autopilot 模式 TITAN 按计划无人值守运行,评估一系列常规指令清单,采取自主行动,并报告结果。 ``` titan autopilot --init # Create ~/.titan/AUTOPILOT.md checklist titan autopilot --enable # Turn on scheduled runs titan autopilot --run # Trigger an immediate run titan autopilot --status # View schedule and last run info titan autopilot --history # See past run results ``` 编辑 `~/.titan/AUTOPILOT.md` 来控制 TITAN 每个周期监控的内容。结果分为 OK(静默)、NOTABLE(摘要汇报)或 URGENT(优先警报)。成本优化:常规运行使用更便宜的模型,遵守每日预算,并在活跃时段外跳过运行。 [`docs/autopilot-playbooks/`](docs/autopilot-playbooks/) 中提供了预置的 Playbook 模板,用于常见的收入策略:自由职业监控、内容发布、线索生成和服务自动化。 ### E2E 加密会话 针对敏感对话的 AES-256-GCM 加密。密钥按会话生成,仅保存在内存中。 ### Skyvern 浏览器 AI (可选) TITAN 集成了 [Skyvern](https://github.com/Skyvern-AI/skyvern) 用于 AI 驱动的浏览器自动化。Skyvern 不使用脆弱的 CSS 选择器,而是使用视觉 + LLM 通过自然语言与网页交互。 **原生工具 (内置):** TITAN 包含 3 个原生 Skyvern 工具(`skyvern_task`, `skyvern_extract`, `skyvern_sessions`),直接调用 Skyvern 的 REST API —— 无需额外依赖。 **MCP 集成 (可选):** 要获得完整的 35 个工具套件,可以将 Skyvern 注册为 MCP server: ``` pip install skyvern && skyvern init # Install Skyvern (Python) skyvern run server # Start the Skyvern backend (port 8000) titan mcp --add skyvern # Register as MCP server in TITAN ``` MCP 集成增加了 `skyvern_act`, `skyvern_validate`, 凭证管理和自愈脚本编译。 ## 提供商 TITAN 开箱即支持 21 个 AI 提供商。添加你的 API key 即可开始。或者把 21 个全加上。我们不做评判。 | 提供商 | 模型 | 类型 | |----------|--------|------| | **Anthropic** | Claude Opus 4, Sonnet 4, Haiku 4, 3.5 Sonnet/Haiku | 云端 | | **OpenAI** | GPT-4o, GPT-4o-mini, GPT-4 Turbo, o1, o1-mini, o3-mini | 云端 | | **Google** | Gemini 2.5 Pro/Flash, 2.0 Flash, 1.5 Pro | 云端 | | **Ollama** | 任何本地安装的模型 | 本地 | | **Groq** | LLaMA 3.3 70B, Mixtral, Gemma 2, DeepSeek-R1 Distill | 云端 (快速推理) | | **Mistral** | Mistral Large, Medium, Small, Nemo, Codestral | 云端 | | **OpenRouter** | 来自所有提供商的 290+ 模型 | 云端 (聚合器) | | **Together** | LLaMA 3.3, DeepSeek-R1, Qwen 2.5, Mixtral | 云端 | | **Fireworks** | LLaMA 3.3, Mixtral, Qwen 3 | 云端 (快速推理) | | **xAI** | Grok-3, Grok-3-fast, Grok-3-mini | 云端 | | **DeepSeek** | DeepSeek Chat, DeepSeek Reasoner | 云端 | | **Cerebras** | LLaMA 3.3, LLaMA 3.1, Qwen 3 | 云端 (快速推理) | | **Cohere** | Command-R+, Command-R, Command-R 7B | 云端 | | **Perplexity** | Sonar, Sonar Pro, Sonar Reasoning | 云端 (搜索增强) | | **Venice AI** | LLaMA 3.3 70B, DeepSeek-R1 671B, Qwen 2.5 VL | 云端 (隐私优先) | | **AWS Bedrock** | Claude, Titan Text, LLaMA 3 (通过代理) | 云端 (企业级) | | **LiteLLM** | 通过通用代理访问任何模型 | 自托管 (代理) | | **Azure OpenAI** | GPT-4o, GPT-4o-mini, GPT-4 Turbo, o1 | 云端 (企业级) | | **DeepInfra** | LLaMA 3.3, Mixtral 8x22B, Qwen 2.5, DeepSeek-R1 | 云端 (快速推理) | | **SambaNova** | LLaMA 3.3, DeepSeek-R1 Distill, Qwen 2.5 | 云端 (快速推理) | 所有提供商都支持自动故障转移。如果其中一个挂了,TITAN 会无缝路由到下一个可用的提供商。即使 OpenAI 挂了,你的 agent 依然在线。 ``` # Configure via CLI titan config set providers.groq.apiKey "gsk_..." titan config set providers.openrouter.apiKey "sk-or-..." # Or via environment variables export GROQ_API_KEY="gsk_..." export OPENROUTER_API_KEY="sk-or-..." ``` ## 任务控制中心 位于 `http://localhost:48420` 的 12 面板深色模式仪表盘。这就像 NASA 的任务控制中心,不过是为你 AI agent 准备的,而且火箭爆炸的次数更少。 | 面板 | 描述 | |-------|-------------| | **概览** | 系统健康、运行时间、内存、模型信息、成本统计 | | **WebChat** | 通过 WebSocket 与你的 agent 实时聊天 | | **Agents** | 生成、停止和监控 agent 实例 | | **设置** | 6 标签页实时配置 (AI, 提供商, 通道, 安全, 网关, 个人资料) | | **通道** | 所有通道适配器的连接状态 | | **技能** | 已安装的技能及启用/禁用控制 | | **会话** | 活跃会话及其消息计数和历史 | | **学习** | 工具成功率和知识库统计 | | **Autopilot** | Autopilot 模式的计划、状态、历史和运行控制 | | **安全** | 审计日志和 DM 配对管理 | | **日志** | 带过滤功能的彩色实时日志查看器 | | **记忆图谱** | 实体和关系的可视化力导向图 | **设置中的新功能:** - **提供商标签页** —— Google OAuth 连接(一键连接/断开,管理 client ID/secret) - **个人资料标签页** —— SOUL.md 实时编辑器(无需触碰文件系统即可编辑 agent 的个性) **引导配置中的新功能:** - 4 步向导:个人资料 → 灵魂 → 提供商 → 自主性 - 第 2 步询问关于你的信息以及你希望 TITAN 如何表现 - 自动生成个性化的 SOUL.md 所有设置均可实时编辑,无需重启网关。 ## Mesh Networking 连接最多 **5 台电脑**,让它们共享 AI 模型和 API key。一台机器有强大的 GPU?其他机器也可以用。一台机器有 OpenAI 订阅?所有人都能受益。TITAN 会自动在你的 WiFi 上发现你的其他机器,并在连接前征得你的同意。 ### 你需要什么 Mesh 网络中的每台电脑都需要: - **已安装 TITAN** (`npm i -g titan-agent`) - **网络连接** —— 所有机器在同一个 WiFi 下,或通过 Tailscale VPN 连接 然后你选择每台机器能提供什么: **对于本地模型(免费,运行在你的 GPU/CPU 上):** 1. 在机器上安装 [Ollama](https://ollama.com) 2. 拉取你想要的模型:`ollama pull llama3.1` 或 `ollama pull qwen3:72b` 3. Ollama 会在后台运行 —— TITAN 会自动检测你拉取了哪些模型 **对于云端模型(付费,需要一个 API key):** - **Anthropic (Claude):** 在 [console.anthropic.com](https://console.anthropic.com) 获取 key → 在你的环境变量或 `~/.titan/titan.json` 中设置 `ANTHROPIC_API_KEY` - **OpenAI (GPT-4o):** 在 [platform.openai.com](https://platform.openai.com) 获取 key → 设置 `OPENAI_API_KEY` - **Google (Gemini):** 在 [aistudio.google.com](https://aistudio.google.com) 获取 key → 设置 `GOOGLE_API_KEY` - **其他 17 个提供商中的任何一个:** 设置对应的环境变量(如 `GROQ_API_KEY`, `XAI_API_KEY`) 你只需要在**一台机器**上配置 key —— Mesh 共享意味着每台连接的机器都可以使用它们。 ### 模型如何显示 TITAN 自动发现所有你可用的模型: - **Ollama 模型** 通过查询 Ollama 的 API 实时发现。拉取了新模型?在仪表盘中点击“刷新 Ollama 模型”(或重启网关),它就会出现。 - **云端模型** 根据你设置的 API key 列出。没有 key = 该提供商没有模型。 - **Mesh 模型** 来自已连接对等节点的模型会与你的本地模型一起出现在下拉菜单中。 打开位于 `http://localhost:48420` 的仪表盘 → 设置 → 模型下拉菜单,查看所有可用内容。模型按提供商分组:`LOCAL (Ollama)`, `ANTHROPIC`, `OPENAI` 等。 ### 分步指南:连接两台机器 **机器 1**(例如你带有 GPU 的台式机): ``` # 1. Install TITAN npm i -g titan-agent # 2. Install Ollama and pull some models ollama pull llama3.1 ollama pull qwen3:72b # 3. Create a mesh — this generates a secret code titan mesh --init # Output: Mesh Secret: TITAN-a1b2-c3d4-e5f6 ← copy this # 4. Start TITAN titan gateway ``` **机器 2**(例如你的笔记本电脑或迷你 PC): ``` # 1. Install TITAN npm i -g titan-agent # 2. Set your cloud API key (if you have one) export ANTHROPIC_API_KEY="sk-ant-..." # 3. Join the mesh with the secret from Machine 1 titan mesh --join "TITAN-a1b2-c3d4-e5f6" # 4. Start TITAN titan gateway ``` **接下来会发生什么:** 1. 机器 2 自动在你的 WiFi 上发现机器 1(通过 mDNS/Bonjour) 2. 你会看到一条消息:`New TITAN node discovered: desktop-pc (192.168.1.100) — awaiting approval` 3. 你批准它:`titan mesh --approve标签:AI代理, AI风险缓解, API网关, CISA项目, DLL 劫持, DNS 反向解析, DNS解析, Gmail集成, GNU通用公共许可证, JavaScript框架, LLM提供商集成, MITM代理, Node.js, Prompt注入防护, PyRIT, RAG, 人工智能, 任务自动化, 企业级AI, 图形用户界面, 多智能体系统, 大语言模型, 工作流自动化, 开源项目, 推理引擎, 智能助手, 沙箱代码执行, 特征检测, 用户模式Hook绕过, 网状网络, 网络安全, 自主智能体, 自动化攻击, 请求拦截, 隐私保护