Skip to content

Examples

These examples demonstrate how to create and use agents through YAML configuration files.

Simple Text Agent

Create a simple agent that opens websites in your browser:

agents.yml
# yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/llmling-agent/refs/heads/main/schema/config-schema.json
agents:
  url_opener:
    model: openai:gpt-5-mini
    system_prompts:
      - |
        You help users open websites. Use the open_url tool to open URLs.
        When given a website name, find its URL in the bookmarks resource.
        Always confirm what you're about to open.
    toolsets:
      - type: import_tools
        tools:
          - import_path: webbrowser.open
            name: open_url
            description: "Open URL in default browser"

Use the agent via an ACP client of your choice.

Or programmatically:

from llmling_agent import AgentPool

async with AgentPool("agents.yml") as pool:
    agent = pool.get_agent("url_opener")
    result = await agent.run("Open the Python website")
    print(result.data)

Structured Responses

Define structured outputs for consistent response formats:

agents.yml
# yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/llmling-agent/refs/heads/main/schema/config-schema.json
responses:
  CodeReview:
    response_schema:
      type: inline
      description: "Code review result"
      fields:
        issues:
          type: list[str]
          description: "Found issues"
        score:
          type: int
          description: "Quality score (0-100)"

agents:
  code_reviewer:
    model: openai:gpt-5
    output_type: CodeReview # Use structured response
    system_prompts:
      - "You review Python code and provide structured feedback."

Tool Usage

Create an agent that interacts with the file system:

agents.yml
# yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/llmling-agent/refs/heads/main/schema/config-schema.json
agents:
  file_manager:
    model: openai:gpt-5
    system_prompts:
      - "You help users manage their files and directories."
      - |
        Available tools:
        - list_files: Show directory contents
        - read_file: Read file contents
        - file_info: Get file metadata

        Always confirm before modifying files.
    toolsets:
      - type: import_tools
        tools:
          - import_path: os.listdir
            name: list_files
            description: "List directory contents"
          - import_path: builtins.open
            name: read_file
            description: "Read file contents"
          - import_path: builtins.open
            name: write_file
            description: "Write file contents"
          - import_path: os.remove
            name: delete_file
            description: "Delete a file"
          - import_path: custom_tools.modify_file
            name: modify_file
            description: "Modify file contents"

Use the file manager:

from llmling_agent import Agent

async with AgentPool("agents.yml" as pool:
    agent = pool.get_agent("file_manager")
    # List files
    result = await agent.run("What files are in the current directory?")
    print(result.data)

    # Read a file
    result = await agent.run("Show me the contents of config.py")
    print(result.data)