7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

次世代AI開発の極意:Python × Cursor × MCP で自律型エージェントを構築する究極のロードマップ【2026年版】

Last updated at Posted at 2026-01-26

こんにちは、GIFTechでデータサイエンティストとして働いているAnshika Kankaneです。普段はデータ分析やAI関連のプロジェクトについて執筆していますが、今日は少し違った視点でお話しします。

最近、「AIデモとしての面白さ」と「プロダクトレベルのAIエンジニアリング」の間に大きな溝があると感じています。数千の記事を分析し、自律型ループの実験を繰り返す中で、コンテキスト、接続性、そしてガバナンスをどのようにオーケストレーションすべきか、その決定的な基準が必要だと確信しました。

もし、以前投稿したQiita記事の分析に興味があれば、こちらからチェックしてみてください 👇
【2026年最新】1万件のQiita記事分析で判明した「伸びるブログ」の法則まとめ

それでは、本題に入りましょう。

私にとってこの記事は、プレッシャーのかかる現場でも「動き続ける」エージェントを構築するために見つけ出した最良の手法の結晶です。新しいプロジェクトを始めるたびに立ち返り、単なるプロンプトハックではなく「データ中心アプローチ(DOA)」に基づいた基盤を構築するためのリファレンスガイドとして執筆しました。

真のContext Orchestration(コンテキスト・オーケストレーション)時代の到来

自律型AIの性能差はモデルではなく「設計思想」で決まる。

2026年において、「ジュニア」と「シニア」のAI開発者を分ける境界線は、たった一つのスキルに集約されます。それが Context Orchestration です。本記事では、受動的なプロンプト入力から脱却し、自律的なエコシステムを構築するための実践的な手法を解説します。

本記事の対象読者(および対象外の方)

以下のような方に最適です:

  • すでに開発でLLMを活用しているが、出力の不安定さに悩んでいる
  • ジュニア層のメンタリングや、チーム内でのAI活用プロトコルの標準化を任されている
  • 目先のデモではなく、長期的な保守性を重視している

以下のような方には向いていません:

  • コピペで動くチャットボットだけが欲しい
  • LangChainの基礎的なチュートリアルを探している
  • AIがアーキテクチャ設計の代わりをしてくれると期待している

0. Context Orchestration のメンタルモデル

2026年の開発を理解するために、各レイヤーがどのように相互作用するか、一つの統一されたイメージを整理しましょう:

┌──────────────┐
│   開発者     │  ← メンターシップ & ガバナンス
│(アーキテクト)│    (人間が主導権を握る)
└──────┬───────┘
       ↓
┌──────────────┐
│   Cursor     │  ← オーケストケーション・レイヤー
│(Rules/Skills)│    (「どのように」動くかを定義)
└──────┬───────┘
       ↓
┌──────────────┐
│  エージェント│  ← 思考 & 反省
│  (Python SDK)│    (推論エンジン)
└──────┬───────┘
       ↓
┌──────────────┐
│     MCP      │  ← 接続性 (オンデマンド)
│ (外部データ) │    (AIの「目」と「感覚」)
└──────────────┘

1. ガバナンス:「一歩ずつ」育てるメンターシップ手法

有名な「新人AI禁止令」の事例からも学べる通り、AIへの過度な依存はエンジニアの基礎体力を奪います。エージェントの失敗をモデルの性能やプロンプトの質のせいにしがちですが、多くの場合、真の原因は「ガバナンスの欠如」 です。

ハイレベルな開発者は、コードへの主導権を維持するために「ステップバイステップの検証ループ」を回します。

ガバナンスなき開発で起きること(典型的な失敗パターン)

多くが「モデルの不安定さ」と勘違いしている問題の正体は、実は Context Debt(コンテキストの負債) です。

  • 既存の抽象化をAIが上書きしてしまう(認識できていないため)
  • 制約がないため、トークン消費が爆発する
  • 思考プロセスが各レイヤーに混在し、デバッグが不可能になる

