# Using the Claude Agent SDK for Non-Coding Workflows

I’ve been exploring the [**Claude Agent SDK**](https://docs.claude.com/en/api/agent-sdk/overview), and I had this idea — why not use it for *non-coding workflows* instead of relying on other agent frameworks like **CrewAI** or **LangChain**?

To validate the idea, I built a simple example: a **news researcher agent** that finds the latest AI news and translates it into Korean.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1761825468875/cb2f638a-b742-429b-aa28-47ee752af6c0.png align="center")

## **The Setup**

Here’s the core script:

```python
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition
from claude_agent_sdk.types import McpHttpServerConfig
import os

async def main():
    firecrawl_api_key = os.environ['FIRECRAWL_API_KEY']
    firecrawl_mcp = McpHttpServerConfig(
        type="http",
        url="https://mcp.firecrawl.dev/v2/mcp",
        headers={"Authorization": f"Bearer {firecrawl_api_key}"}
    )

    translator_agent = AgentDefinition(
        description="Translate the content from any language to any other language.",
        prompt="You are an expert language translator.",
        tools=["Read", "Edit", "Bash", "Grep"],
        model="sonnet"
    )

    options = ClaudeAgentOptions(
        model="glm-4.6",
        system_prompt="You are an expert news researcher.",
        permission_mode='bypassPermissions',
        cwd="/Users/melvin/PycharmProjects/ClaudeCodeSDK/output",
        mcp_servers={"firecrawl_mcp": firecrawl_mcp},
        agents={"translator-agent": translator_agent}
    )

    async for message in query(
        prompt=(
            "What are the latest news topics in AI? "
            "Write the results to a markdown file with URLs as references. "
            "Then use the translator-agent to translate the content to Korean "
            "and save it to a separate markdown file."
        ),
        options=options
    ):
        print(message)

asyncio.run(main())
```

## **Concept 1: Using MCPs for Data Retrieval**

I used the [Firecrawl MCP](https://docs.firecrawl.dev/mcp-server) to fetch the latest AI news.

The agent gathered data, summarized it, and wrote the results into a Markdown file — all autonomously.

This shows how an MCP can act like an API plugin layer, enabling agents to perform real-world data collection beyond simple prompts.

---

## **Concept 2: Sub-Agents for Specialized Tasks**

After gathering the news, I wanted a translated version.

Instead of hardcoding translation logic, I created a **sub-agent** — the translator-agent — specifically for that purpose.

The main agent then delegated the translation task to the sub-agent.

[The output](https://firecrawl.dev):

* ai\_news\_en.md – English summary
    
* ai\_news\_ko.md – Korean translation
    

---

## **Why This Matters**

The **Claude Agent SDK** already supports:

* **Tools** (Read, Edit, Bash, etc.)
    
* **MCPs** (external capability servers)
    
* **Skills**
    
* **Sub-agents**
    

These are the same components other AI agent frameworks build from scratch — but here, it’s all native to Claude’s ecosystem.

With what **Claude AI** has built, developers and researchers can rapidly compose workflows that go beyond chat — from document generation to automated pipelines.

I used the **GLM 4.6** model in this example, but of course, it works [perfectly with](https://firecrawl.dev) Claude models like **Haiku** and **Sonnet**.

## **A Great Alternative to AI Agent Frameworks**

Frameworks like CrewAI and LangChain are excellent for building complex agent systems — but sometimes, simplicity wins.

The **Claude Agent SDK** gives you the same building blocks — tools, sub-agents, and external connectors — in a lightweight package that integrates naturally with Claude’s ecosystem.
