Project Overview
Automation Scaffold is a unified Monorepo automation project collection, aiming to integrate tools and services for multiple automation scenarios, reducing duplicate development and providing shared infrastructure.
Subsystems
| Subproject | Responsibility |
|---|---|
shared/ | Common packages (config/logging/DingTalk/Feishu/Bailian clients) |
01-ai-table/ | AI table setup, integrated with DingTalk and Feishu platforms |
02-rpa/ | Yingdao RPA data processing automation |
03-data-scraper/ | Data scraping service |
04-agent/ | LangGraph Agent orchestration |
Technical Architecture
Shared Infrastructure
# shared/config.py
from pydantic import BaseSettings
class Settings(BaseSettings):
# DingTalk config
dingtalk_app_key: str
dingtalk_app_secret: str
# Feishu config
feishu_app_id: str
feishu_app_secret: str
# Bailian API
bailian_api_key: str
class Config:
env_file = ".env"
settings = Settings()AI Table Integration
# 01-ai-table/connector.py
from shared.feishu import FeishuClient
from shared.dingtalk import DingTalkClient
class AITableConnector:
def __init__(self):
self.feishu = FeishuClient()
self.dingtalk = DingTalkClient()
async def sync_table(self, table_id: str):
# Sync Feishu multi-dimensional table to DingTalk
data = await self.feishu.get_table_data(table_id)
await self.dingtalk.update_table(data)LangGraph Agent
# 04-agent/workflow.py
from langgraph.graph import StateGraph
def create_agent_workflow():
graph = StateGraph(AgentState)
graph.add_node("analyze", analyze_task)
graph.add_node("execute", execute_action)
graph.add_node("report", generate_report)
graph.set_entry_point("analyze")
graph.add_edge("analyze", "execute")
graph.add_edge("execute", "report")
return graph.compile()Quick Start
cd automation-scaffold
pip install -e shared/
pip install -e 01-ai-table/
pip install -e 02-rpa/
pip install -e 03-data-scraper/
pip install -e 04-agent/Configure API keys to run each subproject.
Design Philosophy
Each subsystem runs independently, sharing infrastructure code (logging, config, third-party clients) through the shared/ package, avoiding reinventing the wheel.
Related Links
Last updated: 2026-04-25