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.
[!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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d40ba84c969752c9cc7c4ad9b25fec29d2be36e6a87aa2bdc1d0cee59a6d5cbd
|
|
| MD5 |
655bf0648babfd17d0bbc6abbe11d82e
|
|
| BLAKE2b-256 |
85a7d28678ce412f9bff3365b057389aad8212d0a815462c1f92737316c7878a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49a282f09e551b413a08eeeb0494494188b907fcab4c2aee21396618d03561d1
|
|
| MD5 |
9294a73c56a2c8d7fd8cfb54b5a1d6cf
|
|
| BLAKE2b-256 |
1398c44efe232937fe09ea979f6d995544d9deb6f5058b4c17ac7cdbf6496c27
|