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.
[!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).
Features
| Capability | Description |
|---|---|
| Rossum MCP Integration | Full access to 70 MCP tools for document processing |
| Hook Debugging | Test hooks via native Rossum API endpoints |
| Deployment Tools | Pull, push, diff, copy configs across environments |
| Knowledge Base Search | AI-powered Rossum documentation search |
| Multi-Environment | Spawn connections to different Rossum environments |
| Skills System | Load domain-specific workflows on demand |
| Prompt Caching | Automatic cache_control on system prompt, tools, and conversation history for up to 90% input token cost reduction |
| Change Tracking | Git-like config commit history with diffs, logs, and revert |
Interfaces: REST API, Python SDK
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
# Run the agent API
uv pip install rossum-agent[api]
rossum-agent-api
Installation
git clone https://github.com/stancld/rossum-agents.git
cd rossum-agents/rossum-agent
uv sync
With extras:
uv sync --extra all # All extras (api, docs, tests)
uv sync --extra api # REST API (FastAPI, Redis)
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_DEFAULT_REGION |
No | AWS region (default: us-east-1) |
REDIS_HOST |
No | Redis host for chat persistence |
REDIS_PORT |
No | Redis port (default: 6379) |
ROSSUM_MCP_MODE |
No | MCP mode: read-only (default) or read-write |
ROSSUM_AGENT_PERSONA |
No | Agent persona: default (default) or cautious — read by the TUI client, not the server |
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 | Server | Description |
|---|---|---|
--server |
both | Backend: uvicorn (default) or gunicorn |
--host |
both | Host to bind to (default: 127.0.0.1) |
--port |
both | Port to listen on (default: 8000) |
--workers |
both | Number of worker processes (default: 1) |
--reload |
uvicorn | Enable auto-reload for development |
Python SDK
import asyncio
from rossum_agent.agent import create_agent
from rossum_agent.rossum_mcp_integration import create_mcp_connection
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 70 MCP tools via dynamic loading.
Internal Tools
File & Knowledge:
write_file- Save reports, documentation, analysis resultssearch_knowledge_base- Search Rossum docs with AI analysis (sub-agent)kb_grep- Regex search across Knowledge Base article titles and contentkb_get_article- Retrieve full Knowledge Base article by slug
API Reference:
elis_openapi_jq- Query Rossum API OpenAPI spec with jqelis_openapi_grep- Free-text search in API specsearch_elis_docs- AI-powered search of API documentation
Formula:
suggest_formula_field- Suggest formula field expressions via Rossum Local Copilot
Lookup Fields:
suggest_lookup_field- Suggest lookup field matching configuration for MDH datasetsevaluate_lookup_field- Evaluate lookup field results on a real annotationget_lookup_dataset_raw_values- Fetch raw MDH dataset rows for unmatched/ambiguous case verification
Schema:
create_schema_with_subagent- Create new schemas via Opus sub-agentpatch_schema_with_subagent- Safe schema modifications via Opus
Deployment:
deploy_pull- Pull configs from organizationdeploy_diff- Compare local vs remotedeploy_push- Push local changesdeploy_copy_org- Copy entire organizationdeploy_copy_workspace- Copy single workspacedeploy_compare_workspaces- Compare two workspacesdeploy_to_org- Deploy to target organization
Multi-Environment:
spawn_mcp_connection- Connect to different Rossum environmentcall_on_connection- Call tools on spawned connectionclose_connection- Close spawned connection
Skills:
load_skill- Load domain-specific workflows (rossum-deployment,schema-patching,schema-pruning,organization-setup,schema-creation,ui-settings,hooks,txscript,rules-and-actions,formula-fields,reasoning-fields,lookup-fields,document-testing)
Document Testing:
generate_mock_pdf- Generate schema-aware mock PDFs with realistic field values for end-to-end extraction testing
Task Tracking:
create_task- Create a task to track progress on multi-step operationsupdate_task- Update a task's status (pending,in_progress,completed) or subjectlist_tasks- List all tracked tasks with current status
Dynamic MCP Tool Loading
Tools are loaded on-demand to reduce context usage. Use load_tool_category to load tools by category:
| 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 |
Categories are auto-loaded based on keywords in the user's message.
Architecture
flowchart TB
subgraph UI["User Interface"]
A[REST API]
end
subgraph Agent["Rossum Agent (Claude Bedrock)"]
IT[Internal Tools]
DT[Deploy Tools]
MT[Spawn MCP Tools]
SK[Skills System]
end
subgraph MCP["Rossum MCP Server"]
Tools[70 MCP Tools]
end
API[Rossum API]
UI --> Agent
Agent --> MCP
MCP --> API
REST API Endpoints
| Endpoint | Description |
|---|---|
GET /api/v1/health |
Health check |
GET /api/v1/chats |
List all chats |
POST /api/v1/chats |
Create new chat |
GET /api/v1/chats/{id} |
Get chat details |
DELETE /api/v1/chats/{id} |
Delete chat |
POST /api/v1/chats/{id}/messages |
Send message (SSE) |
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 |
API docs: /api/docs (Swagger) or /api/redoc
Slash Commands: Messages starting with / are intercepted before reaching the agent and return instant responses via SSE. Available commands:
| Command | Description |
|---|---|
/list-commands |
List all available slash commands |
/list-commits |
List configuration commits made in this chat |
/list-skills |
List available agent skills with slugs |
/list-mcp-tools |
List MCP tools grouped by category |
/list-agent-tools |
List built-in agent tools with descriptions |
The TUI provides autocomplete suggestions when typing /. Commands can also be discovered programmatically via GET /api/v1/commands.
SSE Events: The message endpoint streams these SSE event types:
SSE event: |
Description |
|---|---|
step |
Agent steps (thinking, tool calls, final answer) |
sub_agent_progress |
Sub-agent iteration updates |
sub_agent_text |
Sub-agent text streaming |
task_snapshot |
Task tracker state after each task mutation |
file_created |
Output file notification |
done |
Final event with token usage |
error |
Agent execution error |
MCP Mode: Chat sessions support mode switching via the mcp_mode parameter:
- Set at chat creation:
POST /api/v1/chatswith{"mcp_mode": "read-write"} - Override per message:
POST /api/v1/chats/{id}/messageswith{"content": "...", "mcp_mode": "read-write"}
Persona: Chat sessions support persona switching via the persona parameter:
- Set at chat creation:
POST /api/v1/chatswith{"persona": "cautious"} - Override per message:
POST /api/v1/chats/{id}/messageswith{"content": "...", "persona": "cautious"}
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-1.3.1.tar.gz.
File metadata
- Download URL: rossum_agent-1.3.1.tar.gz
- Upload date:
- Size: 153.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbdc540d20819d2368f09f4883ca5d832451debdf61537292fce64d88268aa3f
|
|
| MD5 |
5e513fe2f0b9a3a0489128c26344977e
|
|
| BLAKE2b-256 |
235a88a792e2b2e4211ccecf211585864e82b3ca7d63f8d2acef5818b140f0db
|
File details
Details for the file rossum_agent-1.3.1-py3-none-any.whl.
File metadata
- Download URL: rossum_agent-1.3.1-py3-none-any.whl
- Upload date:
- Size: 168.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
712ffd587a4e1c6ddd2b4e14015fe3e87c6e7787f4b2695a9c4911e0989e7cda
|
|
| MD5 |
0cf3acb5720008bcb5607592e183537b
|
|
| BLAKE2b-256 |
5ddc45c65a438e4a4558d8daf0141cb16edb4fa3180bb1be7de6c4395acd46b2
|