解決策:4フェーズの実装サイクル

  1. インターフェース・レビュー:ロジックを書かせる前に、クラス名や関数定義(シグネチャ)だけを提案させ、設計をレビューする。
  2. 擬似コードによるロジック策定:実装を始める前に、処理手順をコメントで詳細に書かせる。
  3. モジュール型コーディング:ビジネスロジックの実装に集中する。この段階でCSSや見た目の調整は一切無視する。
  4. 独立した検証(クリティーク):実装したモデルとは別のAIコンテキストを用意し、ロジックの穴を指摘させる。

2. アーキテクチャ深掘り:POA vs DOA

なぜ「データ中心アプローチ(DOA)」がAIの精度を3倍高めるのか? これこそが設計レベルでの Context Orchestration です。

コンセプト POA (プログラム中心) DOA (データ中心)
フォーカス 「どんな機能が必要か?」 「コアとなるデータモデルは何か?」
AIへの影響 スパゲッティAI(意図しない副作用)を招く AIのロジックを安定させる「錨」となる
メンテナンス 脆い。機能変更でエージェントが壊れる 堅牢。スキーマが真実の単一ソース(SSOT)

3. 環境構築:「最強」の Cursor 設定

Cursorはエージェントが活動する「スタジオ」です。巨大な CLAUDE.md を1枚置くのは、もはやアンチパターンです。

決定版 .cursorrules(制約ベースのオーケストレーション)

.cursorrules
- 常に Python 3.13+ の構文を使用すること。
- データ中心アプローチ (DOA) を採用:ロジックの前にデータ構造を定義すること。
- 真実の単一ソース (SSOT):特定の変数は、唯一つの変更パスを持つように設計すること。
- 複雑な修正を提案する前に、`Grep` ツールを使用して既存のパターンを分析すること。

4. 接続性:MCP と Agent Skills の使い分け

これはAIエージェントにおける「脳(知恵)」と「手(道具)」の区別です。

A. MCP (目・感覚):外部との接続

MCPはAIを現実世界に繋ぎます。トークンを浪費する「Context Rot」を防ぐために、ENABLE_TOOL_SEARCH を有効にしましょう。

terminal
ENABLE_TOOL_SEARCH=true cursor

B. Agent Skills (筋肉の記憶):手続き的知識

Skillsはリポジトリ内に蓄積される「手順書」です。チーム固有のノウハウ(どのように作業を進めるか)をAIに教育します。

例:.claude/skills/security-audit/SKILL.md

注:ここでのアーキテクチャ原則はモデルに依存しません。モデルが進化しても、変わるのは実行レイヤーだけです。


4.1. 実践:次世代AI開発に推奨されるMCPサーバ (2026)

能力レイヤー MCP サーバ 自律型エージェントにおける重要性
検索 (Deep / Live Search) Tavily Search MCP AI向けに最適化。ノイズが少なく引用可能な検索結果を返し、調査や企画フェーズに最適。
Brave Search MCP プライバシー重視のリアルタイム検索。SEOに偏らない中立的な結果が欲しい場合に有用。
ブラウザ操作 (Hands) Playwright MCP 2026年時点でPuppeteerより推奨。確定的かつ堅牢なセレクタ操作で、複雑なWeb操作を自律化。
Puppeteer MCP Chrome中心のワークフローや、スクレイピング主体のタスクでは依然として有用。
リポジトリ知能 GitHub Official MCP PR、Issue、コミット、diffへの直接アクセス。コードレビューや大規模リファクタリングに必須。
ナレッジ・文書 Notion MCP 人間のドキュメントとAIの推論を橋渡し。デザインドキュメントやADR(アーキテクチャ意思決定記録)の参照に。
Confluence MCP エンタープライズ開発で一般的。組織内の既存ナレッジをエージェントに読み込ませる。
構造化データ (DOA) Postgres MCP スキーマ分析、クエリ検証、マイグレーション確認。データ中心アプローチ(DOA)の要。
SQLite MCP 本番DBを触る前の、ローカルでのロジック検証用。
タスク・通信 Slack MCP 状況報告、人間への確認依頼、エラーのエスカレーションを自律的に行う。
Google Calendar MCP 時間を意識したエージェント(締め切り管理やリマインド)を実現。
デザイン連携 Figma MCP スクリーンショットではなく実際のデザインコンポーネントを参照。フロントエンド開発の精度が向上。
DevOps / Runtime Docker MCP Dockerfileやイメージ、実行設定を安全に検査。
Kubernetes MCP デプロイの診断を行うインフラ担当エージェントの構築に。
内部システム Custom MCP (HTTP / STDIO) 最も重要。独自のAPI、ログ、メトリクス、CIパイプラインをエージェントに公開。

