功能清单
核心功能
| 功能 |
描述 |
引入步骤 |
| LLM 对话 |
基础的大语言模型对话 |
Step 0 |
| 多轮对话 |
对话历史记忆 |
Step 1 |
| 工具调用 |
Function Calling 能力 |
Step 2 |
| 流式输出 |
实时响应流式显示 |
Step 3 |
| 配置管理 |
灵活的配置系统 |
Step 4 |
| 会话持久化 |
会话保存和加载 |
Step 5 |
| 技能系统 |
动态技能加载 |
Step 6 |
| 服务化架构 |
WebSocket 服务器 |
Step 7 |
| Web 客户端 |
浏览器 UI |
Step 8 |
| 多模态支持 |
图像识别能力 |
Step 9 |
| 联网搜索 |
实时信息搜索 |
Step 10 |
| MCP 集成 |
外部服务协议 |
Step 6 |
内置工具
工具列表
| 工具名称 |
类别 |
描述 |
read |
builtin |
读取文件内容 |
write |
builtin |
写入文件内容 |
exec |
builtin |
执行 shell 命令 |
search |
builtin |
互联网搜索 |
工具功能对比
| 特性 |
read |
write |
exec |
search |
| 参数 |
path |
path, content |
command |
query |
| 返回 |
文件内容 |
写入状态 |
执行结果 |
搜索结果 |
| 路径限制 |
workspace |
workspace |
workspace |
互联网 |
| 权限要求 |
只读 |
读写 |
执行 |
API Key |
技能系统
技能类型
本 Agent 支持以下类型的技能:
| 类型 |
说明 |
示例 |
| development |
开发相关 |
代码分析、调试 |
| general |
通用能力 |
写作、翻译 |
| system |
系统操作 |
文件管理 |
技能定义格式
1 2 3 4 5 6 7 8 9 10
| --- name: "skill-name" description: "技能描述" category: "general" tags: ["tag1", "tag2"] ---
技能的详细说明...
|
WebSocket 协议
客户端消息
| 消息类型 |
功能 |
参数 |
chat.send |
发送聊天消息 |
content, sessionId |
session.create |
创建新会话 |
name |
session.load |
加载会话 |
sessionId |
session.list |
列出所有会话 |
- |
session.delete |
删除会话 |
sessionId |
tools.list |
列出可用工具 |
- |
skills.list |
列出可用技能 |
- |
mcp.list |
列出 MCP 服务器 |
- |
status.get |
获取 Agent 状态 |
- |
服务器消息
| 消息类型 |
功能 |
数据 |
status |
Agent 状态信息 |
状态对象 |
chat.streaming.start |
开始流式响应 |
sessionId |
chat.streaming.chunk |
流式内容块 |
sessionId, chunk |
chat.streaming.end |
结束流式响应 |
sessionId |
chat.tool.call |
工具调用通知 |
sessionId, tool, params |
chat.tool.result |
工具执行结果 |
sessionId, result |
error |
错误消息 |
error |
多模态能力
支持的内容类型
| 类型 |
格式 |
示例 |
| 纯文本 |
{type: "text", text: "..."} |
普通对话 |
| 纯图像 |
{type: "image", mediaType: "...", data: "..."} |
图片分析 |
| 混合 |
[{...}, {...}] |
带图的提问 |
图像格式
| 格式 |
MIME 类型 |
扩展名 |
| PNG |
image/png |
.png |
| JPEG |
image/jpeg |
.jpg, .jpeg |
| GIF |
image/gif |
.gif |
| WebP |
image/webp |
.webp |
图像大小限制
- 最大文件大小:10MB
- Base64 编码后:约 13.3MB
搜索能力
Tavily 搜索参数
| 参数 |
类型 |
默认值 |
描述 |
query |
string |
必需 |
搜索关键词 |
num_results |
number |
5 |
结果数量 (1-10) |
search_depth |
string |
basic |
搜索深度 |
days |
number |
7 |
时间范围(天) |
topic |
string |
general |
搜索主题 |
缓存配置
| 配置项 |
默认值 |
说明 |
| 启用缓存 |
true |
是否启用缓存 |
| TTL |
3600 秒 |
缓存生存时间 |
| 最大缓存数 |
无限制 |
缓存大小限制 |
MCP 支持
支持 MCP Servers
| 服务器 |
功能 |
配置要求 |
| Filesystem |
文件系统操作 |
路径 |
| GitHub |
GitHub 仓库 |
GitHub Token |
| PostgreSQL |
数据库查询 |
连接字符串 |
| Brave Search |
网页搜索 |
API Key |
| Puppeteer |
浏览器自动化 |
- |
MCP 工具命名
1 2 3 4 5 6
| <server-name>:<tool-name>
示例: filesystem:read_file github:create_issue postgres:query
|
性能指标
响应时间
| 操作 |
响应时间 |
| LLM 对话(无工具) |
~1-2 秒 |
| 工具执行 |
~0.1-1 秒 |
| 搜索(基础) |
~2-3 秒 |
| 搜索(缓存) |
< 100ms |
| 图像识别 |
~3-5 秒 |
资源占用
| 资源 |
典型值 |
| 内存占用 |
~100-200 MB |
| 启动时间 |
~1-2 秒 |
| WebSocket 连接 |
~5KB/连接 |
API 使用
| API |
免费额度 |
付费计划 |
| DeepSeek |
- |
¥1/1M tokens |
| Tavily |
1,000 次/月 |
$5-20/月 |
配置选项
LLM 配置
1 2 3 4 5 6 7 8 9 10 11
| { "llm": { "apiKey": "sk-...", "baseUrl": "https://api.deepseek.com/v1", "model": "deepseek-chat", "visionModel": "gpt-4o", "temperature": 0.7, "maxTokens": 2000, "streaming": true } }
|
搜索配置
1 2 3 4 5 6 7 8 9 10 11 12
| { "search": { "provider": "tavily", "apiKey": "tvly-...", "maxResults": 5, "searchDepth": "basic", "cache": { "enabled": true, "ttl": 3600 } } }
|
MCP 配置
1 2 3 4 5 6 7 8 9 10 11 12 13
| { "mcp": { "enabled": true, "servers": [ { "name": "filesystem", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "./workspace"], "enabled": true } ] } }
|
限制和约束
已知限制
| 限制 |
说明 |
解决方案 |
| 知识截止 |
LLM 训练数据有限 |
使用搜索工具 |
| 文件大小 |
图像最大 10MB |
压缩或优化 |
| API 限制 |
搜索次数受限 |
使用缓存 |
| 单模型 |
同一时间只能用一个模型 |
需要时切换 |
平台兼容性
| 平台 |
支持状态 |
| Linux |
✅ 完全支持 |
| macOS |
✅ 完全支持 |
| Windows |
✅ 完全支持(WSL) |
依赖要求
| 依赖 |
最低版本 |
推荐版本 |
| Node.js |
20.0 |
20.x LTS |
| npm |
10.0 |
最新 |
| TypeScript |
5.3 |
5.3+ |
功能对比表
步骤间功能对比
| 功能 |
Step 0 |
Step 5 |
Step 10 |
| LLM 对话 |
✅ |
✅ |
✅ |
| 对话历史 |
❌ |
✅ |
✅ |
| 工具调用 |
❌ |
✅ |
✅ |
| 流式输出 |
❌ |
✅ |
✅ |
| 配置文件 |
❌ |
✅ |
✅ |
| 会话持久化 |
❌ |
✅ |
✅ |
| 技能系统 |
❌ |
✅ |
✅ |
| Web UI |
❌ |
❌ |
✅ |
| 多模态 |
❌ |
❌ |
✅ |
| 搜索 |
❌ |
❌ |
✅ |
| MCP |
❌ |
❌ |
✅ |
扩展能力
支持的扩展
- 自定义工具 - 在
tools/ 目录添加
- 自定义技能 - 在
skills/ 目录添加
- 自定义 MCP Server - 配置外部服务
- 自定义搜索提供商 - 实现 ISearchService
可扩展点
1 2 3 4 5 6 7 8 9 10 11
| ToolRegistry.register(new CustomTool())
SkillLoader.loadFrom('./custom-skills/')
MCPManager.addServer({...})
new CustomSearchClient()
|
小结
本节汇总了项目的所有功能特性:
- 核心功能清单(11 项)
- 内置工具对比
- WebSocket 协议
- 多模态能力
- 搜索能力
- MCP 支持
- 性能指标
- 配置选项
- 扩展能力
通过完整的功能特性,这个 AI Agent 已经具备了实用系统所需的大部分核心能力。
导航
上一篇: 14.1 项目完整回顾
下一篇: 14.3 最佳实践与扩展方向