logo
0
0
WeChat Login

AI Agent 开发教程

Node.js License

欢迎来到 AI Agent 开发教程!本教程将带你从零开始,一步步构建一个最小可运行的命令行 AI 智能体(Agent),帮助你从代码层面理解AI Agent的逻辑。

你将不仅仅是调用 API,而是深入理解 Agent 的核心架构:大脑(LLM)、记忆(Context)、手脚(Tools)和技能(Skills)

项目简介

这是一个可运行的代码库,教程中的每个阶段都对应 Git 历史中的关键 Commit。你可以通过 git checkout 切换到对应状态,亲自修改代码并观察效果。

最终你将获得:

  • 一个能够执行 Shell 命令的 AI Agent
  • 支持多模型切换(Gemini、DeepSeek、智谱、腾讯混元)
  • 完整的工具系统(文件读写、命令执行等)
  • MCP 协议集成能力
  • Sub-Agent 协作模式
  • 可扩展的 Skill 系统

快速开始

# 1. 克隆项目
git clone <repository-url>
cd try_agent

# 2. 安装依赖
npm install

# 3. 配置环境变量(至少配置一个模型的 API Key)
cp .env.example .env   # 或手动创建 .env,填入至少一个 API Key
# 例如: echo "GEMINI_API_KEY=your_api_key_here" > .env

# 4. 运行
npm start

详细配置请参考 环境配置 (Setup)

前置要求

  • Node.js: v18 或更高版本
  • Git: 用于版本控制
  • API Key: 至少一个模型供应商的 API Key(Gemini / DeepSeek / 智谱 / 腾讯混元)

教程目录

建议按以下顺序阅读和实践:

🏁 准备工作

📚 核心概念

🛠️ 实战开发

🚀 进阶架构

学习建议

本项目不仅仅是文档,更是一个可运行的代码库。 教程中的每个阶段都对应 Git 历史中的关键 Commit。你可以通过 git checkout 切换到对应状态,亲自修改代码并观察效果。

推荐学习路径:

  1. 先阅读 核心概念 建立认知基础
  2. 按顺序完成实战开发章节,每章都有对应的 Git Branch
  3. 动手修改代码,观察变化
  4. 尝试进阶架构,扩展 Agent 能力

项目结构

try_agent/
├── docs/                       # 文档
├── src/                        # 源代码
│   ├── index.ts                # 入口文件
│   ├── chat.ts                 # Agent 核心逻辑(ReAct 循环)
│   ├── chat-events.ts          # 事件总线(TUI 解耦)
│   ├── mcp-client.ts           # MCP 协议客户端
│   ├── project-context.ts      # 项目上下文注入
│   ├── system-prompt.ts        # 系统提示词管理
│   ├── tool-registry.ts        # 工具注册中心
│   ├── context/                # 上下文管理
│   │   └── chat-compress-service.ts # 对话历史压缩服务
│   ├── model/                  # 模型客户端
│   │   ├── client.ts           # 模型注册与切换(多模型适配)
│   │   └── providers/          # 模型供应商实现
│   │       ├── types.ts        # 供应商接口定义
│   │       ├── gemini.ts       # Google Gemini
│   │       ├── deepseek.ts     # DeepSeek
│   │       ├── zhipu.ts        # 智谱 AI
│   │       ├── tencent.ts      # 腾讯混元
│   │       └── openai-compatible.ts # OpenAI 兼容接口
│   ├── tools/                  # 工具实现
│   │   ├── run-shell-command.ts # Shell 命令执行
│   │   ├── read-file.ts        # 文件读取
│   │   ├── write-file.ts       # 文件写入
│   │   ├── edit-file.ts        # 文件编辑
│   │   ├── read-folder.ts      # 目录读取
│   │   ├── sub-agent-tool.ts   # Sub-Agent 调用工具
│   │   └── skill-tool.ts       # Skill 调用工具
│   ├── subagents/              # 子智能体系统
│   │   ├── sub-agent-types.ts  # Sub-Agent 类型定义
│   │   ├── sub-agent-registry.ts # Sub-Agent 注册中心
│   │   └── codebase-investigator.ts # 代码库调查员
│   ├── skills/                 # 技能系统
│   │   ├── skill-types.ts      # Skill 类型定义
│   │   ├── skill-registry.ts   # Skill 注册中心
│   │   └── skill-loader.ts     # Skill 加载器
│   ├── tui/                    # TUI 交互界面
│   │   ├── index.tsx           # TUI 入口
│   │   ├── types.ts            # UI 类型定义
│   │   ├── slash-commands.ts   # 斜杠命令注册表
│   │   ├── use-chat.ts         # Chat 状态管理 hook
│   │   ├── use-command-list.ts # 命令补全 hook
│   │   └── components/         # Ink/React 组件
│   ├── prompts/                # 系统提示词模板
│   │   ├── gemini-cli.md       # Gemini CLI 风格
│   │   ├── coding-mentor.md    # 编程导师
│   │   ├── strict-engineer.md  # 严格工程师
│   │   ├── personal-assistant.md # 个人助手
│   │   ├── sarcastic-friend.md # 毒舌朋友
│   │   └── anime-girl.md       # 二次元少女
│   └── utils/                  # 工具函数
│       └── frontmatter.ts      # Frontmatter 解析
├── .agent/                     # Agent 配置(技能和代理)
├── .env                        # 环境变量配置
├── .mcp.json                   # MCP 服务器配置
├── package.json                # 项目依赖
└── tsconfig.json               # TypeScript 配置

常用命令

命令说明
npm start启动 Agent

常见问题

Q: 启动后没有反应? A: 检查 .env 文件是否正确配置了 API Key。

Q: 如何切换模型? A: 运行时使用 /use <model-name> 命令(如 /use deepseek-v3.2),或在 .env 中设置 MODEL 环境变量。(在 第 9 部分:TUI 中,/use 将升级为交互式的 /model 命令)

Q: Token 超限怎么办? A: 参考 上下文管理 章节。

许可证

本项目采用 MIT 许可证。


开始你的 AI Agent 之旅吧! 🚀

About

https://mp.weixin.qq.com/s/SAXIAnJ3NtVWPeA-oHIsQA 零废话!一文讲透从0构建AI Agent

Language
TypeScript100%