このテーブルの使いこなし方

これら全てが必要なわけではありません。プロダクション品質のエージェントは、以下のコンパクトなセットで最も能力を発揮します:

  • 検索系: 1つ
  • アクション系: 1〜2つ
  • ナレッジ系: 1つ
  • データ系: 1つ

ツールが多すぎると、推論精度が低下します。

不要なツールによるコンテキストの肥大化は、AIが思考を散漫にし、誤ったツールを選択するリスクを高めます。まさに「Less is More」です。

推奨される最小構成 (High Signal)

2026年にこれから始めるチームにとって、最もノイズが少なく効果的な構成:

  • 検索:Tavily
  • コード:GitHub MCP
  • データ:Postgres MCP
  • ナレッジ:Notion MCP
  • 自動化:Playwright MCP

これ以外のツールは、特定のエージェントで具体的な「能力不足」が判明したときに追加するのがベストプラクティスです。

なぜこのMCPリストが「一生モノ」なのか

  • 能力ベースの選定: 特定のベンダーではなく「何ができるか」に焦点を当てている。
  • エージェント・ループに直結: 思考、調査、実行の各フェーズを補完。
  • Context Orchestrationをサポート: プロンプトを詰め込むのではなく、必要な時だけ呼び出す思想(ENABLE_TOOL_SEARCH)。

5. 実装:エージェント・ループの構築 (Python)

プロダクションレベルのエージェントには、単なるプロンプト以上の「Observability Loop(観測ループ)」 が必要です。以下は claude-agent-sdk を使用した、セッションの継続性と思考の透明性を確保するテンプレートです。

agent_core.py
import asyncio
import os
from claude_agent_sdk import query, ClaudeAgentOptions
from claude_agent_sdk.types import AssistantMessage, ThinkingBlock, TextBlock

async def feature_agent_loop(goal: str, session_id: str = None):
    """
    プロダクション品質の自律型実装ループ。
    セッションの継続性と思考の透明性をサポート。
    """
    print(f"🚀 Goal: {goal}")
    
    # 2026年の標準設定
    options = ClaudeAgentOptions(
        model="claude-3-5-sonnet", # または Bedrock/Vertex のエンドポイント
        permission_mode="default", # 完全に自律させる場合は 'auto'
        resume_session_id=session_id
    )

    try:
        async for message in query(prompt=goal, options=options):
            # 1. 思考プロセス(Thinking)をキャプチャして記録
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, ThinkingBlock):
                        print(f"🧠 Thinking: {block.thinking[:100]}...")
                    if isinstance(block, TextBlock):
                        print(f"📝 Response: {block.text}")
            
            # 2. 結果とセッション状態を追跡
            if message.subtype == 'success':
                print(f"✅ Task Complete. Session ID: {message.session_id}")
                return message.result
                
    except Exception as e:
        print(f"❌ Agent Loop Failed: {str(e)}")

if __name__ == "__main__":
    asyncio.run(feature_agent_loop("UserモデルをDOA原則に基づいてリファクタリングして"))

実装のプロ・チップス

  1. セッションの継続性は信頼の証:常に session_id をキャプチャしましょう。これをRedisやDBに保存することで、3日後でも前回の設計判断を引き継いで再開できます。
  2. 思考(Thinking)のフィルター:生の思考ログは巨大です。本番環境では全てのログを保存しつつ、ユーザーには要約されたステータスだけを表示するのがベストです。
  3. ガバナンスとしてのタイムアウト:ツール呼び出しが失敗すると、AIは無限ループに陥ることがあります。必ずタイムアウト処理や最大ターン数の制限を設けましょう。
  4. 潔いエスカレーション:曖昧なタスクに直面したとき、エージェントは AskUserQuestion を使うべきです。推測させるのではなく、「わかりません」と言わせることがシニア・エージェントの条件です。
  5. 環境の一貫性:Cursorで動いたコードが本番(Docker)で動かない原因の1位は環境変数です。PATHの一貫性を徹底しましょう。

6. 次のプロジェクトの前に保存すべきチェックリスト

