> ## Documentation Index
> Fetch the complete documentation index at: https://docs.veadk.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Link reading

## Overview

Tool identifier `link_reader`.

`link_reader` takes a list of URLs and reads and parses their web content. Pair it with a search tool so the agent can find links first, then read them in depth. It authenticates with `MODEL_AGENT_API_KEY`.

Import path: `from veadk.tools.builtin_tools.link_reader import link_reader`

## Environment & prerequisites

Environment variables:

* `MODEL_AGENT_API_KEY`: API key for the agent's reasoning model

## Usage

```python title="examples/tools/link_reader/agent.py" lines theme={null}
import asyncio

from veadk import Agent, Runner
from veadk.memory.short_term_memory import ShortTermMemory
from veadk.tools.builtin_tools.link_reader import link_reader

agent = Agent(
    name="link_reader_agent",
    model_name="doubao-seed-2-1-pro-260628",
    description="An agent that reads and summarizes web pages.",
    instruction="Use the link_reader tool to read the given URLs, then summarize them.",
    tools=[link_reader],
)

runner = Runner(agent=agent, short_term_memory=ShortTermMemory())


async def main():
    response = await runner.run(
        "Read https://www.volcengine.com/docs/85508/1650263 and summarize the key points"
    )
    print(response)


if __name__ == "__main__":
    asyncio.run(main())
```

## Inputs, results, and service scope

| Parameter | Type | Default | Description |
| :- | :- | :- | :- |
| `url_list` | `list[str]` | Required | URLs to read; submit at most three per call |

Await the call. Successful results contain page titles and content; an empty list can mean no usable content or a failed read. Credentials must authorize the Volcengine Ark LinkReader service. An arbitrary third-party model API key cannot authorize this service, and `CLOUD_PROVIDER=byteplus` does not switch its endpoint.

```python lines theme={null}
import asyncio
from veadk.tools.builtin_tools.link_reader import link_reader

async def main():
    pages = await link_reader(["https://www.volcengine.com/docs/85508/1650263"])
    if not pages:
        print("No readable pages returned; check access and service configuration")
    for page in pages:
        print(page)

asyncio.run(main())
```
