Serena 是一个强大的编程智能体工具包,能够将大语言模型(LLM)转换为功能齐全的编程智能体,直接在您的代码库上进行工作。该项目由 Oraios AI 开发并开源贡献给开发者社区。
这些语言通过 Serena 底层使用的 multilspy 语言服务器库支持。
Serena 提供 MCP 服务器,可与以下客户端集成:
通过 Agno(模型无关的智能体框架),Serena 可以将几乎任何 LLM 转换为编程智能体,支持:
Serena 的工具实现与框架特定代码解耦,可以轻松适配到任何智能体框架。
Serena 可用于任何编程任务,包括:
uv
(安装说明参见官方文档)/path/to/serena
serena_config.template.yml
为 serena_config.yml
并调整设置myproject.template.yml
为 myproject.yml
并调整项目特定设置serena_config.yml
的 projects
列表中myproject.yml
claude_desktop_config.json
中添加:{
"mcpServers": {
"serena": {
"command": "/abs/path/to/uv",
"args": ["run", "--directory", "/abs/path/to/serena", "serena-mcp-server", "--project-file", "/abs/path/to/myproject.yml"]
}
}
}
goose configure
添加扩展/abs/path/to/uv run --directory /abs/path/to/serena serena-mcp-server /optional/abs/path/to/project.yml
developer
扩展npx create-agent-ui@latest
uv pip install --all-extras -r pyproject.toml -e .
.env.example
为 .env
并填入 API 密钥uv run python scripts/agno_agent.py
cd agent-ui && pnpm dev
execute_shell_command
工具允许任意代码执行,需要谨慎使用read_only: true
),只允许分析和建议,不修改代码库优势:
劣势:
优势:
相似点:
.serena/memories/
中git config --global core.autocrlf true
以下是 Serena 所有工具的完整列表:
activate_project
: 按名称激活项目check_onboarding_performed
: 检查是否已执行入门引导create_text_file
: 在项目目录中创建/覆盖文件delete_lines
: 删除文件中的行范围delete_memory
: 从 Serena 的项目特定内存存储中删除记忆execute_shell_command
: 执行 shell 命令find_referencing_code_snippets
: 查找引用给定位置符号的代码片段find_referencing_symbols
: 查找引用给定位置符号的符号find_symbol
: 执行全局(或局部)符号搜索get_active_project
: 获取当前活动项目名称get_symbols_overview
: 获取文件或目录中顶级符号的概览insert_after_symbol
: 在符号定义结束后插入内容insert_at_line
: 在文件的给定行插入内容insert_before_symbol
: 在符号定义开始前插入内容list_dir
: 列出目录中的文件和目录list_memories
: 列出内存存储中的记忆onboarding
: 执行入门引导prepare_for_new_conversation
: 为新对话做准备read_file
: 读取项目目录中的文件read_memory
: 读取指定名称的记忆replace_lines
: 用新内容替换文件中的行范围replace_symbol_body
: 替换符号的完整定义restart_language_server
: 重启语言服务器search_for_pattern
: 在项目中搜索模式summarize_changes
: 提供代码库更改摘要说明think_about_collected_information
: 思考工具,用于考虑收集信息的完整性think_about_task_adherence
: 思考工具,用于确定智能体是否仍在当前任务的正确轨道上think_about_whether_you_are_done
: 思考工具,用于确定任务是否真正完成write_memory
: 将命名记忆写入内存存储以供将来参考Serena 是一个功能强大、完全开源的编程智能体工具包,通过语义代码理解和多种集成方式,为开发者提供了一个免费且强大的 AI 编程助手解决方案。无论是通过 MCP 服务器与 Claude Desktop 集成,还是通过 Agno 框架使用各种 LLM,Serena 都能显著提升编程效率和代码质量。