[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74305":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":10,"rankLanguage":10,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":20,"createdAt":10,"pushedAt":10,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":15,"starSnapshotCount":15,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},74305,"kiwiq","rcortx\u002Fkiwiq","rcortx","Production-grade multi-agent orchestration platform - JSON-defined agents, multi-tier memory, and built-in observability. Battle-tested on 200+ enterprise AI agents. Now fully open-sourced (prod at https:\u002F\u002Fkiwiq.ai).","",null,"Python",1020,113,6,0,54.17,"Apache License 2.0",false,"main",[],"2026-06-12 04:01:14","# KiwiQ AI Platform\n\n**Production-grade multi-agent orchestration platform — JSON-defined agents, multi-tier memory, and built-in observability.**\n\nBattle-tested on 200+ enterprise AI agents. Define complex multi-step AI workflows as Python\u002FJSON graph schemas with 24+ reusable node types, multi-provider LLM support, human-in-the-loop interactions, web scraping, RAG pipelines, and versioned customer data management. Ships with 27+ ready-to-use workflow definitions.\n\nThis platform powered [KiwiQ AI](https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fkiwiq-ai\u002F) (Marketing AI Agents) in production and is now fully open-sourced.\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](LICENSE)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.12-green.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002Frelease\u002Fpython-3120\u002F)\n\n---\n\n## Features\n\n- **SDK-first workflow engine** — Define workflows as Python\u002FJSON graph schemas (not a visual builder), compiled to LangGraph and executed via Prefect\n- **Multi-provider LLM support** — OpenAI, Anthropic, Google Gemini, Perplexity, Fireworks, AWS Bedrock\n- **Human-in-the-Loop (HITL)** — Pause workflows for human review, input, or approval with real-time WebSocket streaming\n- **24+ reusable node types** — LLM, routing, conditional branching, data transforms, scraping, code execution, sub-workflows, and more\n- **27+ production workflow definitions** — Content creation, diagnostics, lead scoring, deep research, playbook generation, and more included out of the box\n- **Multi-tier memory & state** — PostgreSQL for relational state, MongoDB for versioned documents, Weaviate for vector search, Redis for caching\n- **RAG pipelines** — Document ingestion, vector search (Weaviate), and retrieval-augmented generation\n- **Customer data management** — Versioned document storage in MongoDB with CRUD workflow nodes\n- **Event-driven architecture** — RabbitMQ-based event bus for async processing between services\n- **Observability** — Real-time progress via RabbitMQ events, WebSocket streaming, Prefect dashboard, structured logging\n- **Web scraping** — LinkedIn profiles\u002Fcompanies, web crawling, AI-powered search engines\n- **Sandboxed code execution** — Run user-defined Python safely within workflows\n- **Billing & auth** — Stripe integration, JWT authentication, role-based access control\n\n## Architecture Overview\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                      FastAPI (kiwi_app)                      │\n│  Auth │ Billing │ Workflow API │ RAG │ Data Jobs │ WebSocket │\n└──────────────────────────┬──────────────────────────────────┘\n                           │\n              ┌────────────┼────────────┐\n              ▼            ▼            ▼\n        ┌──────────┐ ┌──────────┐ ┌──────────┐\n        │ RabbitMQ │ │ Prefect  │ │  Redis   │\n        │ (events) │ │ (orch)   │ │ (cache)  │\n        └────┬─────┘ └────┬─────┘ └──────────┘\n             │             │\n             ▼             ▼\n        ┌──────────────────────────┐\n        │   Workflow Service       │\n        │  ┌────────┐ ┌────────┐  │\n        │  │LangGraph│ │ Nodes  │  │\n        │  │ Engine  │ │Registry│  │\n        │  └────────┘ └────────┘  │\n        └──────────┬───────────────┘\n                   │\n     ┌─────────┬───┼───┬──────────┐\n     ▼         ▼   ▼   ▼          ▼\n┌────────┐┌───────┐┌────────┐┌──────────┐\n│Postgres││MongoDB││Weaviate ││LLM APIs  │\n│(state) ││(docs) ││(vector) ││(OpenAI…) │\n└────────┘└───────┘└────────┘└──────────┘\n```\n\n## Quick Start\n\n### Prerequisites\n\n- Python 3.12\n- [Poetry](https:\u002F\u002Fpython-poetry.org\u002Fdocs\u002F#installation)\n- [Docker](https:\u002F\u002Fdocs.docker.com\u002Fget-docker\u002F) & Docker Compose\n\n### 1. Clone and install\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fkiwiq-ai\u002Fkiwiq-oss.git\ncd kiwiq-oss\npoetry install\n```\n\n### 2. Configure environment\n\n```bash\ncp .env.sample .env\n```\n\nEdit `.env` and fill in required values:\n\n| Variable | Description |\n|----------|-------------|\n| `OPENAI_API_KEY` | OpenAI API key (required for LLM nodes) |\n| `ANTHROPIC_API_KEY` | Anthropic API key (optional) |\n| `GOOGLE_API_KEY` | Google Gemini API key (optional) |\n| `PPLX_API_KEY` | Perplexity API key (optional, for deep research workflows) |\n| `POSTGRES_*` | PostgreSQL credentials |\n| `MONGO_ROOT_*` | MongoDB credentials |\n| `RABBITMQ_DEFAULT_*` | RabbitMQ credentials |\n| `REDIS_PASSWORD` | Redis password |\n| `SECRET_KEY` | JWT secret — generate with `openssl rand -hex 32` |\n\nSee [`.env.sample`](.env.sample) for the full list of configuration options.\n\n### 3. Start services\n\n```bash\n# Development (all services including databases)\ndocker compose -f docker-compose-dev.yml up --build\n```\n\n### 4. Access the platform\n\n- **API docs:** http:\u002F\u002Flocalhost:8000\u002Fdocs\n- **Prefect dashboard:** http:\u002F\u002Flocalhost:4201\n- **RabbitMQ management:** http:\u002F\u002Flocalhost:15672\n- **RedisInsight:** http:\u002F\u002Flocalhost:8001\n\n## Using with Claude Code\n\nThis repository ships with a comprehensive [`CLAUDE.md`](CLAUDE.md) that provides Claude Code with full context about the project — architecture, commands, testing patterns, workflow development, and troubleshooting. To get started:\n\n1. Install [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code)\n2. Run `claude` from the repo root\n\nClaude Code will automatically pick up `CLAUDE.md` and can help with local setup, running tests, modifying services, building workflows, debugging, and navigating the codebase.\n\n## Docker Environments\n\n### Development (`docker-compose-dev.yml`)\n\nFull local environment with all services containerized:\n\n| Service | Port | Description |\n|---------|------|-------------|\n| FastAPI App | 8000 | Core API server with live reload |\n| PostgreSQL | 5432 | Relational data, workflow state, LangGraph checkpoints |\n| MongoDB | 27017 | Customer data, workflow configs, prompt templates |\n| Redis | 6379 | Caching and session management |\n| RabbitMQ | 5672 \u002F 15672 | Event streaming \u002F management UI |\n| Weaviate | 8080 | Vector database for RAG |\n| Prefect Server | 4201 | Workflow orchestration dashboard |\n| Prefect Agent | — | Workflow execution worker |\n\nAll data is persisted via named Docker volumes. Code changes are hot-reloaded via volume mounts.\n\n### Production (`docker-compose.prod.yml`)\n\nProduction-hardened environment with:\n\n- **Nginx + Certbot** for SSL\u002FTLS termination\n- **External managed databases** (PostgreSQL, MongoDB) — not containerized\n- **Resource limits** on all containers (CPU and memory caps)\n- **JSON-file logging** with rotation\n- **Health checks** on critical services\n- Tuned for **4x concurrent workflow execution**\n\n## Running Without Docker\n\nTo run services directly on your host:\n\n```bash\n# Set Python path\nexport PYTHONPATH=$(pwd):$(pwd)\u002Fservices\n\n# Start FastAPI server\npoetry run uvicorn kiwi_app.main:app --host 0.0.0.0 --port 8000 --reload\n\n# Start Prefect worker (separate terminal)\npoetry run python services\u002Fworkflow_service\u002Fservices\u002Fworker.py\n```\n\nYou'll need PostgreSQL, MongoDB, Redis, RabbitMQ, and Weaviate running separately (locally or hosted).\n\n## Repository Structure\n\n```\nkiwiq-oss\u002F\n├── libs\u002Fsrc\u002F                        # Shared libraries\n│   ├── db\u002F                          #   PostgreSQL (SQLModel, Alembic migrations)\n│   ├── mongo_client\u002F                #   MongoDB client\n│   ├── redis_client\u002F                #   Redis client\n│   ├── rabbitmq_client\u002F             #   RabbitMQ event streaming\n│   ├── weaviate_client\u002F             #   Weaviate vector DB client\n│   ├── global_config\u002F               #   Global settings\n│   └── global_utils\u002F                #   Shared utilities\n│\n├── services\u002F\n│   ├── kiwi_app\u002F                    # Core FastAPI application\n│   │   ├── auth\u002F                    #   Authentication & authorization\n│   │   ├── billing\u002F                 #   Stripe billing & credits\n│   │   ├── workflow_app\u002F            #   Workflow API, WebSockets, events\n│   │   ├── data_jobs\u002F               #   Data ingestion & RAG pipelines\n│   │   └── rag_service\u002F             #   RAG query endpoints\n│   │\n│   ├── workflow_service\u002F            # Workflow engine\n│   │   ├── registry\u002Fnodes\u002F          #   24+ node implementations\n│   │   ├── graph\u002F                   #   GraphSchema → LangGraph builder\n│   │   └── services\u002Fworker.py       #   Prefect worker entrypoint\n│   │\n│   ├── linkedin_integration\u002F        # LinkedIn OAuth & API\n│   └── scraper_service\u002F             # Web scraping endpoints\n│\n├── standalone_test_client\u002F          # Workflow SDK, 27+ workflow definitions\n│   └── kiwi_client\u002F\n│       └── workflows\u002Factive\u002F        #   Production workflow examples\n│\n├── tests\u002F                           # 75+ unit & integration tests\n├── docs\u002F                            # 40+ pages of technical documentation\n├── docker\u002F                          # Dockerfiles & setup scripts\n└── pyproject.toml                   # Poetry dependencies\n```\n\n## Node Types\n\nWorkflows are composed from reusable nodes defined in Python\u002FJSON. Key categories:\n\n| Category | Nodes | Description |\n|----------|-------|-------------|\n| **Core** | `input_node`, `output_node`, `router_node`, `map_list_router_node`, `if_else_condition`, `transform_data` | Flow control, routing, data transforms |\n| **LLM** | `llm`, `prompt_constructor`, `prompt_template_loader` | Multi-provider LLM execution, prompt building |\n| **Data** | `load_customer_data`, `store_customer_data`, `delete_customer_data`, `merge_aggregate` | MongoDB CRUD, data joins |\n| **Scraping** | `linkedin_scraping`, `crawler_scraper`, `ai_answer_engine_scraper` | LinkedIn, web crawling, AI search |\n| **Advanced** | `tool_executor`, `code_runner`, `workflow_runner`, `hitl_node` | Tool use, sandboxed code, sub-workflows, human review |\n\n## Included Workflows\n\nThe [`standalone_test_client\u002F`](standalone_test_client\u002F) ships with **27+ production workflow definitions** — complete with graph schemas, LLM prompts, HITL test inputs, and runner scripts. These serve as both reference implementations and a starting point for building your own.\n\n### Content Studio (11 workflows)\n\nWorkflows for content creation across blog and LinkedIn:\n\n| Workflow | Description |\n|----------|-------------|\n| **Blog Brief to Blog** | Full blog generation from brief with knowledge base enrichment, SEO optimization, and HITL approval |\n| **Blog AEO\u002FSEO Scoring** | Content scoring framework — architecture, depth, discovery optimization, and internal structure |\n| **Blog Content Calendar** | Generate topic suggestions for upcoming weeks based on posting frequency and customer context |\n| **Blog User Input to Brief** | Research pipeline: Google search, Reddit via Perplexity, AI topic suggestions, HITL topic selection |\n| **Blog Content Optimization** | Parallel analysis (structure, SEO, readability, content gaps) with competitive web search |\n| **LinkedIn Content Creation** | Post creation with user profile\u002Fstrategy integration and feedback loops |\n| **LinkedIn Content Calendar** | Topic planning with strategy, drafts, and preference context |\n| **LinkedIn Alternate Text** | Generate alternate text suggestions based on profile and playbook |\n| **LinkedIn User Input to Brief** | Strategic brief generation from executive profiles and content strategy |\n\n### Content Diagnostics (10 workflows)\n\nAI visibility analysis, competitive intelligence, and content audits:\n\n| Workflow | Description |\n|----------|-------------|\n| **Company AI Visibility** | Assess blog coverage and AI visibility in search\u002Fanswer engines |\n| **Executive AI Visibility** | Analyze executive LinkedIn presence for AI search recognition |\n| **Competitor Content Analysis** | Parallel competitor strategy analysis via `map_list_router` |\n| **Blog Content Analysis** | Classify blog posts by sales funnel stage, analyze by group |\n| **LinkedIn Content Analysis** | Theme extraction and classification across LinkedIn posts |\n| **Deep Research** | Comprehensive web research using Perplexity deep research models |\n| **LinkedIn Scraping** | Profile and post data extraction with filtering and storage |\n| **Orchestrator** | Coordinate multiple diagnostics workflows with conditional execution flags |\n| **Company Analysis** | Extract business intelligence, Reddit research, strategic content pillars |\n\n### Sales & Investor (2 workflows)\n\n| Workflow | Description |\n|----------|-------------|\n| **Lead Scoring & Talking Points** | Parallel company qualification, ContentQ scoring, gap analysis, personalized talking points |\n| **Investor Lead Scoring** | 100-point scoring framework across fund vitals, thesis alignment, partner value, with LinkedIn + Perplexity deep research |\n\n### Playbooks (2 workflows)\n\n| Workflow | Description |\n|----------|-------------|\n| **Blog Content Playbook** | Generate implementation strategies from company documents with actionable timelines |\n| **LinkedIn Content Playbook** | Executive-focused content strategy from LinkedIn profile analysis |\n\n### Labs & Utilities (3 workflows)\n\n| Workflow | Description |\n|----------|-------------|\n| **File Summarisation** | Task-specific document synthesis with intelligent noise filtering |\n| **On-Demand Research** | Flexible deep research with configurable save targets |\n| **Auto User Onboarding** | Optional LinkedIn and blog\u002Fcompany onboarding flows with router-based gating |\n\nEach workflow folder includes:\n- `wf_*_json.py` — Graph schema definition (Python\u002FJSON)\n- `wf_llm_inputs.py` — LLM prompts, output schemas, templates\n- `wf_testing\u002F` — HITL inputs, runner script, test artifacts\n\nSee the [workflow onboarding guide](standalone_test_client\u002Fkiwi_client\u002Fworkflows\u002Factive\u002FONBOARDING_WORKFLOW_TESTING.md) to get started.\n\n## Testing\n\n```bash\n# Run all tests\nPYTHONPATH=$(pwd):$(pwd)\u002Fservices poetry run pytest\n\n# Unit tests only\nPYTHONPATH=$(pwd):$(pwd)\u002Fservices poetry run pytest -m unit\n\n# Integration tests only\nPYTHONPATH=$(pwd):$(pwd)\u002Fservices poetry run pytest -m integration\n\n# Specific test file\nPYTHONPATH=$(pwd):$(pwd)\u002Fservices poetry run pytest tests\u002Funit\u002Fservices\u002Fworkflow_service\u002Ftest_example.py -v\n\n# With coverage\nPYTHONPATH=$(pwd):$(pwd)\u002Fservices poetry run pytest --cov=services --cov=libs --cov-report=term-missing\n```\n\nSee [`tests\u002F`](tests\u002F) for the full test suite (75+ test files).\n\n## Documentation\n\n| Topic | Location |\n|-------|----------|\n| **Workflow building guide** | [`docs\u002F...\u002Fworkflow_building_guide.md`](docs\u002Fdesign_docs\u002Fworkflow_service_docs\u002Fworkflow_builder_guides\u002Fworkflow_building_guide.md) |\n| **Node guides (24)** | [`docs\u002F...\u002Fnodes\u002F`](docs\u002Fdesign_docs\u002Fworkflow_service_docs\u002Fworkflow_builder_guides\u002Fnodes\u002F) |\n| **Nodes interplay** | [`docs\u002F...\u002Fnodes_interplay_guide.md`](docs\u002Fdesign_docs\u002Fworkflow_service_docs\u002Fworkflow_builder_guides\u002Fnodes_interplay_guide.md) |\n| **LLM models reference** | [`docs\u002F...\u002Fllm_models_guide.md`](docs\u002Fdesign_docs\u002Fworkflow_service_docs\u002Fworkflow_builder_guides\u002Fnodes\u002Fllm_models_guide.md) |\n| **Production deployment** | [`docs\u002Fprod\u002FREADME_PROD.md`](docs\u002Fprod\u002FREADME_PROD.md) |\n| **Unit testing guide** | [`docs\u002FREADME_unit_testing.md`](docs\u002FREADME_unit_testing.md) |\n| **Database setup** | [`docs\u002FDB_SETUP.md`](docs\u002FDB_SETUP.md) |\n| **Customer data integration** | [`docs\u002Fdesign_docs\u002Fcustomer_data\u002F`](docs\u002Fdesign_docs\u002Fcustomer_data\u002F) |\n| **Workflow SDK & examples** | [`standalone_test_client\u002F`](standalone_test_client\u002F) |\n\n## Database Migrations\n\n```bash\n# Run pending migrations\nPYTHONPATH=$(pwd):$(pwd)\u002Fservices poetry run alembic upgrade head\n\n# Create a new migration\nPYTHONPATH=$(pwd):$(pwd)\u002Fservices poetry run alembic revision --autogenerate -m \"description\"\n```\n\n## LLM Providers\n\n| Provider | Models | Notable Features |\n|----------|--------|-----------------|\n| **OpenAI** | GPT-5, GPT-4.1, o3\u002Fo4-mini, GPT-4o | Web search, code interpreter, deep research |\n| **Anthropic** | Claude Opus 4, Sonnet 4.5\u002F4, Haiku 3.5 | Web search, code interpreter |\n| **Google** | Gemini 2.5 Pro\u002FFlash | Multimodal |\n| **Perplexity** | Sonar Deep Research, Sonar Reasoning Pro | Built-in web search |\n| **Fireworks** | DeepSeek R1 | Fast inference |\n| **AWS Bedrock** | DeepSeek R1 | Managed deployment |\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feat\u002Fyour-feature`)\n3. Make your changes with tests\n4. Run the test suite (`poetry run pytest`)\n5. Submit a pull request\n\n## Acknowledgements\n\nThe KiwiQ AI platform was designed, built from scratch and open-sourced by **[Raunak Bhandari](https:\u002F\u002Fgithub.com\u002Frbcorx)**, CTO and co-founder of [KiwiQ AI](https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fkiwiq-ai\u002F), including the core platform, workflow engine, node system, infrastructure, shared libraries, many of the production workflows, and auxiliary systems such as scraping services and browser pools.\n\n**Gaurav Kumar** and **Anish Bharadwaj** built and tested several of the marketing and deep market research focused workflows, helped with platform testing and productizing for our customers.\n\n## Disclaimer\n\nThis project is provided for educational and research purposes only. Scraping websites may violate their Terms of Service. The authors and contributors are not responsible for any misuse of this software. Users are solely responsible for ensuring their use complies with all applicable laws, regulations, and platform policies. Use at your own risk.\n\n## License\n\nApache 2.0 — see the [LICENSE](LICENSE) file for details.\n","KiwiQ 是一个生产级的多智能体编排平台，支持JSON定义的智能体、多层次内存管理和内置可观测性。项目采用Python开发，提供了24种以上可复用节点类型，支持多种LLM提供商，具备人机交互功能，适用于构建复杂的AI工作流。它特别适合需要处理多步骤AI流程的企业场景，如内容生成、诊断分析、潜在客户评分等，并且已经在超过200个企业AI智能体上经过实战验证。该平台还集成了RAG管道、版本化的客户数据管理等功能，确保了系统的灵活性和高效性。",2,"2026-06-11 03:49:54","high_star"]