@caoxupei/ai-agent-cli
v1.0.2
Published
A powerful AI coding agent with multi-provider support (Anthropic, OpenAI, Gemini)
Maintainers
Readme
AI Agent CLI
一个功能完整的 AI 编程助手命令行工具,支持多个 LLM 提供商(Anthropic Claude、OpenAI、Google Gemini)。
✨ 核心特性
🤖 多提供商支持
- Anthropic Claude: Claude 3.5 Sonnet, Claude 3 Opus
- OpenAI: GPT-4, GPT-3.5 Turbo
- Google Gemini: Gemini 1.5 Pro, Gemini 1.5 Flash
🛠️ 15 个强大工具
基础文件操作
- bash - 执行 Shell 命令
- read_file - 读取文件内容
- write_file - 创建或覆盖文件
- edit_file - 精确编辑文件
高效搜索
- Glob - 快速文件模式匹配(支持
**/*.ts等模式) - Grep - 正则表达式内容搜索(支持上下文行)
智能交互
- AskUserQuestion - 结构化提问(单选/多选)
- TodoWrite - 任务管理和进度跟踪
高级功能
- Task - 启动子代理执行复杂任务
- Skill - 加载领域专业知识
- EnterPlanMode - 进入规划模式
- ExitPlanMode - 退出规划模式并提交计划
网络能力
- WebFetch - 获取网页内容并转换为 Markdown
- WebSearch - 搜索网络内容(使用 DuckDuckGo)
🚀 性能优化
- 并行工具执行: 多个独立工具同时运行,性能提升 2-5 倍
- 智能缓存: 减少重复 API 调用
- 流式输出: 实时显示 AI 响应
🎨 增强的用户交互
- 多行输入: Shift+Enter 换行支持,轻松输入长 Prompt
- 外部编辑器: Ctrl+G 打开外部编辑器(VS Code/Vim/Nano)
- 历史导航: ↑↓ 箭头浏览命令历史
- Emacs快捷键: Ctrl+A/E/U/K/W 等编辑快捷键
- Token 追踪: 实时显示 Token 使用情况(工具已实现)
🎯 子代理系统
- explore - 只读探索代理(安全的代码库探索)
- code - 代码编写代理(完整工具访问)
- plan - 规划代理(设计实现方案)
📚 技能系统 (Production-grade)
目录结构
项目级 (.ai-agent/):
├── commands/ # 命令文件 (*.md)
└── skills/ # 技能目录 (*/SKILL.md)
用户级 (~/.ai-agent/):
├── commands/
├── skills/
└── plugins/技能文件格式
---
name: my-skill
description: 技能描述
when_to_use: AI 自动调用条件
allowed-tools: [read_file, Glob]
model: sonnet
---
技能内容。使用 $ARGUMENTS 获取参数。CLI 命令
/skill list # 列出技能
/skill install # 安装 (本地/GitHub)
/skill uninstall # 卸载
/skill enable # 启用
/skill disable # 禁用🔒 安全特性
- 只读模式(explore 代理)
- 路径验证和沙箱保护
- 危险命令拦截
📁 项目结构
ai-agent-cli/
├── src/ # 源代码目录
│ ├── entrypoints/ # 入口点
│ │ ├── cli.ts # CLI 主入口
│ │ └── index.ts # 库导出入口
│ │
│ ├── core/ # 核心逻辑(无 UI 依赖)
│ │ ├── types.ts # TypeScript 类型定义
│ │ ├── loop.ts # 主代理循环(支持并行工具执行)
│ │ ├── agents.ts # 子代理类型定义
│ │ ├── prompts.ts # 系统提示词生成
│ │ ├── constants.ts # 常量定义
│ │ ├── reminder.ts # 智能提醒管理器
│ │ ├── planMode.ts # 规划模式管理器
│ │ ├── projectContext.ts # 项目上下文管理
│ │ └── outputStyles.ts # 输出样式定义
│ │
│ ├── services/ # 服务层
│ │ ├── ai/ # AI 服务
│ │ │ └── adapters/ # LLM 提供商适配器
│ │ │ ├── base.ts # 抽象基类
│ │ │ ├── anthropic.ts # Anthropic Claude 适配器
│ │ │ ├── openai.ts # OpenAI GPT 适配器
│ │ │ ├── gemini.ts # Google Gemini 适配器
│ │ │ └── factory.ts # 适配器工厂
│ │ ├── config/ # 配置服务
│ │ │ ├── Config.ts # 配置管理类
│ │ │ ├── configStore.ts # 配置持久化存储
│ │ │ ├── setup.ts # 交互式配置向导
│ │ │ └── types.ts # 配置类型定义
│ │ ├── system/ # 系统服务
│ │ │ └── security.ts # 安全验证(路径/命令检查)
│ │ ├── customCommands.ts # 命令/技能加载器 (Production-grade)
│ │ └── skillMarketplace.ts # 技能市场 (安装/卸载/启用/禁用)
│ │
│ ├── tools/ # 工具实现(按功能分组)
│ │ ├── definitions.ts # 工具定义(JSON Schema)
│ │ ├── dispatcher.ts # 工具分发器
│ │ ├── types.ts # 工具类型定义
│ │ ├── filesystem/ # 文件系统工具
│ │ │ ├── bash.ts # Bash 命令执行
│ │ │ ├── fileOps.ts # 文件操作(read/write/edit)
│ │ │ └── index.ts
│ │ ├── search/ # 搜索工具
│ │ │ ├── glob.ts # 文件模式匹配
│ │ │ ├── grep.ts # 内容搜索
│ │ │ └── index.ts
│ │ ├── interaction/ # 交互工具
│ │ │ ├── askQuestion.ts # 用户提问
│ │ │ ├── todo.ts # 任务管理
│ │ │ └── index.ts
│ │ ├── agent/ # 代理工具
│ │ │ ├── task.ts # 子代理任务
│ │ │ ├── planMode.ts # 规划模式工具
│ │ │ └── index.ts
│ │ ├── ai/ # AI 工具
│ │ │ ├── skill.ts # 技能加载 (Production-grade)
│ │ │ └── index.ts
│ │ └── network/ # 网络工具
│ │ ├── webFetch.ts # 网页获取
│ │ ├── webSearch.ts # 网络搜索
│ │ └── index.ts
│ │
│ │
│ ├── utils/ # 通用工具
│ │ ├── cursor.ts # 光标和文本操作 (Immutable Cursor)
│ │ ├── tokenCounter.ts # Token 计数与显示 (API usage)
│ │ ├── modelConfig.ts # 模型参数配置
│ │ └── externalEditor.ts # 外部编辑器集成
│ │
│ └── ui/ # UI 组件(独立于 core)
│ ├── index.ts # UI 模块导出
│ ├── theme.ts # 终端主题配置
│ ├── utils.ts # UI 工具函数
│ └── components/ # UI 组件
│ ├── Banner.ts # 启动横幅
│ ├── Input.ts # 输入组件(基于 Cursor 类)
│ ├── Logo.ts # Logo 显示
│ ├── Messages.ts # 消息显示
│ ├── Spinner.ts # 思考动画
│ └── ToolDisplay.ts # 工具调用显示
│
├── .ai-agent/ # 项目级技能配置
│ ├── skills/ # 技能目录 (*/SKILL.md)
│ └── commands/ # 命令文件 (*.md)
│
├── bin/ # 可执行文件
│ └── ai-agent-cli.js # CLI 入口
│
├── dist/ # 编译输出(TypeScript → JavaScript)
│
├── .env.example # 环境变量示例
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
├── INSTALLATION.md # 安装指南
├── QUICKSTART.md # 快速开始
└── README.md # 本文档🚀 快速开始
安装
# 克隆仓库
git clone https://github.com/your-username/ai-agent-cli.git
cd ai-agent-cli
# 安装依赖
npm install
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,添加你的 API 密钥配置 API 密钥
在 .env 文件中配置至少一个提供商的 API 密钥:
# Anthropic Claude
ANTHROPIC_API_KEY=your_anthropic_key
# OpenAI
OPENAI_API_KEY=your_openai_key
# Google Gemini
GEMINI_API_KEY=your_gemini_key运行
# 开发模式
npm run dev
# 构建并运行
npm run build
npm start💡 使用示例
基础对话
>>> 帮我创建一个 TypeScript 项目使用子代理
>>> 使用 explore 代理查找所有 TypeScript 文件规划模式
>>> 进入规划模式,设计一个用户认证系统网络搜索
>>> 搜索 React 18 的新特性⚙️ 配置
环境变量
| 变量名 | 说明 | 必需 |
|--------|------|------|
| ANTHROPIC_API_KEY | Anthropic Claude API 密钥 | 可选 |
| OPENAI_API_KEY | OpenAI API 密钥 | 可选 |
| GEMINI_API_KEY | Google Gemini API 密钥 | 可选 |
| DEFAULT_PROVIDER | 默认提供商 (anthropic/openai/gemini) | 否 |
| DEFAULT_MODEL | 默认模型名称 | 否 |
提供商和模型
Anthropic Claude:
claude-3-5-sonnet-20241022(推荐)claude-3-opus-20240229
OpenAI:
gpt-4-turbo-previewgpt-3.5-turbo
Google Gemini:
gemini-1.5-progemini-1.5-flash
🛠️ 开发
项目脚本
# 开发模式(热重载)
npm run dev
# 构建项目
npm run build
# 运行测试
npm test
# 代码检查
npm run lint
# 修复代码风格
npm run lint:fix技术栈
- 语言: TypeScript 5.3+
- 运行时: Node.js 18+
- 依赖管理: npm
- 构建工具: tsc
- 测试框架: Vitest
- 代码检查: ESLint
相关文档
- 快速开始 - 5 分钟上手指南
参考项目
- learn-claude-code - 原始教育项目
- Kode - 生产级开源Agent
- Agent Skills Spec - 官方技能规范
致谢
感谢 shareAI Lab 提供的优秀教育资源和设计理念。
🌟 特别说明
本项目是功能完整的生产级工具。
