Agent学习项目,打造个人专属Agent
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 个月前 | ||
| 6 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 |
Worker Agent
一个基于LangChain.js的AI代理开发学习项目,帮助开发者快速掌握智能代理开发技术,打造个人专属Agent。集成了服务器、RAG(检索增强生成)、工作流和智能代理功能,适合学习和定制化开发。
项目特性
- 智能代理:基于LangChain.js构建的AI代理,支持工具调用和MCP集成
- API服务器:提供OpenAI兼容的API接口,支持流式响应
- RAG系统:检索增强生成,支持本地文档和网页内容加载
- 工作流:线性工作流实现,适合学习基础工作流设计
- MCP支持:模型上下文协议,用于IDE集成
- 可扩展性:模块化设计,易于扩展和定制
快速开始
1. 安装依赖
npm install
2. 环境变量配置
在项目根目录创建.env文件,配置以下环境变量:
| 环境变量 | 描述 | 必填 | 默认值 |
|---|---|---|---|
| OPENAI_API_KEY | OpenAI API密钥(可选) | 否 | - |
| SERVER_API_KEY | 用于验证API请求的密钥 | 否 | 随机生成 |
| PORT | 服务器端口 | 否 | 3000 |
3. 启动服务器
npm start
4. 运行Agent
npm run agent
1. 创建一个Agent
1.1 直接运行默认Agent
作为一个AI代理开发学习项目,Genius Agent提供了现成的Agent实现,您可以直接运行体验:
npm run agent
运行后,您可以在终端中与Agent进行交互式对话,输入"exit"退出。
1.2 自定义Agent(打造个人专属)
学习Agent开发的核心就是自定义Agent,您可以通过修改agent.js文件来打造个人专属Agent:
- 配置模型:在
config/modelConfig.js中配置您使用的语言模型 - 添加工具:在
tools/目录中添加新的工具定义 - 集成MCP:在
config/mcpConfig.js中配置MCP服务器
1.3 通过API使用Agent
启动API服务器后,您可以通过OpenAI兼容的API接口使用您的专属Agent:
npm start
服务器启动后,会在控制台输出API密钥和访问地址。
然后使用curl或其他HTTP客户端调用:
curl -X POST http://localhost:3000/v1/chat/completions \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type: application/json" \
-d '{"messages": [{"role": "user", "content": "你好"}], "stream": false}'
API接口支持以下功能:
- 流式响应:设置
stream: true开启流式输出 - 多轮对话:通过传递完整的消息历史实现
- API密钥验证:支持多种方式传递API密钥
2. 搭建Workflow工作流
2.1 运行内置工作流
项目包含一个线性工作流示例,适合学习工作流设计:
node workflow/workflow.js
2.2 工作流测试
运行工作流测试以验证其功能:
node test/test-workflow.js
2.3 自定义工作流(打造专属流程)
学习工作流设计的关键是自定义工作流,您可以通过修改workflow/workflow.js文件来设计专属工作流。
2.4 工作流原理
当前工作流实现了以下线性流程,适合学习基础工作流设计:
- 处理输入:总结用户输入内容
- 分析内容:分析输入的情感倾向
- 生成回复:基于分析结果生成友好的最终回复
2.5 工作流示例
项目中包含一个Excel文件处理工作流示例,展示了如何使用工作流处理表格数据:
node workflow/test-workflow.js
3. 接入RAG知识库
3.1 RAG系统概述
RAG(检索增强生成)系统允许您的Agent访问外部知识库,提高回答的准确性和相关性。
3.2 运行RAG系统
cd RAG
node agent.js
3.3 自定义RAG(打造专属知识库)
学习RAG技术的核心是自定义RAG系统,您可以通过修改以下文件来打造专属知识库:
RAG/rag.js:RAG核心实现,调整检索和生成逻辑RAG/documentLoader.js:文档加载器,支持更多文档格式RAG/vectorStore.js:向量存储配置,优化向量检索效果RAG/webLoader.js:网页内容加载器,扩展知识来源
3.4 添加知识库内容
为您的专属Agent添加个性化知识库:
- 编辑
RAG/data/sample_knowledge.txt添加本地文档内容 - 或修改
RAG/webLoader.js来加载网页内容 - 支持多种文档格式和来源,打造您的专属知识体系
3.5 RAG工作原理
学习RAG技术的关键是理解其工作原理:
- 文档加载:从本地文件或网页加载文档
- 文本分割:将文档分割为可管理的 chunks
- 向量存储:将 chunks 转换为向量并存储
- 检索:根据用户查询检索相关 chunks
- 生成:基于检索结果生成回复
3.6 RAG集成到Agent
您可以通过修改tools/ragTool.js文件将RAG功能集成到您的Agent中,使其能够访问知识库内容。
4. 用户界面集成
4.1 API接口集成
Genius Agent提供了OpenAI兼容的API接口,您可以将其集成到各种用户界面中:
-
确保Genius Agent API服务器正在运行:
npm start -
在您选择的前端框架中配置API连接:
- API地址:
http://localhost:3000/v1/chat/completions - API密钥:使用环境变量中配置的
SERVER_API_KEY
- API地址:
4.2 测试界面
项目中包含了测试界面,您可以使用它们来测试API功能:
test/testServer.html:测试服务器APItest/test-stream.html:测试流式响应
4.3 前端集成示例
以下是一个简单的前端集成示例:
// 发送消息到Agent
async function sendMessage(messages) {
const response = await fetch('http://localhost:3000/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
},
body: JSON.stringify({
messages: messages,
stream: true
})
});
// 处理流式响应
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
// 处理每个数据块
console.log(chunk);
}
}
5. IDE集成
5.1 MCP服务器
Genius Agent支持MCP(模型上下文协议),可以集成到各种IDE中:
-
启动MCP服务器:
npm run mcp -
在IDE中安装相应的AI助手插件
-
配置MCP工具连接到您的专属Agent:
{
"mcpServers": {
"genius-agent-mcp": {
"command": "node",
"args": [
"mcp-server.js"
],
"cwd": "geniusAgent" // 项目路径
}
}
}
5.2 IDE集成方式
Genius Agent支持两种IDE集成方式:
- A2A(Agent-to-Agent):Agent之间的直接通信
- Agents to Tools (MCP):通过模型上下文协议将Agent作为工具集成到IDE中
6. 扩展与定制(打造个人专属)
作为一个AI代理开发学习项目,Genius Agent鼓励您进行扩展和定制,打造真正的个人专属Agent:
6.1 添加新工具
在 tools/ 目录中添加新的工具定义,增强您的专属Agent能力:
// tools/my-tool.js
import { Tool } from "@langchain/core/tools";
export class MyTool extends Tool {
name = "my-tool";
description = "我的自定义工具";
async _call(input) {
// 实现您需要的工具逻辑
return `工具执行结果: ${input}`;
}
}
6.2 扩展工作流
修改 workflow/workflow.js 文件来扩展工作流步骤或逻辑,定制您的专属工作流程。
6.3 自定义RAG
修改 RAG/rag.js 或相关文件来调整RAG的行为,优化您的专属知识库:
- 更改向量模型
- 调整检索参数
- 添加新的文档加载器
6.4 扩展API
在 server/server.js 中添加新的API端点,扩展您的专属Agent服务:
// server/server.js
app.post("/v1/my-endpoint", authenticate, async (req, res) => {
// 实现您需要的自定义API逻辑
res.json({ result: "success" });
});
7. openCode实践
Genius Agent支持openCode实践,通过以下步骤参与:
- 技能开发:在
.opencode/skills/目录中创建和分享自定义技能 - 工具贡献:开发新工具并提交PR
- 文档完善:改进项目文档和示例
8. 学习路径
作为一个AI代理开发学习项目,我们建议您按照以下路径学习:
- 基础入门:运行默认Agent,了解基本功能
- API开发:学习
server/server.js的实现,理解API服务 - 工作流设计:修改
workflow/workflow.js,学习工作流设计 - RAG技术:定制RAG系统,理解检索增强生成
- 工具集成:添加自定义工具,增强Agent能力
- 界面开发:集成前端界面,实现用户交互
- IDE集成:将Agent接入到IDE中
- 全栈定制:整合所有功能,打造完整的个人专属Agent
9. 许可证
MIT License
10. 联系方式
如果您有任何问题或建议,欢迎通过以下方式联系我们:
- GitHub:提交Issue或PR
- Email:[your-email@example.com](替换为实际邮箱)