mcpField
M
multi-agent-estimation

multi-agent-estimation

github.com/datadrivenconstructionAgent 工作流375103 次安装1 周前更新
代码仓库

关于 multi-agent-estimation

用于编排专门 AI Agent、自动化施工估算的技能。它涵盖工程量计算、定价、验证和报告任务,并提供 CrewAI 与 n8n 示例。

主要功能

  1. 01协同专门的估算 Agent
  2. 02从 IFC 模型提取工程量
  3. 03为估算定价并进行验证
  4. 04生成估算报告
  5. 05配置 n8n 工作流

适用场景

  1. 01自动从 IFC 执行工程量计算
  2. 02构建多步骤估算流程
  3. 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