自律型エージェントを構築・リファクタリングする際は、まずこのチェックリストを確認してください。

2026年版「ストック推奨」エージェント・チェックリスト:

  • ルールのモジュール化**:巨大な CLAUDE.md.claude/rules/ に分割したか?
  • 手順の資産化:チームのベストプラクティスを .claude/skills 内の md ファイルに変換したか?
  • 型の徹底:型ヒントを駆使して、AIのハルシネーション(もっともらしい嘘)を40%削減したか?
  • MCPの最適化:MCPSearch を通じて、必要なツールだけをオンデマンドでロードしているか?
  • データ構造ファースト:ロジックの前に「錨(DOA)」を設計したか?

アーキテクチャの意思決定は、モデルの寿命よりも長く生き続ける。

Governance is the new Performance.
究極の目標は Context Orchestration です。AIに「接続性(MCP)」と「知恵(Skills)」を与えつつ、人間が「統制(メンターシップ手法)」を維持することで、単に動くだけでなく「進化し続けるシステム」を構築できます。


*こちらの記事は、英語から日本語へ翻訳をしています。

English Original Text

Hello, I am Anshika Kankane, a data scientist working in GIFTech. I usually write about data analytics or AI related projects we have done by far but today, I am writing this article because I’ve noticed a growing gap between "cool AI demos" and "production grade AI engineering." Having analyzed thousands of technical articles and experimented with autonomous loops, I realized that we need a definitive standard for how to orchestrate context, connectivity, and governance.

If you want to check out my previous analysis on Qiita articles, please check out here :point_down:
[2026 Latest] Summary of "Blog Trends" Rules Revealed by Analyzing 10,000 Qiita Articles

Now let's continue our today's topic.

For me, this article is a crystallization of the best methods I've discovered for building agents that don't just "work," but keep working under pressure. It's a reference guide I intend to return to every time I start a new project to ensure I'm building on a foundation of "Data-Oriented Architecture" rather than just prompt-hacking.

The Era of Context Orchestration

自律型AIの性能差はモデルではなく「設計思想」で決まる。

By 2026, the gap between "Junior" and "Senior" AI developers is defined by one skill: Context Orchestration. This guide shows you how to move from passive prompting to building an autonomous ecosystem.

Who This Guide Is For (and Not For)

This article is for you if:

  • You already use LLMs in development but feel outputs are unstable.
  • You are mentoring juniors or standardizing AI usage in a team.
  • You care about long term maintainability, not just one-off demos.

This article is NOT for you if:

  • You want a copy-paste chatbot.
  • You are looking for basic LangChain tutorials.
  • You expect AI to replace architectural thinking.

0. The Mental Model of Context Orchestration

To understand how to build for 2026, we need a single unifying image of how the layers interact:

┌──────────────┐
│   Developer  │  ← Mentorship & Governance
│(The Architect)│
└──────┬───────┘
       ↓
┌──────────────┐
│   Cursor     │  ← Orchestration Layer
│(Rules/Skills)│    (Defining the "How")
└──────┬───────┘
       ↓
┌──────────────┐
│  Agent Core  │  ← Planning / Reflection
│ (Python SDK) │    (The Reasoning Engine)
└──────┬───────┘
       ↓
┌──────────────┐
│     MCP      │  ← Connectivity (On-Demand)
│ (External DB)│    (The "Eyes" and "Senses")
└──────────────┘

1. Governance: The "Step-by-Step" Mentorship Method

Drawing from the famous "新人AI禁止令" (Newcomer AI Prohibition) case, we've learned that AI dependency kills fundamental skills. Many teams attribute agent failures to:

  • model instability
  • prompt quality
  • tool limitations
    In practice, the root cause is almost always missing governance.
    High-engagement developers follow a Step-by-Step Verification Loop to maintain authority over the code.

What Breaks Without Governance (A Real Failure Pattern)

Most teams mistake "model instability" for what is actually Context Debt. Without modular rules and skills:

  • AI overwrites existing abstractions because it doesn't see them.
  • Tool usage explodes token budgets due to lack of constraints.
  • Debugging becomes impossible because the reasoning is mixed across layers.

