← 返回 Skills 市场
160
总下载
0
收藏
1
当前安装
2
版本数
在 OpenClaw 中安装
/install lovefromio-continuous-learning
功能描述
Automatically extract patterns, best practices, and reusable knowledge from construction automation sessions to improve future performance.
使用说明 (SKILL.md)
\r \r
Continuous Learning for Construction Automation\r
\r This skill enables automatic extraction of valuable patterns, solutions, and best practices from construction automation sessions to build institutional knowledge.\r \r
When to Use\r
\r Activate this skill:\r
- At the end of complex estimation sessions\r
- After solving non-trivial data processing problems\r
- When discovering new integration patterns\r
- After completing successful document processing\r
- When developing new automation workflows\r \r
Pattern Extraction Framework\r
\r
1. Session Analysis\r
\r
class ConstructionSessionAnalyzer:\r
"""Extract learnings from automation sessions"""\r
\r
# Categories of learnable patterns\r
PATTERN_CATEGORIES = [\r
'data_processing', # Data transformation patterns\r
'estimation', # Cost estimation techniques\r
'scheduling', # Schedule optimization patterns\r
'integration', # API/system integration patterns\r
'document_processing', # Document handling patterns\r
'quality_assurance', # Validation and QA patterns\r
'error_handling', # Error resolution patterns\r
'optimization' # Performance optimization patterns\r
]\r
\r
def analyze_session(self, session_log: list) -> dict:\r
"""Extract patterns from session history"""\r
\r
patterns = {\r
'successful_solutions': [],\r
'error_resolutions': [],\r
'optimization_discoveries': [],\r
'integration_patterns': [],\r
'reusable_code': [],\r
'decision_rationales': []\r
}\r
\r
for entry in session_log:\r
if self._is_solution(entry):\r
patterns['successful_solutions'].append(\r
self._extract_solution_pattern(entry)\r
)\r
\r
if self._is_error_resolution(entry):\r
patterns['error_resolutions'].append(\r
self._extract_error_pattern(entry)\r
)\r
\r
if self._is_optimization(entry):\r
patterns['optimization_discoveries'].append(\r
self._extract_optimization(entry)\r
)\r
\r
return patterns\r
```\r
\r
### 2. Knowledge Categories for Construction\r
\r
#### 2.1 Cost Estimation Patterns\r
\r
```yaml\r
# Example learned pattern\r
pattern:\r
name: "electrical_cost_adjustment_pattern"\r
category: "estimation"\r
context: "When estimating electrical work for high-rise buildings"\r
problem: "Standard rates don't account for vertical transportation costs"\r
solution: |\r
Apply height factor multiplier:\r
- Floors 1-5: 1.0x base rate\r
- Floors 6-15: 1.15x base rate\r
- Floors 16-30: 1.25x base rate\r
- Floors 30+: 1.35x base rate\r
confidence: 0.85\r
source_sessions: ["session_2026_01_15", "session_2026_01_20"]\r
validations: 3\r
```\r
\r
#### 2.2 BIM Data Processing Patterns\r
\r
```yaml\r
pattern:\r
name: "revit_level_extraction"\r
category: "data_processing"\r
context: "Extracting elements by level from Revit exports"\r
problem: "Elements sometimes missing level association"\r
solution: |\r
1. First check 'Level' parameter\r
2. If missing, check 'Reference Level' parameter\r
3. If still missing, derive from bounding box Z coordinate\r
4. Map Z ranges to known level elevations\r
code_snippet: |\r
def get_element_level(element: dict, levels: list) -> str:\r
# Direct level parameter\r
if level := element.get('Level'):\r
return level\r
\r
# Reference level fallback\r
if ref_level := element.get('Reference Level'):\r
return ref_level\r
\r
# Derive from geometry\r
z_coord = element['BoundingBox']['Min']['Z']\r
return find_nearest_level(z_coord, levels)\r
confidence: 0.92\r
```\r
\r
#### 2.3 Integration Patterns\r
\r
```yaml\r
pattern:\r
name: "procore_rate_limit_handling"\r
category: "integration"\r
context: "Syncing data with Procore API"\r
problem: "API returns 429 Too Many Requests during bulk operations"\r
solution: |\r
Implement exponential backoff with jitter:\r
1. Initial delay: 1 second\r
2. Multiply by 2 on each retry\r
3. Add random jitter (0-500ms)\r
4. Max retries: 5\r
5. Max delay: 32 seconds\r
code_snippet: |\r
async def procore_request_with_retry(url, data):\r
delay = 1\r
for attempt in range(5):\r
try:\r
response = await procore_api.post(url, data)\r
return response\r
except RateLimitError:\r
jitter = random.uniform(0, 0.5)\r
await asyncio.sleep(delay + jitter)\r
delay *= 2\r
raise MaxRetriesExceeded()\r
confidence: 0.95\r
```\r
\r
#### 2.4 Error Resolution Patterns\r
\r
```yaml\r
pattern:\r
name: "cwicr_no_match_resolution"\r
category: "error_handling"\r
context: "CWICR semantic search returns no relevant matches"\r
problem: "Query too specific or uses non-standard terminology"\r
solution: |\r
Resolution steps:\r
1. Simplify query to core concepts\r
2. Remove brand names and specifications\r
3. Try alternative terminology (US vs UK terms)\r
4. Expand search to parent category\r
5. If still no match, flag for manual mapping\r
examples:\r
- original: "Kohler K-4519 wall-mounted water closet"\r
simplified: "wall mounted toilet"\r
- original: "Lutron Caseta wireless dimmer switch"\r
simplified: "dimmer switch"\r
confidence: 0.88\r
```\r
\r
### 3. Learning Pipeline\r
\r
```python\r
class ConstructionLearningPipeline:\r
"""Continuous learning pipeline for construction automation"""\r
\r
def __init__(self, knowledge_base_path: str):\r
self.kb_path = knowledge_base_path\r
self.patterns = self._load_patterns()\r
\r
def learn_from_session(self, session: dict) -> list:\r
"""Extract and store learnings from session"""\r
\r
# Analyze session\r
analyzer = ConstructionSessionAnalyzer()\r
new_patterns = analyzer.analyze_session(session['log'])\r
\r
# Validate patterns\r
validated = []\r
for pattern in new_patterns['successful_solutions']:\r
if self._validate_pattern(pattern):\r
# Check if similar pattern exists\r
existing = self._find_similar_pattern(pattern)\r
if existing:\r
# Reinforce existing pattern\r
self._reinforce_pattern(existing, pattern)\r
else:\r
# Add new pattern\r
self._add_pattern(pattern)\r
validated.append(pattern)\r
\r
# Persist to knowledge base\r
self._save_patterns()\r
\r
return validated\r
\r
def apply_learnings(self, context: dict) -> list:\r
"""Retrieve relevant patterns for current context"""\r
\r
relevant_patterns = []\r
\r
for pattern in self.patterns:\r
similarity = self._calculate_similarity(pattern['context'], context)\r
if similarity > 0.7:\r
relevant_patterns.append({\r
'pattern': pattern,\r
'relevance': similarity\r
})\r
\r
return sorted(relevant_patterns, key=lambda x: x['relevance'], reverse=True)\r
\r
def _validate_pattern(self, pattern: dict) -> bool:\r
"""Validate pattern before adding to knowledge base"""\r
\r
# Check minimum confidence\r
if pattern.get('confidence', 0) \x3C 0.6:\r
return False\r
\r
# Check for code quality (if code snippet)\r
if code := pattern.get('code_snippet'):\r
if not self._is_valid_code(code):\r
return False\r
\r
# Check for completeness\r
required_fields = ['name', 'category', 'context', 'solution']\r
if not all(f in pattern for f in required_fields):\r
return False\r
\r
return True\r
```\r
\r
### 4. Knowledge Base Structure\r
\r
```\r
knowledge_base/\r
├── patterns/\r
│ ├── estimation/\r
│ │ ├── height_factors.yaml\r
│ │ ├── material_adjustments.yaml\r
│ │ └── labor_productivity.yaml\r
│ ├── data_processing/\r
│ │ ├── revit_extraction.yaml\r
│ │ ├── ifc_parsing.yaml\r
│ │ └── excel_transformations.yaml\r
│ ├── integration/\r
│ │ ├── procore_patterns.yaml\r
│ │ ├── plangrid_patterns.yaml\r
│ │ └── webhook_handlers.yaml\r
│ └── error_handling/\r
│ ├── cwicr_resolutions.yaml\r
│ ├── api_errors.yaml\r
│ └── data_validation.yaml\r
├── code_snippets/\r
│ ├── python/\r
│ ├── javascript/\r
│ └── sql/\r
├── decision_trees/\r
│ ├── estimate_type_selection.yaml\r
│ ├── schedule_method_selection.yaml\r
│ └── integration_approach.yaml\r
└── metrics/\r
├── pattern_usage.json\r
└── success_rates.json\r
```\r
\r
### 5. Session End Learning Prompt\r
\r
At the end of each construction automation session:\r
\r
```markdown\r
## Session Learning Review\r
\r
### What Worked Well\r
- [Successful approaches discovered]\r
- [Efficient patterns used]\r
- [Integrations that worked smoothly]\r
\r
### Challenges Overcome\r
- [Errors encountered and how resolved]\r
- [Workarounds developed]\r
- [Edge cases handled]\r
\r
### New Patterns Discovered\r
- [Novel approaches to problems]\r
- [Optimization techniques found]\r
- [Reusable code created]\r
\r
### Knowledge to Preserve\r
- [Key learnings to remember]\r
- [Context-specific solutions]\r
- [Client/project-specific adaptations]\r
\r
### Recommendations for Future\r
- [Improvements to suggest]\r
- [Patterns to apply elsewhere]\r
- [Automation opportunities identified]\r
```\r
\r
### 6. Pattern Application\r
\r
When starting new construction tasks:\r
\r
```python\r
def suggest_approaches(task_context: dict) -> list:\r
"""Suggest learned approaches for new tasks"""\r
\r
pipeline = ConstructionLearningPipeline('knowledge_base/')\r
relevant = pipeline.apply_learnings(task_context)\r
\r
suggestions = []\r
for item in relevant[:5]: # Top 5 suggestions\r
pattern = item['pattern']\r
suggestions.append({\r
'name': pattern['name'],\r
'relevance': f"{item['relevance']*100:.0f}%",\r
'summary': pattern['solution'][:200],\r
'confidence': pattern['confidence'],\r
'previous_uses': pattern.get('usage_count', 0)\r
})\r
\r
return suggestions\r
```\r
\r
## Integration with Other Skills\r
\r
This skill works with:\r
- **verification-loop-construction**: Learn from verification failures\r
- **security-review-construction**: Capture security patterns\r
- **estimation skills**: Build estimation knowledge base\r
- **integration skills**: Capture API patterns\r
\r
## Usage Commands\r
\r
```bash\r
# Extract learnings from current session\r
/learn\r
\r
# View patterns for current context\r
/suggest-patterns\r
\r
# Add manual pattern\r
/add-pattern --category estimation --name "my_pattern"\r
\r
# Export knowledge base\r
/export-kb --format yaml\r
```\r
\r
---\r
\r
**Every session is an opportunity to learn. Capture knowledge to compound expertise over time.**\r
安全使用建议
This skill is instruction-only and coherent with its stated purpose, but you should still take precautions before enabling it: 1) Verify what session logs the agent will provide — remove or sanitize PII, secrets, or unrelated files before analysis. 2) Limit where the knowledge base is stored and who can read it (it may contain sensitive patterns or internal decisions). 3) Test the skill in a controlled environment first to confirm it only processes expected inputs. 4) Because the package source/homepage is unknown, prefer to run it with minimal privileges and monitor outputs until you are comfortable. If you want stronger assurance, review the full SKILL.md (untruncated) and any runtime policies that govern which data the agent may pass to the skill.
功能分析
Type: OpenClaw Skill
Name: lovefromio-continuous-learning
Version: 1.0.2
The skill bundle provides a framework for an AI agent to extract and store reusable patterns and best practices from construction automation sessions into a local knowledge base. The SKILL.md file contains illustrative Python templates and YAML structures for analyzing session logs, handling API retries (e.g., Procore), and processing BIM data. No evidence of malicious intent, data exfiltration, or harmful prompt injection was found; the logic is focused on institutional knowledge building within the stated domain of construction automation.
能力评估
Purpose & Capability
The skill's name and description (continuous learning from construction automation sessions) align with the included SKILL.md content: session analysis, pattern extraction, and a learning pipeline. It does not ask for unrelated credentials, binaries, or platform access.
Instruction Scope
SKILL.md provides code-like pseudocode and YAML examples for extracting patterns from session logs and writing to a knowledge base path. The instructions stay within the stated domain (analyzing session logs, extracting patterns, storing learnings). However, the skill assumes access to session logs and a knowledge-base path but does not specify how those are provided or sanitized — ensure the data fed to the skill doesn't include sensitive secrets or unrelated files.
Install Mechanism
No install spec and no code files that would be written to disk; this is instruction-only, so nothing is downloaded or installed by the skill itself.
Credentials
The skill declares no required environment variables, binaries, or credentials (proportionate). Still, it operates over session logs and a knowledge base (data that may contain PII or proprietary info). Treat access to those data sources as the primary sensitive surface.
Persistence & Privilege
always is false and the skill does not request permanent platform-wide privileges. The skill can be invoked autonomously (default for skills), which is normal; there is no evidence it attempts to change other skill or agent configurations.
如何使用
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install lovefromio-continuous-learning - 安装完成后,直接呼叫该 Skill 的名称或使用
/lovefromio-continuous-learning触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.2
- Updated internal metadata file (_meta.json); no user-facing functionality changes.
- No updates made to documentation or core skill logic.
v1.0.1
Re-publish with new slug due to conflict
元数据
常见问题
Lovefromio Continuous Learning 是什么?
Automatically extract patterns, best practices, and reusable knowledge from construction automation sessions to improve future performance. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 160 次。
如何安装 Lovefromio Continuous Learning?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install lovefromio-continuous-learning」即可一键安装,无需额外配置。
Lovefromio Continuous Learning 是免费的吗?
是的,Lovefromio Continuous Learning 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Lovefromio Continuous Learning 支持哪些平台?
Lovefromio Continuous Learning 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Lovefromio Continuous Learning?
由 AI(@lovefromio)开发并维护,当前版本 v1.0.2。
推荐 Skills