使用说明
Roo活动记录器
太长,读不下去了
- 这是怎么一回事? --这是一个 MCP服务器 自动记录AI编码助手的活动,如命令执行和代码生成(支持Roo code、Cline、Claude code等)。
- 它有什么作用? --它将活动历史记录保存为JSON文件,您可以稍后搜索和分析。
- 我该如何使用它? --将其添加到您的Claude Code、Cline或Roo Code设置中,以启用自动活动日志记录。
概述
Roo Activity Logger是一个MCP(模型上下文协议)服务器,可以自动记录AI编码助手的开发活动,包括命令执行、代码生成、文件操作等。它支持Claude Code、Cline、Roo Code和其他兼容MCP的AI助手。 所有日志均以JSON格式保存,便于随时搜索、分析和恢复上下文。
活动日志记录的工作原理
flowchart TD
A[Roo's Action] --> B[Select Activity Type]
B --> C[Log via log_activity]
C --> D[Provide Log Info<br>- Summary<br>- Details<br>- Intention<br>- Context]
D --> E[Specify Save Directory]
E --> F[Save as JSON file]
恢复任务时如何搜索日志和恢复上下文
flowchart TD
G[Resume Task] --> H[Search with search_logs]
H --> I[Set Search Filters<br>- Type<br>- Date Range<br>- Text]
I --> J[Retrieve Related Activities<br>- Parent/Child<br>- Sequence<br>- Related IDs]
J --> K[Restore Context & Resume<br>- Review Past Intentions<br>- Understand Progress]
日志条目示例
以下是一个示例 file_operation 日志条目保存为JSON格式:
{
"id": "75add15d-8d5b-4e60-b327-fde785050c86",
"timestamp": "2025-04-10T01:58:02.905Z",
"type": "file_operation",
"level": "info",
"summary": "Inserted mermaid diagram into README.md",
"details": {
"file": "README.md",
"operation": "insert_content",
"insertedLines": "mermaid code block",
"position": "after overview section"
},
"intention": "To visually explain the flow of saving and retrieving activities",
"context": "Improving documentation for Roo Activity Logger",
"parentId": "98280366-1de1-48e0-9914-b3a3409599b4"
}
每个日志包含:
- 日志级别(
debug,info,warn,error) - 总结
- 详细信息(任何结构化数据)
- 意图/目的
- 上下文信息
- 父活动ID(用于层次结构)
- 序列号(用于订购)
- 相关活动ID(用于分组)
日志包括:
- 已保存 基于日期的JSON文件
- 可搜索 按类型、级别、日期、文本等。
- 可定制的 --您可以为每个活动指定不同的保存目录
特性
-
记录各种活动类型:
- 命令执行(
command_execution) - 代码生成(
code_generation) - 文件操作(
file_operation) - 错误(
error_encountered) - 决定(
decision_made) - 对话(
conversation)
- 命令执行(
-
每个活动日志包括:
- 唯一ID
- 时间戳
- 活动类型
- 摘要、细节、意图、上下文和可选元数据
用法(推荐:通过 npx)
您可以使用以下命令直接运行Roo Activity Logger,而无需克隆存储库 npx.
将此添加到Cline、Roo Code或Claude Code配置中:
{
"mcpServers": {
"roo-activity-logger": {
"command": "npx",
"args": ["-y", "github:annenpolka/roo-logger"],
"env": {},
"disabled": false
}
}
}
然后,在规则文件(适用于Cline/Roo代码)或CLAUDE.md(适用于CLAUDE代码)中添加提示以确保日志记录,例如:
## Important
Always log activities using roo-activity-logger according to the logging rules.
## Preparation
Check the current context with `git status`.
Then, use roo-activity-logger's `search_logs` to review existing logs and identify current tasks.
Be sure to perform the logging steps.
## Logging
- Always use roo-activity-logger for all logs
- Include stack traces and execution context
- Record intention and context
开发者:本地设置
要在本地开发或自定义,请克隆存储库并构建:
# Clone the repo
git clone https://github.com/annenpolka/roo-logger.git
cd roo-logger
# Install dependencies
npm install
# Build
npm run build
使用本地版本的示例配置:
{
"mcpServers": {
"roo-activity-logger": {
"command": "node",
"args": ["/path/to/your/local/roo-logger/dist/index.js"], // adjust path accordingly
"env": {},
"disabled": false
}
}
}
备注
- 如果指定的目录不存在,将自动创建该目录。
MCP工具
log_activity --记录活动
记录活动的工具。
基本示例
{
"type": "command_execution",
"summary": "Run npm command",
"intention": "Update project dependencies",
"context": "Preparing for new feature development",
"logsDir": "/absolute/path/to/logs/activity"
}
参数
| 名称 | 必填 | 类型 | 描述 |
|---|---|---|---|
type |
是 | 字符串 | 活动类型(command_execution, code_generation, file_operation, error_encountered, decision_made, conversation) |
summary |
是 | 字符串 | 活动简短摘要 |
intention |
是 | 字符串 | 目的或意图 |
context |
是 | 字符串 | 上下文信息 |
logsDir |
是 | 字符串 | 保存目录(仅绝对路径) |
level |
否 | 字符串 | 日志级别(debug, info, warn, error).违约: info |
details |
否 | 对象 | 其他详细信息(任何JSON) |
parentId |
否 | 字符串 | 父活动ID |
sequence |
否 | 编号 | 序列号 |
relatedIds |
无 | string[] | 相关活动ID |
详细示例
{
"type": "file_operation",
"summary": "Update README file",
"intention": "Clarify documentation and improve usability",
"context": "Improvements based on user feedback",
"level": "info",
"details": {
"file": "README.md",
"operation": "update",
"changedLines": 15
},
"logsDir": "/absolute/path/to/logs/activity",
"sequence": 3,
"relatedIds": ["11223344-5566-7788-99aa-bbccddeeff00"]
}
get_log_files --列出已保存的日志文件
递归列出已保存的日志文件。您可以指定最大搜索深度。
基本示例
{
"logsDir": "/absolute/path/to/logs"
}
参数
| 名称 | 必填 | 类型 | 描述 |
|---|---|---|---|
logsDir |
Yes | string | 要搜索的目录(仅绝对路径) |
limit |
No | number | 要检索的最大文件数(默认值:10) |
offset |
No | number | 要跳过的文件数(默认值:0) |
logFilePrefix |
无 | string | 日志文件前缀(默认值: "roo-activity-") |
logFileExtension |
无 | string | 日志文件扩展名(默认: ".json") |
maxDepth |
否 | 编号 | 最大目录深度(默认值:3) |
search_logs --搜索已保存的日志
使用各种过滤器搜索已保存的日志。
基本示例
{
"logsDir": "/absolute/path/to/logs"
}
{
"logsDir": "/absolute/path/to/logs",
"type": "command_execution"
}
参数
| 名称 | 必填 | 类型 | 描述 |
|---|---|---|---|
logsDir |
Yes | string | 日志目录(仅绝对路径) |
logFilePrefix |
无 | string | 日志文件前缀(默认值: "roo-activity-") |
logFileExtension |
无 | string | 日志文件扩展名(默认: ".json") |
type |
否 | 字符串 | 按活动类型筛选(command_execution, code_generation, file_operation, error_encountered, decision_made, conversation) |
level |
否 | 字符串 | 按日志级别筛选(debug, info, warn, error) |
startDate |
否 | 字符串 | 开始日期(YYYY-MM-DD) |
endDate |
否 | 字符串 | 结束日期(YYYY-MM-DD) |
searchText |
否 | 字符串 | 在摘要或详细信息中搜索文本 |
limit |
No | number | 要检索的最大日志数(默认值:50) |
offset |
No | number | 要跳过的日志数(默认值:0) |
parentId |
否 | 字符串 | 按父活动ID筛选 |
sequenceFrom |
否 | 编号 | 序列号下限 |
sequenceTo |
否 | 编号 | 序列号上限 |
relatedId |
否 | 字符串 | 按相关活动ID筛选 |
relatedIds |
否 | string[] | 按任何相关活动ID筛选 |
许可证
麻省理工学院