Table of Contents

Table of Contents

site icon
2025.04.17 589
Python编码代理语义代码检索代码编辑多语言支持开发效率
Serena 是一个功能强大的编码代理工具,可直接在代码库上工作。它集成了现有的 LLMs(大型语言模型),为它们提供必要的语义代码检索和编辑工具。Serena 免费使用,无需 API 密钥或订阅。它支持多种编程语言,并通过语言服务器协议(LSP)提供语义代码分析能力。Serena 可以用于任何编码任务,包括分析、规划、编辑等。
View on GitHub

Overview

基本能力

产品定位

Serena 是一个功能强大的编码代理工具,旨在帮助开发者直接在代码库上工作,提供语义代码检索和编辑功能。

核心功能

  1. 语义代码检索和编辑:通过语言服务器协议(LSP)提供符号级别的代码查询和编辑功能。
  2. 多语言支持:支持 Python、Java、TypeScript 等语言,并可通过适配器扩展支持更多语言。
  3. 与 LLMs 集成:可以与 Claude、ChatGPT 等 LLMs 集成,提供编码任务的自动化支持。
  4. 免费使用:无需 API 密钥或订阅,完全免费。
  5. 多种使用方式:可以作为 MCP 服务器使用,也可以通过 Agno 框架与任何 LLM 集成。

适用场景

  1. 代码分析和规划:帮助开发者分析代码库并制定开发计划。
  2. 代码编辑和重构:提供符号级别的代码编辑功能,支持代码重构。
  3. 自动化测试和调试:通过执行 shell 命令运行测试和调试代码。
  4. 多项目管理:支持动态切换项目,适合多项目开发的场景。

工具列表

  1. activate_project:按名称激活项目。
  2. create_text_file:在项目目录中创建/覆盖文件。
  3. delete_lines:删除文件中的一行或多行。
  4. execute_shell_command:执行 shell 命令。
  5. find_symbol:全局或局部搜索符号。
  6. get_symbols_overview:获取文件中定义的顶级符号概述。
  7. insert_at_line:在文件的指定行插入内容。
  8. read_file:读取项目目录中的文件。
  9. replace_symbol_body:替换符号的完整定义。
  10. search_in_all_code:在项目中的所有代码文件中搜索模式。

常见问题解答

  1. 是否真的免费?
  2. 是的,Serena 完全免费,无需 API 密钥或订阅。
  3. 支持哪些编程语言?
  4. 直接支持 Python、Java、TypeScript,间接支持 Ruby、Go、C#、Rust 等。
  5. 如何与 LLMs 集成?
  6. 可以通过 MCP 服务器或 Agno 框架与 Claude、ChatGPT 等 LLMs 集成。
  7. 如何解决工具名称冲突?
  8. 避免同时使用多个 MCP 服务器,尤其是与 Filesystem MCP Server 冲突的工具。

使用教程

使用依赖

  1. 安装 uvshell curl -sSL https://docs.astral.sh/uv/getting-started/installation/ | sh

安装教程

  1. 克隆仓库: shell git clone https://github.com/oraios-ai/serena.git /path/to/serena
  2. 复制配置文件: shell cp serena_config.template.yml serena_config.yml cp myproject.template.yml myproject.yml
  3. 调整配置文件中的设置。

调试方式

  1. 启动 MCP 服务器: shell uv run --directory /path/to/serena serena-mcp-server /path/to/myproject.yml
  2. 检查日志文件以排查问题。
  3. 启用日志 GUI 工具以帮助调试。

许可证

该项目遵循 GPL-2.0 开源许可条款,请参阅 GPL-2.0 了解完整条款。