Content
# Multi-Agent Workspace
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
> A complete workspace for multi-agent development based on LangGraph
**Purpose**: Development of LangGraph/Google ADK multi-agent systems
**Target Audience**: Claude Code vibe coding developers
**Philosophy**: Official reference + reusable skills + example agents
---
## 🎯 What is this workspace?
**Multi-Agent Workspace** is a project template designed to quickly develop multi-agent systems using Claude Code.
### Core Components
1. **🤖 Claude Code Skill Collection** (9 skills)
- Agile workflow automation
- Building multi-agent systems
- Corporate research automation
- Browser automation testing
- Monitoring & database
2. **📚 Official Reference Documentation** (`.claude/references/`)
- Complete guide to Google ADK (llms.txt, llms-full.txt)
- LangGraph multi-agent architecture
- LLM optimization documents directly referenced by Claude
3. **📦 Example Agent Implementations**
- Company Research Agent (Research-Extraction-Reflection)
- Additional examples to be added
---
## 🚀 Quick Start
### 1. Environment Setup
```bash
# Install Python dependencies
pip install -r requirements.txt
# Set environment variables (if necessary)
cp .env.example .env
```
### 2. Using Claude Code Skills
```bash
# Agile workflow
/skill agile-product "New feature idea"
/skill agile-stories --prd=docs/prd/feature.md
/skill agile-jira --import docs/stories/
# Building multi-agent systems
/skill langgraph-multi-agent
# Deep research automation
/skill deep-research
```
### 3. Reference Documentation
Explicitly request from Claude Code:
```
"Implement using the Supervisor pattern based on langgraph-multi-agent.md"
"Find and apply the Tool definition method from google-adk-llms.txt"
```
---
## 📁 Project Structure
```
multi-agent-workspace/
├── .claude/ # Claude Code specific
│ ├── skills/ # 🤖 Claude Code skills (7 skills)
│ │ ├── agile-product/ # PRD writing
│ │ ├── agile-stories/ # User Story creation
│ │ ├── agile-jira/ # Jira integration
│ │ ├── langgraph-multi-agent/ # Multi-agent system
│ │ ├── deep-research/ # Web deep research (8 search APIs)
│ │ ├── database-designer/ # DB design & selection (15 DB comparisons)
│ │ ├── playwright-skill/ # Browser automation
│ │ └── skill-creator/ # Skill creation guide
│ │
│ ├── references/ # 📚 Official references (LLM optimization)
│ │ ├── README.md # Reference guide
│ │ ├── google-adk-llms.txt # Google ADK summary (40KB)
│ │ ├── google-adk-llms-full.txt # Full Google ADK (3.1MB)
│ │ ├── langgraph-README.md
│ │ ├── langgraph-multi-agent.md # ⭐ Required
│ │ ├── langgraph-agentic-concepts.md
│ │ └── langgraph-concepts-low-level.md
│ │
│ ├── AGILE_SKILLS_V2.md # Agile workflow guide
│ └── SKILLS_COLLECTION.md # Complete skill collection documentation
│
├── src/ # Agent implementations (examples)
│ └── agent/ # Company Research Agent
│ ├── graph.py
│ ├── state.py
│ ├── prompts.py
│ └── ...
│
├── examples/ # Usage examples
│ ├── basic_research.py
│ ├── custom_schema.py
│ └── streaming_example.py
│
├── docs/ # 📚 Development documentation (related to Company Research)
│
├── requirements.txt # Python dependencies
└── README.md # This file
```
---
## 🤖 Included Claude Code Skills
### Agile Workflow Automation
| Skill | Role | Usage Timing |
|------|------|----------|
| **agile-product** | PM - PRD writing | Start planning new features |
| **agile-stories** | PO - User Story creation | Transform PRD into implementation stories |
| **agile-jira** | Dev - Jira ticket creation | Upload stories to Jira (REST API) |
**Workflow**: PRD writing → User Stories creation → Jira ticket creation
---
### Multi-Agent System
| Skill | Purpose | Usage Timing |
|------|------|----------|
| **langgraph-multi-agent** | Build multi-agent systems | When collaboration among multiple agents is needed |
| **deep-research** | Web research automation (supports 8 search APIs) | Automatic collection of corporate/product/person information |
| **database-designer** | Database design & selection | DB technology selection, schema design |
---
### Development Tools
| Skill | Purpose | Usage Timing |
|------|------|----------|
| **playwright-skill** | Browser automation | E2E testing, UI validation |
| **skill-creator** | Skill creation guide | Create new skills |
---
## 📚 Utilizing Official References
### `.claude/references/` Directory
Official documents that Claude Code automatically references during vibe coding:
#### Google Agent Development Kit (ADK)
- **`google-adk-llms.txt`** (40KB) - Summary, quick reference
- **`google-adk-llms-full.txt`** (3.1MB) - Complete reference
**Contents include**:
- Agent architecture (LLM-driven, Workflow-based)
- Multi-agent patterns (Coordinator/Dispatcher)
- Tool ecosystem
- Context & State management
#### LangGraph
- **`langgraph-multi-agent.md`** (35KB) - ⭐ Required! 5 architectures
- **`langgraph-agentic-concepts.md`** - Core concepts of agents
- **`langgraph-concepts-low-level.md`** - Low-level APIs
- **`langgraph-README.md`** - Quick start
**Usage examples**:
```
"Implement using the Hierarchical pattern based on langgraph-multi-agent.md"
"Find the Session management method from google-adk-llms.txt"
```
Detailed guide: [.claude/references/README.md](.claude/references/README.md)
---
## 🎓 Usage Scenarios
### Scenario 1: Developing a New Feature (Agile Workflow)
```bash
# 1. Write PRD
/skill agile-product "Add OAuth authentication"
→ Create docs/prd/oauth-authentication-2024-10-23.md
# 2. Generate User Stories
/skill agile-stories --prd=docs/prd/oauth-authentication-2024-10-23.md
→ Create 3 stories in docs/stories/
# 3. Create Jira Tickets
/skill agile-jira --import docs/stories/
→ Automatically create Epic + Story tickets in Jira
```
---
### Scenario 2: Building a Multi-Agent System
```bash
# 1. Check references
cat .claude/references/langgraph-multi-agent.md
# 2. Request from Claude
"Create a system where researcher, writer, and reviewer agents collaborate using the Supervisor pattern from langgraph-multi-agent.md"
```
---
### Scenario 3: Automating Corporate Research
```bash
# 1. Build Research Agent
/skill deep-research
# 2. Set up Database
/skill database-designer
# 3. Execute
python examples/basic_research.py
```
---
## 🛠️ Creating New Agents
### Method 1: Using Skills
```bash
/skill langgraph-multi-agent
# Claude will guide you interactively in building agents
```
### Method 2: Referencing Documentation
```
"Read the Network architecture from langgraph-multi-agent.md and create a Customer Support multi-agent system"
```
### Method 3: Copying Examples
```bash
# Refer to Company Research Agent code
cp -r src/agent src/agents/my_new_agent
# Modify and use
```
---
## 💡 Vibe Coding Tips
### 1. Specify References
❌ "Create a multi-agent"
✅ "Create it using the Supervisor pattern from langgraph-multi-agent.md"
### 2. Actively Utilize Skills
❌ Coding Jira API directly
✅ `/skill agile-jira --import docs/stories/`
### 3. Consider Context Size
- Quick reference: `google-adk-llms.txt` (40KB)
- Detailed implementation: `google-adk-llms-full.txt` (3.1MB)
### 4. Utilize Search
```bash
grep -r "StateGraph" .claude/references/
grep -r "handoff" .claude/references/
```
---
## 📋 Requirements
### Mandatory
- Python 3.10+
- Claude Code CLI
- Anthropic API key (when running agents)
### Optional (by purpose)
- Tavily API key - for web search agents
- Jira API token - for agile-jira skill
---
## 🎯 Example Agent: Company Research
Currently included example:
**Company Research Agent** - Research-Extraction-Reflection pattern
- Automatic web search + structured data extraction
- Specialized for unlisted small and medium enterprises
- Provides multi-search capabilities via Tavily/Google ADK
Execution:
```bash
python examples/basic_research.py
```
Detailed documentation: [docs/README_DEEP_RESEARCH.md](docs/README_DEEP_RESEARCH.md)
---
## 🔬 Deep Research Customization Guide
**Core Concept: Change only the Schema to research any domain!**
The Company Research Agent is a **universal web research engine**. By changing the `extraction_schema`, it can automatically research any domain such as companies, products, people, papers, etc.
### Customization in 3 Steps
```python
# 1. Define Schema (what to extract)
custom_schema = {
"title": "Product Analysis",
"type": "object",
"properties": {
"product_name": {"type": "string"},
"price": {"type": "string"},
"features": {"type": "array", "items": {"type": "string"}},
"reviews_summary": {"type": "string"}
}
}
# 2. Choose Search Provider (free or paid)
config = Configuration(
search_provider="serper", # Free 2,500 queries
max_search_queries=3
)
# 3. Execute!
result = await graph.ainvoke({
"company_name": "iPhone 15 Pro", # Research target
"extraction_schema": custom_schema,
"user_context": "Focus on camera features and battery life"
})
```
**That's all!** The rest of the code (Research-Extraction-Reflection loop) is completely reusable.
---
### Comparison of 8 Web Search APIs
Various free/paid options available. For details, refer to the [deep-research skill](.claude/skills/deep-research/references/WEB_SEARCH_APIS.md).
| Provider | Free Tier | Quality | Best For |
|----------|-----------|---------|----------|
| **Jina AI Reader** | 200 RPM free | ⭐⭐⭐ | Development/testing, URL→text conversion |
| **Serper.dev** | 2,500 lifetime | ⭐⭐⭐⭐ | **Best free production** |
| **Tavily** | 1,000/month | ⭐⭐⭐⭐⭐ | Production quality |
| **Exa** | $10 credit or 1k/month | ⭐⭐⭐⭐ | AI native semantic search |
| **Brave** | Free tier | ⭐⭐⭐ | Privacy-focused |
| **DuckDuckGo** | Unlimited free | ⭐⭐ | For testing (slow) |
| **SerpAPI** | 100/month | ⭐⭐⭐⭐ | Google result scraping |
| **Google ADK** | Gemini 2.0+ free | ⭐⭐⭐⭐ | Gemini users |
**Recommendations:**
- Start: **DuckDuckGo** (completely free, no API key needed)
- Production: **Serper.dev** (2,500 free queries) or **Tavily** (best quality)
- Semantic search: **Exa** (AI native)
---
### Quick Customization Examples
#### Example 1: Product Research
```python
PRODUCT_SCHEMA = {
"title": "Product Research",
"properties": {
"product_name": {"type": "string"},
"manufacturer": {"type": "string"},
"price_range": {"type": "string"},
"key_features": {"type": "array", "items": {"type": "string"}},
"pros": {"type": "array", "items": {"type": "string"}},
"cons": {"type": "array", "items": {"type": "string"}},
"user_rating": {"type": "string"},
"competitors": {"type": "array", "items": {"type": "string"}}
}
}
config = Configuration(search_provider="serper") # Free
result = await graph.ainvoke({
"company_name": "Sony WH-1000XM5", # Product name
"extraction_schema": PRODUCT_SCHEMA
})
```
#### Example 2: Person Research (LinkedIn Profile Alternative)
```python
PERSON_SCHEMA = {
"title": "Professional Profile",
"properties": {
"full_name": {"type": "string"},
"current_position": {"type": "string"},
"company": {"type": "string"},
"education": {"type": "array", "items": {"type": "string"}},
"work_history": {"type": "array", "items": {"type": "string"}},
"publications": {"type": "array", "items": {"type": "string"}},
"social_media": {"type": "object"}
}
}
result = await graph.ainvoke({
"company_name": "Dario Amodei", # Person name
"extraction_schema": PERSON_SCHEMA,
"user_context": "Focus on AI research and Anthropic role"
})
```
#### Example 3: Academic Paper Research
```python
PAPER_SCHEMA = {
"title": "Research Paper Analysis",
"properties": {
"title": {"type": "string"},
"authors": {"type": "array", "items": {"type": "string"}},
"publication_date": {"type": "string"},
"abstract_summary": {"type": "string"},
"key_findings": {"type": "array", "items": {"type": "string"}},
"methodology": {"type": "string"},
"citations_count": {"type": "string"},
"related_papers": {"type": "array", "items": {"type": "string"}}
}
}
result = await graph.ainvoke({
"company_name": "Attention Is All You Need",
"extraction_schema": PAPER_SCHEMA,
"user_context": "Focus on transformer architecture"
})
```
#### Example 4: Competitor Analysis
```python
COMPETITOR_SCHEMA = {
"title": "Competitor Analysis",
"properties": {
"company_name": {"type": "string"},
"market_position": {"type": "string"},
"key_products": {"type": "array", "items": {"type": "string"}},
"pricing_strategy": {"type": "string"},
"strengths": {"type": "array", "items": {"type": "string"}},
"weaknesses": {"type": "array", "items": {"type": "string"}},
"recent_news": {"type": "array", "items": {"type": "string"}},
"funding": {"type": "string"}
}
}
config = Configuration(
search_provider="tavily", # High quality
max_search_queries=5 # More information
)
result = await graph.ainvoke({
"company_name": "OpenAI",
"extraction_schema": COMPETITOR_SCHEMA
})
```
---
### Configuration Examples by Search Provider
```python
# Completely free (for testing)
config_free = Configuration(search_provider="duckduckgo")
# Free production (2,500 queries)
config_prod_free = Configuration(search_provider="serper")
# Best quality (paid)
config_premium = Configuration(search_provider="tavily")
# AI semantic search
config_semantic = Configuration(search_provider="exa")
# Hybrid (cost-saving)
config_hybrid = Configuration(
search_provider="hybrid" # Tavily + free combination
)
```
---
### Practical Tips
1. **Schema Design**
- Keep it flat (avoid deep nesting)
- Add clear `description` for each field
- Minimize required fields
2. **Choosing Search Provider**
- Development: DuckDuckGo (free, slow)
- Production: Serper (2,500 free) → Tavily (quality)
- Need semantic search: Exa
3. **Cost Optimization**
- Start with `max_search_queries=3`
- Limit `max_reflection_steps=1`
- Monitor free tiers (Serper 2,500 queries)
4. **Quality Improvement**
- Control search direction with `user_context`
- Write specific schema descriptions
- Activate reflection (`max_reflection_steps=2`)
---
### Next Steps
1. **Write Custom Schema**: Refer to `.claude/skills/deep-research/SKILL.md`
2. **Set API Keys**: Refer to [WEB_SEARCH_APIS.md](.claude/skills/deep-research/references/WEB_SEARCH_APIS.md)
3. **Run Examples**: Modify and run `examples/custom_schema.py`
**A universal research engine applicable to all domains!** 🚀
---
## 🤝 Contribution
Contributions of new skills, agent examples, and reference documents are welcome!
### Things to Add
- [ ] More multi-agent examples
- [ ] RAG agent skill
- [ ] SQL agent skill
- [ ] Custom Tool library
- [ ] Deployment guide
---
## 📄 License
MIT License
---
## 🔗 References
### Official Documentation
- [Google ADK](https://google.github.io/adk-docs/)
- [LangGraph](https://langchain-ai.github.io/langgraph/)
- [Claude Code](https://docs.claude.com/claude-code)
### Community
- [LangGraph Examples](https://github.com/langchain-ai/langgraph)
- [Agent Service Toolkit](https://github.com/JoshuaC215/agent-service-toolkit)
- [Claude Code Skills](https://github.com/anthropics/skills)
---
## 🎉 Getting Started
1. **Read the References**: `.claude/references/README.md`
2. **Explore the Skills**: `.claude/skills/`
3. **Run Examples**: `python examples/basic_research.py`
4. **Request from Claude**: "Create a new agent based on langgraph-multi-agent.md"
**Happy vibe coding! 🚀**
---
**Multi-Agent Workspace** v1.0.0
*For Claude Code vibe coders*