OpenAgentForce is a Salesforce-native enterprise agent platform inside the larger Cognitive Agent Platform with:
- a hardened deterministic execution plane;
- a Salesforce relationship graph and Graph Cognitive Fabric analysis layer;
- Heisenberg, an optional governed LLM interface for natural-language work;
- no mandatory LLM dependency or per-action model charge.
A new user can download the package, run one launcher, authorize Salesforce in a browser, select objects, and begin using the operations console. An LLM provider can be added later without changing the Salesforce integration.
- OpenAgentForce is the Salesforce-native agent product.
- Heisenberg is its optional LLM-powered natural-language assistant.
- Cognitive Agent Platform is the larger architecture that contains OpenAgentForce.
- Graph Cognitive Fabric is the graph-native cognitive engine beneath it.
The internal Python module and CAP_* environment-variable prefix remain unchanged for upgrade compatibility. The legacy cap CLI and /api/assistant routes still work, but new integrations should use openagentforce or oaf, and /api/heisenberg.
- Install Python 3.11 or newer.
- Extract the ZIP.
- Double-click
start.bat, or run:
py -3 launch.pyunzip openagentforce-v0.5.1.zip
cd openagentforce-v0.5.1
./start.shThe launcher:
- creates an isolated
.venv; - installs the package;
- generates cryptographic keys and secure local configuration;
- starts the server;
- opens
http://127.0.0.1:8000/setup.
The generated administrator key is saved in .cap-admin-key and displayed once by the launcher. No default administrator password is shipped.
A conventional installation path remains available:
./install.sh
. .venv/bin/activate
openagentforce serveThe setup wizard guides the operator through five steps:
- Authenticate to the local OpenAgentForce instance.
- Connect a Salesforce org using Authorization Code with PKCE.
- Discover the org's standard, custom, and managed-package objects.
- Synchronize selected records and relationships into the local graph.
- Optionally configure and test an LLM provider.
Open the wizard directly:
http://127.0.0.1:8000/setup
See QUICKSTART.md for the complete walkthrough and SALESFORCE_SETUP.md for External Client App configuration.
OpenAgentForce does not treat Salesforce as a generic webhook destination. It implements Salesforce-specific contracts:
- OAuth Authorization Code with PKCE for interactive setup;
- JWT bearer, refresh token, client credentials, and bounded static-token modes;
- REST API v67.0 client;
- Global Describe and per-sObject Describe;
- standard, custom, and managed-package object discovery;
- object and field capability validation;
- required fields, picklists, lengths, external IDs, and relationship metadata;
- safe structured SOQL, QueryAll, SOSL, CRUD, and external-ID upsert;
- Composite, Composite Graph, sObject Collections, and Bulk API 2.0;
- Pub/Sub API and Change Data Capture with replay cursors;
- graph construction from lookup and master-detail relationships;
- audited, client-idempotent Salesforce writes.
Salesforce remains the system of record and permission authority. OpenAgentForce generates its action contracts from the permissions visible to the authenticated integration user.
OpenAgentForce works without an LLM. When one is configured, the model becomes a language and tool-selection interface—not the final authority over Salesforce.
Supported provider adapters:
- OpenAI Responses API;
- Anthropic Messages API;
- Azure OpenAI Chat Completions;
- Ollama on the local machine;
- other HTTPS OpenAI-compatible endpoints.
Heisenberg can:
- inspect current Salesforce schemas;
- retrieve and query Salesforce records through structured tools;
- search versioned deterministic knowledge libraries;
- analyze Salesforce graph dependencies and possible root causes;
- discover deployed OpenAgentForce agents;
- delegate bounded structured work to deterministic or scripted agents;
- preview Salesforce create, update, upsert, and delete operations;
- execute validated writes only when the caller explicitly enables execution and supplies an idempotency key.
Every LLM-assisted write still passes through:
LLM tool proposal
↓
provider and agent allowlists
↓
Salesforce metadata and FLS validation
↓
OpenAgentForce policy and environment authorization
↓
client-supplied idempotency
↓
prepared → dispatched → succeeded | failed | outcome_unknown
↓
trace and audit persistence
The model cannot invent a writable field, bypass Salesforce permissions, disable policy checks, declare an uncertain write successful, or authorize its own production execution.
Provider details and security boundaries are documented in LLM_PROVIDERS.md.
Open:
http://127.0.0.1:8000
The console exposes:
- platform and connection status;
- Salesforce object discovery and schema inspection;
- bounded object synchronization;
- graph impact and Queen analysis;
- Heisenberg natural-language requests;
- links back to the setup wizard.
The REST API and OpenAPI documentation are available at /docs and /openapi.json.
The package contains two live instruments:
python scripts/salesforce_live_smoke.py \
--environment sandbox \
--connector salesforce-main \
--object Accountpython scripts/heisenberg_live_smoke.py \
--environment sandbox \
--provider primary-llm \
--connector salesforce-mainThe first is read-only. The second is also read-only unless --execute, --idempotency-key, and the required production controls are explicitly supplied.
The recommended staged validation sequence is in LIVE_ORG_TEST_PLAN.md.
After enabling Change Data Capture for selected objects in Salesforce Setup:
python scripts/salesforce_cdc_worker.py \
--environment sandbox \
--connector salesforce-main \
--topic /data/AccountChangeEventThe worker stores replay cursors, decodes top-level and compound changed-field bitmaps, refreshes the changed record, and updates the relationship graph.
pytest -q
openagentforce doctor
python scripts/salesforce_contract_benchmark.pyCurrent local validation:
- 31/31 tests pass;
- Salesforce stateful contract harness retained from v0.4;
- OpenAI and Anthropic tool-call loops tested with protocol-faithful mock transports;
- OAuth PKCE, encrypted refresh-token persistence, LLM provider boundaries, preview/write governance, knowledge tools, and deployed-agent discovery tested;
- no live customer credentials or LLM API keys are embedded in the artifact.
Best for evaluation and a single-user pilot.
openagentforce init
# Review .env and secure its permissions.
docker compose up --buildThe supplied container runs as a non-root user, binds to host loopback by default, and persists data through the mounted data directory.
Use a managed database and secret manager, TLS reverse proxy, centralized audit export, network egress controls, backups, and separate Salesforce integration identities for each environment.
With no LLM, OpenAgentForce is a deterministic Salesforce action, graph, policy, testing, deployment, and observability platform.
With an LLM, OpenAgentForce adds natural-language tool use, evidence-grounded Salesforce access, knowledge retrieval, and multi-agent delegation. This creates a credible Agentforce-style product architecture while retaining model choice and a deterministic action boundary.
It is not yet a validated claim of complete Agentforce parity. Voice, Salesforce-native channel embedding, Data Cloud integration, broad packaged action inventory, and live-org comparative testing remain open. The exact matrix is in AGENTFORCE_COMPETITIVE_MATRIX.md.
Read these before presenting or deploying the product:
The defensible release statement is:
OpenAgentForce v0.5.1 is a working download-and-connect Salesforce-native platform with governed deterministic actions, relationship-graph intelligence, browser OAuth setup, and optional provider-neutral LLM tool use. Its local contracts are tested; live-org compatibility, live-provider behavior, and direct Agentforce comparative performance remain the next validation boundary.