Skip to main content

AI agent toolkit for Rossum: document workflows conversationally, debug pipelines automatically, and enable agentic configuration of intelligent document processing.

Project description

Rossum Agent

AI agent for Rossum document processing. Debug hooks, deploy configs, and automate workflows conversationally — powered by Claude on AWS Bedrock.

Documentation Python License: MIT PyPI - rossum-agent Coverage

Rossum API MCP Claude Opus 4.6 Ruff ty uv

[!NOTE] This is not an official Rossum project. It is a community-developed integration built on top of the Rossum API, not a product (yet).

The agent wraps rossum-mcp with internal tools, a skills system, prompt caching, and change tracking. Interfaces: REST API, Python SDK.

Architecture

rossum-agent-api / Python SDK
  → create_agent(mcp_connection)
       → System Prompt + Skills System
       → Internal Tools
            write_file, search_knowledge_base, search_elis_docs,
            run_jq, run_grep, execute_python,
            patch_schema_with_subagent, generate_mock_pdf,
            load_skill, create_task, update_task, list_tasks,
            ask_user_question
       → Rossum MCP Server (30 tools)
            → Rossum API

The agent is a Claude Opus 4.6 loop on AWS Bedrock. Each turn loads the system prompt, auto-selects relevant MCP tool categories based on message keywords, and streams back reasoning + content + tool calls via the AI SDK UI Message Stream v1 wire protocol.

Quick Start

# Set environment variables
export ROSSUM_API_TOKEN="your-api-token"
export ROSSUM_API_BASE_URL="https://api.elis.rossum.ai/v1"
export AWS_PROFILE="default"  # For Bedrock

# Install and run
uv pip install rossum-agent[api]
rossum-agent-api

Or run from source:

git clone https://github.com/stancld/rossum-agents.git
cd rossum-agents/rossum-agent

uv sync --extra all        # All extras (api, docs, tests)
rossum-agent-api --reload

Environment Variables

Variable Required Description
ROSSUM_API_TOKEN Yes Rossum API authentication token
ROSSUM_API_BASE_URL Yes Base URL (e.g., https://api.elis.rossum.ai/v1)
AWS_PROFILE Yes AWS profile for Bedrock access
AWS_REGION No AWS region for Bedrock (default: us-east-1)
AWS_BEDROCK_MODEL_ARN No Custom ARN for the Opus model
AWS_BEDROCK_MODEL_ARN_SMALL No Custom ARN for the Haiku model
ROSSUM_MCP_MODE No MCP mode: read-write (default) or read-only
ROSSUM_AGENT_PERSONA No Agent persona: default or cautious
ADDITIONAL_ALLOWED_ROSSUM_HOSTS No Comma-separated regex patterns for additional allowed API hosts
Optional infrastructure variables
Variable Default Description
POSTGRES_HOST localhost PostgreSQL host for chat storage
POSTGRES_PORT 5432 PostgreSQL port
POSTGRES_DB rossum_agent PostgreSQL database name
POSTGRES_USER rossum PostgreSQL user
POSTGRES_PASSWORD rossum PostgreSQL password
VALKEY_HOST localhost Valkey host for change tracking
VALKEY_PORT 6379 Valkey port
VALKEY_PASSWORD Valkey authentication password
SLACK_BOT_TOKEN Slack bot token for report integration
SLACK_CHANNEL Slack channel for posting reports

Usage

REST API

# Development (uvicorn)
rossum-agent-api --host 0.0.0.0 --port 8000 --reload

# Production (gunicorn)
rossum-agent-api --server gunicorn --host 0.0.0.0 --port 8000 --workers 4
Option Description
--server Backend: uvicorn (default) or gunicorn
--host Host to bind to (default: 127.0.0.1)
--port Port to listen on (default: 8000)
--workers Number of worker processes (default: 1)
--reload Enable auto-reload (uvicorn only)

API docs available at /api/docs (Swagger) and /api/redoc.

Python SDK

import asyncio
from rossum_agent.agent import create_agent
from rossum_agent.rossum_mcp_integration.connection import connect_mcp_server

async def main():
    mcp_connection = await create_mcp_connection()
    agent = await create_agent(mcp_connection=mcp_connection)

    async for step in agent.run("List all queues"):
        if step.final_answer:
            print(step.final_answer)

asyncio.run(main())

Available Tools

The agent provides internal tools and access to 30 MCP tools via dynamic loading.

Internal tools
Category Tools
File & Memory write_file · search_knowledge_base · search_elis_docs
Data run_jq · run_grep
Execution execute_python
Schema patch_schema_with_subagent
Skills load_skill
Document Testing generate_mock_pdf
Task Tracking create_task · update_task · list_tasks
User Interaction ask_user_question
Dynamic MCP tool loading

Tools are loaded on-demand to reduce context usage. Categories are auto-loaded based on keywords in the user's message:

Category Description
annotations Upload, retrieve, update, confirm documents
queues Create, configure, list queues
schemas Define, modify field structures
engines Extraction and splitting engines
hooks Extensions and webhooks
email_templates Automated email responses
document_relations Export/einvoice links
relations Annotation relations
rules Schema validation rules
users User and role management
workspaces Workspace management

REST API Endpoints

Endpoint Description
GET /api/v1/health Health check
POST /api/v1/chats Create new chat
GET /api/v1/chats List all chats
GET /api/v1/chats/{id} Get chat details
DELETE /api/v1/chats/{id} Delete chat
POST /api/v1/chats/{id}/messages Send message (streaming)
PUT /api/v1/chats/{id}/feedback Submit feedback for a turn
GET /api/v1/chats/{id}/feedback Get all feedback for a chat
DELETE /api/v1/chats/{id}/feedback/{turn} Remove feedback
GET /api/v1/chats/{id}/files List files
GET /api/v1/chats/{id}/files/{name} Download file
GET /api/v1/commands List available slash commands

Streaming uses AI SDK UI Message Stream v1 (x-vercel-ai-ui-message-stream: v1). MCP mode and persona can be set at chat creation or overridden per message.

License

MIT License - see LICENSE for details.

Resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rossum_agent-2.1.0.tar.gz (688.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rossum_agent-2.1.0-py3-none-any.whl (720.3 kB view details)

Uploaded Python 3

File details

Details for the file rossum_agent-2.1.0.tar.gz.

File metadata

  • Download URL: rossum_agent-2.1.0.tar.gz
  • Upload date:
  • Size: 688.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rossum_agent-2.1.0.tar.gz
Algorithm Hash digest
SHA256 d40ba84c969752c9cc7c4ad9b25fec29d2be36e6a87aa2bdc1d0cee59a6d5cbd
MD5 655bf0648babfd17d0bbc6abbe11d82e
BLAKE2b-256 85a7d28678ce412f9bff3365b057389aad8212d0a815462c1f92737316c7878a

See more details on using hashes here.

File details

Details for the file rossum_agent-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: rossum_agent-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 720.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rossum_agent-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 49a282f09e551b413a08eeeb0494494188b907fcab4c2aee21396618d03561d1
MD5 9294a73c56a2c8d7fd8cfb54b5a1d6cf
BLAKE2b-256 1398c44efe232937fe09ea979f6d995544d9deb6f5058b4c17ac7cdbf6496c27

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page