Forge is a Python framework where everything an agent is and does (its skills, tools, tasks, messages, decisions) is a node and an edge in the graph, at runtime. Watch it think. Steer it live. Replay any decision.
A Forge flow is not a diagram of the system: it is the system. Every node here is a real node in the graph.
Other frameworks store state as a by-product. In Forge, the runtime IS the graph, so every concept you declare becomes nodes and edges you can query.
from ather.ai.forge import Agent, Tool, Skill, Flow
analyst = Agent("aml-analyst",
role="Financial crime analyst",
tools=[trace_transaction, "mcp:jira.*"],
skills=["./skills/sar-drafting"],
knowledge="aml-graph")
run = Flow("alert-triage").run(alert_id="A-4471")
run.watch() # every step is a node; every decision an edge
Because the agent's state lives in the graph, not in a process, you get properties no wrapper framework can offer.
Edit a running workflow's graph (insert an approval, cut a branch) and the runtime reacts.
State never leaves the database: kill the worker, another resumes the run.
MVCC snapshots let you re-run any decision with a different model and diff the outcomes.
“Why did the agent do that?” is a graph query, not a log grep.
Skills are portable markdown folders; tools are Python functions or any MCP server.
Agents remember entities, outcomes, and preferences, with provenance edges to where each memory came from.
Hybrid vector + BM25 + k-hop traversal, behind an adaptive router: simple lookups stay fast; multi-hop and impact questions traverse.
The router matches the question to the retrieval strategy: no traversal tax on a simple lookup, no shallow answer to a deep question.
Every answer returns its citations and the graph path that produced them. An artifact, not an assurance.
Retrieval respects the asking user's rights. What you cannot read, the agent cannot retrieve on your behalf.
Forge ships a catalog of MCP tool servers, the open standard that works with any AI client, not just ours. Governed, permission-tiered, and auditable.
The SAP suite gives agents governed access to the delivery layer around SAP: requirements, transports, test cases, tickets. One conversation across SAP + Jira + SharePoint.
Reads an AML or fraud alert, walks the graph around it, and drafts the investigation summary. Every claim carries a citation.
Ingests contracts and specs, extracts entities into the graph. Flags the gaps against requirements as it goes.
Answers “what changed, what broke, who owns it” from live system and ticket graphs. One question, one traceable answer.
Built on MailTree: reconstructs who-knew-what-when across mailboxes. Threads become an evidence graph you can query.
Traces requirements to transports to tests across SAP ALM, Jira, and SharePoint. The whole delivery chain in one conversation.
Drafts SOWs and regulatory reports grounded in past deliverables. Every claim is cited back to its source.
Forge plus the SAP MCP suite runs end-to-end reconciliation: incoming bank payment advices are matched to open invoices in SAP (FI-AR / FICA), clearing is proposed, approved where needed, and posted back into SAP, with a complete causal audit trail for every posting.
Every match decision (which invoice, why, at what confidence) is recorded as graph structure. When the auditor asks why a payment was applied, the answer is a query.
Exact + fuzzy matching on amount, payment reference, customer, and open-item age.
Postings within tolerance auto-clear; exceptions route to an approval gate.
Clearing documents created in SAP via the MCP suite, never a screen-scrape.
Works with what you have: MCP-standard tools (Jira, Slack, SharePoint/MS Graph, S3, SQL), skills compatible with Claude Code, Bolt protocol compatible with Neo4j drivers, adapters for LangChain/LangGraph/LlamaIndex.
They need an audit trail. Forge gives every agent action a permanent, replayable causal record: the documentation SR 11-7 examiners and EU AI Act (Aug 2026) auditors ask for, produced by construction.