The Solution? 4-Phase Implementation Cycle:

  1. Interface Review: Before any logic, let the AI suggest only signatures.
  2. Pseudo-code Logic: Detail implementation steps before coding.
  3. Modular Coding: Implement business logic, ignoring frontend polish.
  4. Independent Critique: Use a separate AI context to find logic holes.

2. Architectural Deep Dive: POA vs DOA

Why does the "Data-Oriented Approach" result in 3x higher AI precision? This is what Context Orchestration looks like at the design level.

Concept POA (Program Oriented) DOA (Data Oriented)
Focus "What functions do I need?" "What is the core Data Model?"
AI Impact Leads to "Spaghetti AI" (hallucinated side effects). Provides a stable "Anchor" for the AI's logic.
Maintenance Brittle; changing a function breaks the Agent. Resilient; Schema is the Single Source of Truth (SSOT).

3. Environment Setup: The "最強" (Strongest) Cursor Config

Cursor is the "Studio" where your Agent lives. Using a monolithic CLAUDE.md is now an anti-pattern.

The Master .cursorrules (Constraint-Based Orchestration)

.cursorrules
- Always use Python 3.13+ syntax.
- Adopt the **Data-Oriented Approach (DOA)**.
- **Single Source of Truth (SSOT)**: Specific variables must have only one path of modification.
- Before suggesting complex changes, use the `Grep` tool to analyze existing patterns.

4. Connectivity: Mastering MCP & Agent Skills

This is the "Brain vs. Hands" distinction.

A. MCP (The Eyes/Senses): External Connectivity

MCP connects your AI to the real world. Enable ENABLE_TOOL_SEARCH to prevent token-heavy "Context Rot."

terminal
ENABLE_TOOL_SEARCH=true cursor

B. Agent Skills (The Muscle Memory): Procedural Knowledge

Skills are "Explainers" stored in your repository. They teach the AI how your team works.

Example: .claude/skills/security-audit/SKILL.md

Note: All architectural principles here are model-agnostic. Only the execution layer changes as models evolve.

4.1. Practical Connectivity: Recommended MCP Servers for Next-Gen AI (2026)

Capability Layer MCP Server Why It Matters for Autonomous Agents
Deep / Live Search Tavily Search MCP Optimized for AI agents; returns clean, citation-ready search results with minimal noise. Ideal for research agents and planning phases.
Brave Search MCP Privacy-friendly real-time web search. Useful when you want unbiased, non-SEO-heavy results.
Web Automation (Hands) Playwright MCP Preferred over Puppeteer in 2026. Deterministic browser automation, resilient selectors, and better async control for agents.
Puppeteer MCP Still useful for legacy Chrome-centric workflows and scraping-heavy tasks.
Repository Intelligence GitHub Official MCP Direct access to PRs, Issues, commits, diffs, and repo metadata. Essential for code review agents and refactoring agents.
Knowledge & Docs Notion MCP Bridges human documentation and agent reasoning. Ideal for design docs, ADRs, and internal playbooks.
Confluence MCP Common in enterprise teams. Enables agents to reason over institutional knowledge.
Structured Data / DOA Anchor Postgres MCP Enables schema inspection, query validation, and migration checks. Critical for Data-Oriented Architecture (DOA).
SQLite MCP Lightweight local validation for agent logic before touching production DBs.
Task & Communication Slack MCP Lets agents report status, ask for human confirmation, and escalate failures instead of silently looping.
Google Calendar MCP Enables time-aware agents (scheduling, deadlines, reminders).
Design → Code Bridge Figma MCP Allows agents to reference real design components instead of screenshots. Useful for frontend and product agents.
DevOps / Runtime Docker MCP Lets agents inspect Dockerfiles, images, and runtime configs safely.
Kubernetes MCP For infra-aware agents that diagnose deployments, not just code.
Internal Systems Custom MCP (HTTP / STDIO) The most important MCP: exposes internal APIs, logs, metrics, and CI pipelines as agent accessible tools.

How to Use This Table

You do not need all of these.
A production grade agent usually performs best with a compact toolset:

  • 1 Search MCP
  • 1–2 Action MCPs
  • 1 Knowledge MCP
  • 1 Data MCP

Too many tools = degraded reasoning.

Overloading an agent with unnecessary tools causes context bloat and increases the risk of the agent choosing the wrong tool for the task.

