关于 multi-agent-estimation
用于编排专门 AI Agent、自动化施工估算的技能。它涵盖工程量计算、定价、验证和报告任务,并提供 CrewAI 与 n8n 示例。
主要功能
- 01协同专门的估算 Agent
- 02从 IFC 模型提取工程量
- 03为估算定价并进行验证
- 04生成估算报告
- 05配置 n8n 工作流
适用场景
- 01自动从 IFC 执行工程量计算
- 02构建多步骤估算流程
- 03验证并汇总施工估算
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ datadrivenconstruction/ ddc_skills_for_ai_agents_in_construction --skill multi-agent-estimation安装后在 Claude Code 中输入/multi-agent-estimation确认已加载。
附带文件claw.jsoninstructions.md
详细介绍
多 Agent 估算系统
概述
2026 年,AI Agent 正从单任务助手转向编排式多 Agent 系统。此技能支持构建一组专业 AI Agent,共同协作,实现施工估算自动化。
“得益于 LLM 节点,你只需让 ChatGPT、Claude 或任何先进的 AI 助手生成 n8n 自动化流水线——无论是从 PDF 中提取表格、验证参数,还是生成自定义 QTO 表——就能在几秒内获得可直接运行的工作流。”——Artem Boiko
架构
┌─────────────────────────────────────────────────────────────────┐
│ MULTI-AGENT ESTIMATION │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ QTO │ │ Pricing │ │Validation│ │ Report │ │
│ │ Agent │──▶│ Agent │──▶│ Agent │──▶│ Agent │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ Extract Match to Validate Generate │
│ quantities CWICR DB totals Excel/PDF │
│ │
└─────────────────────────────────────────────────────────────────┘
使用 CrewAI 快速入门
from crewai import Agent, Task, Crew
from langchain_openai import ChatOpenAI
# Initialize LLM
llm = ChatOpenAI(model="gpt-4o", temperature=0)
# QTO Agent - Extracts quantities from documents
qto_agent = Agent(
role="Quantity Takeoff Specialist",
goal="Extract accurate quantities from IFC models and PDF drawings",
backstory="""You are an expert quantity surveyor with 20 years of
experience in construction. You meticulously extract volumes, areas,
and counts from building models and drawings.""",
llm=llm,
verbose=True
)
# Pricing Agent - Matches items to price database
pricing_agent = Agent(
role="Cost Estimator",
goal="Match extracted quantities to CWICR database and apply unit rates",
backstory="""You are a senior estimator who knows construction costs
inside out. You match work items to standardized codes and apply
appropriate unit rates based on project location and conditions.""",
llm=llm,
verbose=True
)
# Validation Agent - Checks for errors and outliers
validation_agent = Agent(
role="Quality Assurance Specialist",
goal="Validate estimate accuracy and flag potential errors",
backstory="""You review estimates for completeness, accuracy, and
reasonableness. You catch errors that others miss and ensure
estimates are defensible.""",
llm=llm,
verbose=True
)
# Report Agent - Generates final deliverables
report_agent = Agent(
role="Report Generator",
goal="Create professional estimate reports in Excel and PDF",
backstory="""You transform raw estimate data into polished,
professional reports that clients can understand and trust.""",
llm=llm,
verbose=True
)
定义任务
# Task 1: Extract quantities from IFC
qto_task = Task(
description="""
Extract all quantities from the provided IFC model:
- Walls: volumes, areas, lengths
- Slabs: areas, volumes
- Columns: counts, volumes
- Beams: lengths, volumes
Group by building level and element type.
Output as structured JSON.
""",
expected_output="JSON with quantities grouped by level and type",
agent=qto_agent
)
# Task 2: Match to price database
pricing_task = Task(
description="""
For each extracted quantity:
1. Match to CWICR code using semantic search
2. Apply unit rate from price database
3. Calculate line item totals
4. Add markup percentages (OH&P, contingency)
Output detailed cost breakdown.
""",
expected_output="Cost breakdown with CWICR codes and totals",
agent=pricing_agent,
context=[qto_task]
)
# Task 3: Validate estimate
validation_task = Task(
description="""
Review the estimate for:
- Missing scope items
- Unrealistic unit rates (compare to historical)
- Math errors
- Inconsistent quantities
Flag any issues with severity rating.
""",
expected_output="Validation report with issues and severity",
agent=validation_agent,
context=[pricing_task]
)
# Task 4: Generate report
report_task = Task(
description="""
Generate professional estimate report:
- Executive summary with total
- Detailed breakdown by CSI division
- Assumptions and exclusions
- Risk items identified during validation
Format for Excel export.
""",
expected_output="Formatted estimate report ready for export",
agent=report_agent,
context=[pricing_task, validation_task]
)
运行团队
# Create the crew
estimation_crew = Crew(
agents=[qto_agent, pricing_agent, validation_agent, report_agent],
tasks=[qto_task, pricing_task, validation_task, report_task],
verbose=True
)
# Execute
result = estimation_crew.kickoff(inputs={
"ifc_path": "building.ifc",
"price_db": "cwicr_prices.xlsx",
"project_location": "Berlin, Germany"
})
print(result)
n8n 集成
{
"workflow": "Multi-Agent Estimation",
"nodes": [
{
"name": "Trigger",
"type": "Webhook",
"note": "Receive IFC file upload"
},
{
"name": "QTO Agent",
"type": "AI Agent",
"model": "gpt-4o",
"tools": ["ifcopenshell", "pandas"]
},
{
"name": "Pricing Agent",
"type": "AI Agent",
"model": "gpt-4o",
"tools": ["qdrant_search", "cwicr_api"]
},
{
"name": "Validation Agent",
"type": "AI Agent",
"model": "gpt-4o",
"tools": ["historical_db", "outlier_detection"]
},
{
"name": "Generate Excel",
"type": "Spreadsheet",
"operation": "create"
},
{
"name": "Send Email",
"type": "Email",
"to": "[email protected]"
}
]
}
为什么在 2026 年采用多 Agent?
| 单 Agent | 多 Agent |
|---|---|
| 一个提示词,一个任务 | 专业领域专家协作 |
| 上下文限制 | 分布式记忆 |
| 单点故障 | 冗余与验证 |
| 难以调试 | 职责明确 |
| 通用输出 | 领域专属质量 |
要求
pip install crewai langchain-openai ifcopenshell pandas qdrant-client
资源
评论
支持 Markdown