项目简介
Automagik Genie 是您的通用AI开发伴侣,旨在简化AI代理在任何代码库中的初始化、更新和编排。它提供了一个持久的对话式开发环境,让您可以像与人类伙伴交流一样与AI代理协作。Genie 的核心是一个MCP(Model Context Protocol)服务器,它允许LLM客户端发现和调用工具、访问项目资源并使用Prompt模板,从而实现AI代理对代码库的深度理解和功能扩展。它支持多种主流AI编程工具,并集成了智能更新、版本追踪和会话管理功能,确保AI代理始终与您的项目保持同步。
主要功能点
- AI代理编排: 自动化初始化、更新和协调AI代理,使其能够跨任何代码库高效运行。
- 持久会话管理: 维护AI代理的上下文,支持长时间、迭代式的开发对话,无需重复提供背景信息。
- MCP服务器: 提供标准的Model Context Protocol (MCP) 接口,允许LLM客户端通过JSON-RPC协议调用Genie的内置工具、访问项目资源和利用预定义的Prompt模板。
- 上下文感知: 托管和管理代码库中的资源(如文件、代码片段、文档),确保AI代理对当前项目拥有全面而准确的理解。
- 工具调用: 允许LLM通过Genie的MCP工具执行外部功能,例如运行代码、查询项目状态、管理Git仓库等。
- Prompt模板: 支持定义和渲染可定制的Prompt模板,用于指导LLM以特定模式进行交互,例如规划、实现、审查等。
- 性能优化: 针对快速启动和高效执行进行了优化,减少AI代理的等待时间。
- 自更新生态: 包含一套Git Hook自动化系统,自动维护文档、验证代码变更并强制执行质量标准。
安装步骤
在开始之前,请确保您的系统已满足以下前置条件:
- Node.js 18+ (推荐使用 pnpm 10+ 进行测试)
- Git (用于快照创建和版本控制)
1. 快速运行(无需永久安装 - 推荐用于测试):
如果您只想快速体验Genie而不想在系统上进行永久安装:
- Linux / macOS 用户请在终端运行:
curl -fsSL https://raw.githubusercontent.com/namastexlabs/automagik-genie/main/run.sh -o /tmp/genie-run.sh && bash /tmp/genie-run.sh - Windows 用户请在 PowerShell 运行:
此命令会通过 'pnpm dlx' 运行Genie,不会在本地留下永久安装文件,适合快速测试。$script = irm https://raw.githubusercontent.com/namastexlabs/automagik-genie/main/run.ps1; powershell -Command $script
2. 完整设置(永久安装 - 推荐用于长期使用):
如果您希望在本地永久安装Genie及其所有依赖项:
- Linux / macOS 用户请在终端运行:
curl -fsSL https://raw.githubusercontent.com/namastexlabs/automagik-genie/main/setup.sh -o /tmp/genie-setup.sh && bash /tmp/genie-setup.sh - Windows 用户请以 管理员身份 在 PowerShell 运行:
这些脚本会自动安装 Node.js 22、npm (如果需要) 和 pnpm 包管理器,并运行Genie的初始化流程。$script = irm https://raw.githubusercontent.com/namastexlabs/automagik-genie/main/setup.ps1; powershell -Command $script
3. 初始化您的项目:
在您的代码仓库目录中运行以下命令,为Genie创建一个 '.genie/' 工作区:
npx automagik-genie init
此命令将设置Genie所需的文件夹结构,包括代理定义和状态文件。
服务器配置(MCP客户端连接)
Genie 内置的MCP服务器是专门为LLM客户端设计的后端,用于提供上下文和工具能力。MCP客户端需要通过JSON-RPC协议与Genie MCP服务器通信。以下是几种典型的MCP客户端连接Genie MCP服务器的配置示例。
Genie MCP服务器支持多种传输协议,最常见的是 'stdio'(用于本地桌面应用,如Claude Desktop)和 'httpStream'/'sse'(用于远程或Web客户端)。
1. Claude Desktop 配置示例 ('~/.config/Claude/claude_desktop_config.json' 或 '%APPDATA%\Claude\claude_desktop_config.json'):
为了让 Claude Desktop 能够连接到 Genie MCP 服务器,您需要在其配置文件中添加以下 JSON 片段。通常,Claude Desktop 会通过 'stdio' 传输协议与本地 MCP 服务器通信。
{ "mcpServers": { "automagik-genie": { "command": "npx", "args": ["automagik-genie", "mcp", "-t", "stdio"] } } }
- '"automagik-genie"': 这是一个用户定义的MCP服务器名称,用于在Claude Desktop中识别该服务器。
- '"command": "npx"': 指定了用于启动Genie MCP服务器的系统命令是 'npx'。'npx' 会查找并执行已安装的 'automagik-genie' 包。
- '"args": ["automagik-genie", "mcp", "-t", "stdio"]': 这是传递给 'npx' 命令的参数列表。
- '"automagik-genie"':调用 'automagik-genie' 这个CLI工具。
- '"mcp"':指定运行Genie的MCP服务器模式。
- '"-t", "stdio"':指定 MCP 服务器使用标准输入输出('stdio')作为传输协议。
2. 其他MCP客户端(HTTP 或 SSE 传输)配置示例:
如果您的MCP客户端支持通过 HTTP 或 SSE(Server-Sent Events)进行通信,您可以配置Genie MCP服务器以这些模式启动,并为客户端提供相应的连接信息。
-
启动 Genie MCP 服务器的命令示例:
- HTTP Streaming 模式: 'npx automagik-genie mcp -t http -p 8080' (此命令会在本地端口 '8080' 上启动一个支持 HTTP Streaming 的 MCP 服务器。)
- SSE (Server-Sent Events) 模式: 'npx automagik-genie mcp -t sse -p 8080' (此命令会在本地端口 '8080' 上启动一个支持 SSE 的 MCP 服务器。)
-
MCP 客户端的配置示例(假设 Genie MCP 服务器运行在 'http://localhost:8080'):
{ "mcpServers": { "genie-http-stream": { "type": "http", "url": "http://localhost:8080/mcp" }, "genie-sse": { "type": "sse", "url": "http://localhost:8080/sse" } } }- '"genie-http-stream"' / '"genie-sse"': 用户定义的MCP服务器名称。
- '"type": "http"' / '"type": "sse"': 指定MCP客户端期望的传输类型,需与服务器启动模式匹配。
- '"url": "http://localhost:8080/mcp"' / '"url": "http://localhost:8080/sse"': MCP 服务器的访问地址。
基本使用方法
配置好MCP客户端后,您可以通过客户端发送JSON-RPC请求来与Genie MCP服务器交互:
-
启动 Genie 服务器 (Forge 后端 + MCP 服务器): 在您的项目根目录运行 'npx automagik-genie'。这将自动启动所有必要的后端服务,并提供一个实时的健康监控仪表盘。
-
列出可用的 AI 代理 ('list_agents'): 通过您的MCP客户端调用 'list_agents' 工具,获取Genie中所有AI代理的列表、它们的功能和描述。
JSON-RPC 请求示例:
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_agents", "arguments": {} } } -
运行 AI 代理 ('run'): 使用MCP客户端调用 'run' 工具,指定代理ID(例如 '"plan"' 或 '"implementor"')和详细的Prompt,AI代理将开始执行任务。
JSON-RPC 请求示例:
{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "run", "arguments": { "agent": "plan", "prompt": "分析用户认证模块的现有架构,找出潜在的安全漏洞,并制定一个详细的改进计划。" } } } -
查看会话记录 ('list_sessions', 'view'): 首先调用 'list_sessions' 工具查看当前活动和最近的AI会话,以获取会话ID。然后,使用 'view' 工具和会话ID来查看会话的完整对话记录或最新消息。
JSON-RPC 请求示例(列出会话):
{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "list_sessions", "arguments": {} } }JSON-RPC 请求示例(查看会话):
{ "jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": { "name": "view", "arguments": { "sessionId": "您的会话ID,例如 'plan-2310171530'", "full": true } } } -
继续会话 ('resume'): 使用 'resume' 工具和会话ID,提供新的Prompt,继续与AI代理的对话,进行迭代式开发或提供额外上下文。
JSON-RPC 请求示例:
{ "jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": { "name": "resume", "arguments": { "sessionId": "您的会话ID", "prompt": "针对上一步的计划,请详细说明如何实现其中的数据库迁移部分。" } } } -
停止会话 ('stop'): 使用 'stop' 工具和会话ID,终止正在运行的AI会话。会话状态会保留,以便后续查看。
JSON-RPC 请求示例:
{ "jsonrpc": "2.0", "id": 6, "method": "tools/call", "params": { "name": "stop", "arguments": { "sessionId": "您的会话ID" } } }
Genie 还提供了多个预定义的 Prompt 模板,例如 'plan', 'wish', 'forge', 'review',可以通过MCP客户端的 'prompts/list' 方法发现。这些模板能帮助LLM更好地理解并执行复杂的开发工作流。
信息
分类
开发者工具