Recommended Minimal Stack (High Signal)

For most teams starting in 2026, this stack provides the highest signal-to-noise ratio:

  • Search: Tavily
  • Code: GitHub MCP
  • Data: Postgres MCP
  • Knowledge: Notion MCP
  • Automation: Playwright MCP

Everything else should be added only when a concrete failure pattern appears in your agent's performance.

Why This MCP List Is Future-Proof

  • Capability based, not vendor based: Focuses on the "What" rather than just the service.
  • Maps directly to Agent Loop phases: Each layer supports a specific part of the reasoning cycle.
  • Supports Context Orchestration: Encourages precision over prompt stuffing.
  • Encourages on demand tool loading: Perfectly aligned with ENABLE_TOOL_SEARCH.

5. Factual Implementation: Building the Agent Loop (Python)

To build a production grade autonomous agent, you need more than just a single prompt. You need an Observability Loop. Below is a robust template using the claude-agent-sdk that handles streaming, thinking process logging, and session continuity.

The "Definitive" Agent Core Template

agent_core.py
import asyncio
import os
from claude_agent_sdk import query, ClaudeAgentOptions
from claude_agent_sdk.types import AssistantMessage, ThinkingBlock, TextBlock

async def feature_agent_loop(goal: str, session_id: str = None):
    """
    Production-grade Autonomous Implementation Loop.
    Supports session continuity and reasoning transparency.
    """
    print(f"🚀 Goal: {goal}")
    
    # Configure options for 2026 standards
    options = ClaudeAgentOptions(
        model="claude-3-5-sonnet", # Or your Bedrock/Vertex endpoint
        permission_mode="default", # Or 'auto' for fully autonomous
        resume_session_id=session_id
    )

    try:
        async for message in query(prompt=goal, options=options):
            # 1. Capture and log the "Thinking" process
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, ThinkingBlock):
                        print(f"🧠 Thinking: {block.thinking[:100]}...")
                    if isinstance(block, TextBlock):
                        print(f"📝 Response: {block.text}")
            
            # 2. Track results and session state
            if message.subtype == 'success':
                print(f"✅ Task Complete. Session ID: {message.session_id}")
                return message.result
                
    except Exception as e:
        print(f"❌ Agent Loop Failed: {str(e)}")
        # Implement your retry or human-escalation logic here

if __name__ == "__main__":
    asyncio.run(feature_agent_loop("Refactor the User model to use DOA principles"))

Pro-Tips for Agent Implementation

  1. Session Continuity is Search Authority: Always capture the session_id. Storing this in Redis or a DB allows you to "resume" a conversation 3 days later with full context of the previous architectural decisions.
  2. The "Thinking" Filter: Raw ThinkingBlock data can be massive. In production, log the full block to an observability tool (like LangSmith or Arize) but only show a truncated "Status" to the end user.
  3. Timeout Governance: Autonomous agents can loop indefinitely if a tool fails. Always wrap your query in a wait_for or implement a max_turns counter in your skill logic.
  4. Graceful Escalation: When a task is ambiguous, the Agent should use AskUserQuestion. Do not force the agent to guess; "I don't know" is a high-authority response.
  5. Environment Parity: Ensure your Agent has the same PATH and environment variables in production (Docker) as it does in your local Cursor setup. Discrepancies here are the #1 cause of "But it worked on my machine" AI failures.

6. Save This Checklist Before Your Next Agent Project

If you plan to build or refactor an autonomous agent in the future, read this checklist first.

2026 “Stock” Checklist for Autonomous Agents:

  • Modularize your Rules: Move from one giant CLAUDE.md to .claude/rules/.
  • Proceduralize Success: Convert "Best Practices" into Markdown Skills in .claude/skills.
  • Type Everything: Use type hints to reduce AI hallucination by 40%.
  • On-Demand MCP: Save tokens by only loading tools via MCPSearch.
  • Data Model First: Build the "Anchor" (DOA) before the "Logic."
    Architecture decisions outlive models.

Governance is the new Performance.
Context Orchestration is the ultimate goal. When you provide the AI with Connectivity(MCP) and Wisdom (Skills), but maintain Control (Mentorship Method), you build systems that don't just work instead they keep working.

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?