ExaChat — AI 搜索研究助手
基于 Claude Agent SDK + Exa 搜索引擎的 AI 搜索研究平台。集成企业调研、外贸市场分析、竞品研究等专业技能,通过对话交互执行多维度搜索和深度分析,生成结构化调研报告。
架构
用户浏览器 ←WebSocket→ Express Server ←→ Claude Agent SDK ←→ Exa Skills (MCP)
↓ ↓
exa_reports/ (调研报告) Exa Search API
- 后端: Express + WebSocket + Claude Agent SDK (
@anthropic-ai/claude-agent-sdk) - 前端: React + Tailwind CSS + Vite,三栏布局(调研报告 + 对话 + 执行日志)
- 搜索引擎: Exa MCP Server(company/news/tweet/people 多维度搜索)
- AI 引擎: 3 个专业技能 + Task Agent 并行搜索
核心技能
1. 企业调研 (company-research)
通过 Exa 搜索引擎,快速获取企业信息、竞争对手动态、行业新闻。
- 四个搜索维度:company(主页/元数据)、news(新闻)、tweet(社交)、people(LinkedIn)
- 2-3 个查询变体并行搜索,合并去重
- Task Agent 隔离,保持主上下文清洁
- 动态搜索量调整(10-100条,根据用户意图)
2. 外贸市场调研 (foreign-trade-research)
5 步深度调研法,覆盖品牌商/制造商/经销商三类角色:
3. 项目管理 (effective-harnesses)
长时间运行 Agent 框架,支持项目初始化、feature 管理、进度追踪。
/harness-init— 初始化新项目/harness-add— 添加新 feature/harness-status— 查看项目进度/harness-complete— 标记 feature 完成
产出物结构
exa_reports/[调研主题]/
├── README.md # 概览
├── [目标国]_[产品]_市场调研报告.md # 完整调研报告
├── company_profiles/ # 企业档案
├── competitor_matrix.md # 竞争对手对比矩阵
└── verification_notes.md # 验证记录
快速开始
1. 环境要求
- Node.js >= 18
- npm >= 9
- Exa API Key(申请地址)
2. 配置环境变量
确认项目根目录的 .env 文件:
ANTHROPIC_API_KEY=your-key
ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
MODEL=deepseek-v4-flash
EXA_API_KEY=your-exa-api-key
PORT=3009
3. 安装依赖
npm install
4. 启动开发模式
npm run dev
同时启动 Vite 前端和 Express 后端。访问 http://localhost:5173。
5. 生产构建
npm run build
npm start
访问 http://localhost:3009。
MCP 配置
Exa 搜索通过 MCP Server 集成。配置文件位于 .claude/settings.json:
{
"mcpServers": {
"exa": {
"command": "npx",
"args": ["-y", "exa-mcp-server"],
"env": {
"EXA_API_KEY": "your-exa-api-key"
}
}
}
}
使用方式
- 企业调研 — "帮我调研一下特斯拉的竞争对手"
- 外贸调研 — "做一份印尼市场的电动两轮车外贸调研报告"
- 竞品分析 — "分析美国智能家居市场的TOP品牌和制造商"
- 快捷模板 — 点击欢迎页的四个模板快速开始
- 上传资料 — 点击 📎 上传参考资料
- 查看报告 — 左侧「调研报告」面板实时展示生成的报告
项目结构
exa-chat/
├── server/
│ ├── index.ts # Express + WebSocket 服务器
│ ├── agent-client.ts # Claude Agent SDK 封装(含 MCP 工具)
│ ├── message-queue.ts # 异步消息队列
│ └── logger.ts # 文件日志
├── src/
│ ├── App.tsx # 主界面(三栏蓝色主题)
│ ├── types.ts # TypeScript 类型
│ ├── hooks/
│ │ ├── useWebSocket.ts # WebSocket 管理
│ │ └── useFileUpload.ts # 文件上传
│ ├── index.css
│ └── main.tsx
├── .claude/
│ ├── settings.json # MCP 配置(Exa)
│ └── skills/ # 3 个技能
│ ├── company-research/
│ ├── foreign-trade-research/
│ └── effective-harnesses/
├── exa_reports/ # 生成的报告
├── uploads/ # 上传的文件
└── package.json
技术栈
- Claude Agent SDK — AI Agent 调度、技能系统、MCP 集成
- Exa Search API — 专业搜索引擎(MCP Server 集成)
- Express — HTTP + WebSocket 服务器
- React 18 — 前端 UI
- Tailwind CSS 4 — 样式
- Vite 6 — 构建工具
- TypeScript — 类型安全
感谢和参考
https://linux.do/ 感谢佬友,
https://github.com/liangdabiao/claudesdk-skill AI生成claude-agent-sdk 项目