ckg-agentforce
Includes MuleSoft Action as one of the four AgentForce action types, supporting integration with MuleSoft's platform for action execution.
Integrates with NVIDIA NIM as an implementation of the Reasoning Engine, allowing queries about the agent's AI model integration path and dependency chain.
Provides an auditable knowledge graph for Salesforce AgentForce, enabling deterministic answers with full source traceability for declared relationships among AgentForce components.
ckg-agentforce
ckg-agentforce — AgentForce as a traversable knowledge graph
An auditable knowledge graph for Salesforce AgentForce — deterministic agent answers with full source traceability.
AgentForce charges $2 per autonomous resolution. Every failed resolution is a retry, a CSAT hit, and $2 with no outcome. Wrong inference is expensive here. The graph declares what the agent should already know — so it doesn't have to infer it.
Every edge traces to a declared relationship and a SHA-256-pinned source document. Built for Salesforce architects, platform engineers, and agent developers who need verifiable answers about AgentForce dependencies, billing paths, trust layer policy, and deployment patterns — not model inference.
Not a general-purpose semantic search layer. If it's not a declared edge, the graph doesn't return it.
pip install ckg-agentforce
# or: uvx ckg-agentforcePyPI · GitHub · Benchmark paper · graphifymd.com
What it is
40 nodes · 52 edges · the full AgentForce stack as a typed dependency graph. Pre-structured, traversable, deterministic. Served over MCP. No inference at query time.
get_prerequisites("Autonomous Resolution")
→ Autonomous Resolution ← $2/event billing trigger
├─ [REQUIRES] Resolution Criteria
├─ [REQUIRES] Audit Trail
│ └─ [REQUIRES] Einstein Trust Layer
│ ├─ [REQUIRES] AgentForce Platform
│ └─ [REQUIRES] Reasoning Engine
└─ [REQUIRES] Policy Enforcement
└─ [REQUIRES] Einstein Trust Layer
269 tokens · declared edges only · no inference
RAG equivalent: ~2,982 tokens · probabilisticquery_ckg("Einstein Trust Layer")
→ Dependents (what it gates):
← [REQUIRES] Data Masking
← [REQUIRES] Audit Trail
← [REQUIRES] Zero Data Retention
← [REQUIRES] Grounding
← [REQUIRES] Einstein Agent
← [REQUIRES] Policy Enforcement
Six capabilities gate on this one node. RAG returns six separate docs.
The graph knows — it's a declared edge.Related MCP server: RAG Knowledge Graph MCP
Source provenance — verifiable to the byte
Every node carries a source_url and a source_hash (SHA-256 of the source document's bytes at extraction time). An edge isn't just asserted from a source — it's pinned to a specific version of it.
# Verify any node's source hasn't changed since extraction
curl -s https://help.salesforce.com/s/articleView?id=sf.einstein_ai_trust_layer.htm | sha256sum
# expected: cc11eedeee761e083a591cd20bbbdf46d2942906519dc5f8e51e617857118cdaThe full audit chain:
edge answer
→ graph commit hash (git log -- agentforce.csv)
→ source_content_hash (sha256 of page bytes at extraction time)
→ knowledge_source_ref (URL — fetch hint, not trust anchor)A hash mismatch means either the source changed (stale edge → re-extract) or the graph was patched without re-fetching (silent edit → investigate). No judgment required. Run scripts/refresh_hashes.py to recompute.
Via MCP — verify_source("Einstein Trust Layer"):
source_url: https://help.salesforce.com/s/articleView?id=sf.einstein_ai_trust_layer.htm
source_hash: sha256:cc11eedeee761e083a591cd20bbbdf46d2942906519dc5f8e51e617857118cda
verify: curl -s '<url>' | sha256sumReference implementation of knowledge_source_ref + source_content_hash from GuardrailDecisionV1.
What developers are actually hitting
Signal from Salesforce developer forums, Trailblazer Community, and hands-on deployments.
01 — The $2 retry problem. An agent misidentifies the resolution path. It attempts resolution, fails criteria, retries — $4 spent, zero outcome. The billing trigger lives four hops from Einstein Agent. Agents that don't traverse the full chain get it wrong.
02 — "Which policy tier is blocking my agent?" Einstein Trust Layer gates six downstream capabilities. Architects can't tell whether a blocked agent is hitting Data Masking, Zero Data Retention, or Policy Enforcement without traversing the dependency chain manually. The graph makes it a one-hop query.
03 — The Grounding Source Gap. AgentForce Grounding REQUIRES Knowledge Base, which REQUIRES Data Cloud. Most implementations skip Data Cloud and wonder why Grounding is unreliable. The graph shows the prerequisite chain; RAG returns the docs separately.
04 — NVIDIA NIM integration path. AgentForce Model Selection ENABLES Reasoning Engine, which has an IMPLEMENTS edge to NVIDIA NIM. Developers searching for the NIM integration path get inconsistent Salesforce docs. The declared edge makes it deterministic.
Declared relationships, not confidence scores
Every edge was extracted from a Salesforce source document and given a type. No probabilistic weights, no cosine similarity scores, no confidence intervals. An edge either exists — declared, typed, sourced — or it doesn't. When the answer isn't in the graph, the traversal returns nothing rather than a hallucinated approximation.
Edge types:
Type | Meaning | Example |
REQUIRES | Hard prerequisite — A cannot function without B | Einstein Trust Layer REQUIRES AgentForce Platform |
ENABLES | Capability unlock — A makes B possible | Model Selection ENABLES Reasoning Engine |
IMPLEMENTS | Concrete instantiation of an abstract concept | NVIDIA NIM IMPLEMENTS Reasoning Engine |
RELATES_TO | Conceptual proximity, no dependency direction | Data Masking RELATES_TO Zero Data Retention |
Why no confidence levels? The edge type is the confidence signal. REQUIRES means load-bearing and sourced; RELATES_TO means real but weaker. A missing edge is silence from a source-grounded system — not a soft no, not a low-confidence guess.
✗ RAG: "Einstein Trust Layer probably governs data access... (similarity: 0.79)"
Score is on the chunk, not the claim. The claim itself is unverified.
✓ CKG: "Einstein Trust Layer REQUIRES AgentForce Platform and gates six capabilities:
Data Masking · Audit Trail · Zero Data Retention · Grounding · Einstein Agent · Policy Enforcement"
No score. Declared edge. Traces to trust layer source doc.A/B — AgentForce domain, local models, no GPU
30 questions on the $2/resolution billing path, trust layer, and action types · CPU only · Ollama · temperature 0
Category | Bare model | + CKG | Lift |
Billing path F1 | 0.091 | 0.201 | +121% |
Trust layer F1 | 0.063 | 0.134 | +113% |
Prereq-chain F1 | 0.058 | 0.142 | +145% |
Key-fact accuracy | 8.1% | 19.4% | +11pp |
Example — P01 (billing prereq chain):
Q: What must resolve before AgentForce charges the $2 resolution fee?
✗ Bare: "The agent completes the customer's request successfully..." [vague, misses billing trigger]
✓ CKG: "Resolution Criteria must be satisfied, Audit Trail must log the event,
and Policy Enforcement must clear — all gated by Einstein Trust Layer." [exact chain]Example — L03 (action type lookup):
Q: What are the four AgentForce action types?
✗ Bare: "AgentForce supports Standard Actions, Custom Actions, and API Actions..." [misses MuleSoft]
✓ CKG: "Flow Action · Apex Action · MuleSoft Action · External Action" [declared edges, correct]Install
Add to claude.ai (no install required):
https://ckg-agentforce.onrender.com/mcpSettings → Connectors → Add connector → paste URL.
Local — Claude Desktop / Claude Code:
pip install ckg-agentforce
# or
uvx ckg-agentforce{
"mcpServers": {
"agentforce": {
"command": "uvx",
"args": ["ckg-agentforce"]
}
}
}Tools
list_concepts — List all 40 AgentForce concepts grouped by type
search_concepts — Fuzzy search across all concepts by keyword
query_ckg — Typed subgraph around any concept (1–5 hops)
get_prerequisites — Full upstream prerequisite chain for any concept
resolution_path — The exact $2/resolution billing traversal — every hop declared
verify_source — Source URL + SHA-256 hash for any concept (GuardrailDecisionV1)
Tool | Args | Description |
| — | All 40 AgentForce concepts grouped by type |
| query: str | Fuzzy search across all concepts |
| concept: str, depth: int 1–5 | Typed subgraph around any concept |
| concept: str | Full upstream prerequisite chain |
| — | The $2/resolution billing traversal — every hop declared |
| concept: str | Source URL + SHA-256 hash · full audit chain |
| question: str | CKG Router — optimal model tier + reasoning approach from graph depth |
route_query(question) — CKG Router
The graph depth IS the routing signal. AgentForce dependency chains (Einstein Trust Layer → Data Cloud → NVIDIA NIM → Resolution Criteria) signal reasoning complexity deterministically. No heuristic: the graph decides.
Hop depth | Model | Reasoning |
1 | haiku | direct |
2 | sonnet | generic_cot |
3+ | opus | sparql_cot |
A/B — before vs after routing:
# Baseline (no routing)
query_ckg("Einstein Trust Layer", depth=3)
→ subgraph returned, caller guesses model...
→ calls GPT-4o on everything, $0.072/query
# Treatment (route_query)
route_query("Einstein Trust Layer")
→ model_tier: sonnet
→ reasoning_approach: generic_cot
→ why: 2-hop chain, 3 parallel branches — moderate complexity
→ ~480 tokens, $0.0014/query
Same answer. 98% cheaper. Graph depth made the decision.Works with any LLM — Claude, GPT-4o, Gemini, Llama. Model-agnostic by design.
What's in the graph
40 nodes · 52 edges · 4 edge types: REQUIRES · ENABLES · IMPLEMENTS · RELATES_TO
Layer | Concepts |
Agents | Einstein Agent · Service Agent · Sales Agent · Marketing Agent |
Actions | Flow Action · Apex Action · MuleSoft Action · External Action · Standard Action · Custom Action |
Platform | AgentForce Platform · Data Cloud · Salesforce CRM · Knowledge Base |
Reasoning | Reasoning Engine · Model Selection · NVIDIA NIM · Token Budget · Context Window |
Trust | Einstein Trust Layer · Data Masking · Zero Data Retention · Policy Enforcement · Compliance Rules |
Workflow | Agent Topic · Agent Instruction · Resolution Criteria · Conversation State · Grounding |
Billing | Autonomous Resolution ($2/event) · Audit Trail · Agent Metrics · Handoff to Human |
Routing | Omni-Channel Routing · Multi-Agent Orchestration · Prompt Template |
Every node traces to an authoritative Salesforce source document. Every source is SHA-256 pinned.
Pro access — all 97 domains
Remote MCP connector · no install · paste one URL into claude.ai or Cursor
97 domains: NVIDIA · Finance · Healthcare · Regulatory · Enterprise AI
graphifymd.com/pro/
Sources
Every node and edge traces to one of these. No probabilistic inference — declared relationships only.
Type | Source | Coverage |
Official | developer.salesforce.com/docs/einstein/genai/guide/agentforce-overview.html | Platform, agents, actions, grounding |
Official | Salesforce Einstein Trust Layer docs | Trust, Data Masking, ZDR, Policy Enforcement |
Official | AgentForce billing and resolution docs | Autonomous Resolution, $2/event trigger, Audit Trail |
Official | Data Cloud integration guide | Data Cloud, Knowledge Base, Grounding chain |
Official | Model selection and NIM integration | Reasoning Engine, NVIDIA NIM, Model Selection |
Dataset | huggingface.co/datasets/danyarm/ckg-benchmark | KRB v0.6.2 — 7,928 queries |
Benchmark | github.com/Yarmoluk/ckg-benchmark/paper/main.pdf | Full methodology, F1 0.471 |
Benchmark (KRB v0.6.2 locked)
System | Macro F1 | Mean tokens | Cost / 1k queries |
CKG | 0.471 | 269 | $7.81 |
RAG | 0.123 | 2,982 | $76.23 |
GraphRAG | 0.120 | ~3,000 | ~$76 |
7,928 queries · 5-hop F1: 0.772 (CKG) vs 0.170 (RAG) · dataset · full paper
Licensing
Layer | License | Plain English |
Server code — server.py, graph.py, serve.py, scripts/ | MIT | Do anything. Fork it, embed it, sell products built on it. |
Graph data — domains/agentforce.csv + source hashes | Elastic License 2.0 | Free for all internal and commercial use. Cannot offer this graph as a competing hosted service. |
Extraction pipeline + benchmark harness | Proprietary — Graphify.md | Not in this repo. How 97 domains get built and maintained. |
Can I build an agent or product using this CKG? Yes. No restrictions.
Can I run this inside my company's infrastructure? Yes. ELv2 allows all internal commercial use.
Can I offer "AgentForce CKG as a Service" commercially? No. That's the one thing ELv2 blocks.
EVAL
benchmark: ckg-benchmark v0.6.2
dataset: huggingface.co/datasets/danyarm/ckg-benchmark
benchmarked: false
rag_baseline_f1: 0.123
graphrag_baseline_f1: 0.120
mean_tokens: 269
paper: github.com/Yarmoluk/ckg-benchmark/blob/main/paper/main.pdfWant this for your domain?
Graphify.md builds CKGs for enterprise domains — AgentForce, NVIDIA, finance, healthcare, and custom stacks. If you need a knowledge graph for your platform, product, or internal knowledge base:
Try the hosted endpoint: ckg-agentforce.onrender.com — 50 free calls/day, then $29/mo
Enterprise / custom domains: graphifymd.com or email daniel.yarmoluk@gmail.com
Benchmark paper: F1 0.471 · 11× fewer tokens than RAG
97 domains available: graphifymd.com/pro
Built by Graphify.md · 97 domains · PyPI · patent pending
Community-built. Not affiliated with, endorsed by, or sponsored by Salesforce, Inc. AgentForce and Einstein are trademarks of Salesforce, Inc. All referenced trademarks belong to their respective owners.
Available Tools
9 toolsevaluate_trust_chainAInspect
Return a machine-readable JSON trust chain + ROI analysis + payment recommendation.
Designed for autonomous agent consumption. The agent reads the JSON, evaluates the ROI gate, selects the cheapest positive-ROI payment option, and purchases autonomously if budget is pre-authorized.
Trust chain closes the audit gap that RAG cannot: source_hashes → SHA-256 of source docs (what was known at extraction time) graph_hash → SHA-256 of the installed graph file (what is declared now) signer_key_id → Ed25519 public key fingerprint (who is attesting) benchmark_receipt → BoundaryAttest-signed F1 claim (cryptographic performance proof) scitt_status → SCITT ledger submission status (public audit anchor)
ROI gate: if total_value_per_call_usd > payment_option.price_per_call_usd → autonomous_pay = true.
Returns: JSON string (schema: ckg-trust-chain-v1).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully describes the tool's behavior: it returns a JSON with specific fields (source_hashes, graph_hash, etc.) and explains the ROI gate logic. It does not disclose side effects or state changes, but the tool appears to be read-only. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points for trust chain components, front-loading the purpose. It is moderately long but each sentence adds value. Could be slightly more concise but overall appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of trust chain evaluation and ROI analysis, and the presence of an output schema (ckg-trust-chain-v1), the description covers the key aspects: return format, decision rule, and trust chain fields. It is complete enough for an autonomous agent, though the output schema details are not elaborated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100%. Per the rubric, 0 parameters gives a baseline of 4. No additional parameter information is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a machine-readable JSON trust chain with ROI analysis and payment recommendation, specifying it's for autonomous agent consumption. It distinguishes itself by listing unique trust chain components that close the audit gap, differentiating from sibling tools like list_concepts or search_concepts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: for autonomous agents to evaluate trust, compare ROI, and autonomously purchase. It explains the decision rule (ROI gate) and mentions budget pre-authorization. However, it does not explicitly state when not to use it or compare to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_benchmark_receiptAInspect
Generate a signed BoundaryAttest receipt for the agentforce CKG benchmark result.
Produces a ckg.benchmark_result.exported claim signed with this server's Ed25519
session key. Any party holding the public key can verify the signature over the canonical
JSON claim. Implements GuardrailDecisionV1 · experimental-interop-v0.1.
Result: F1 0.471 over 30 queries · ckg-benchmark v0.6.2 · 4× over RAG baseline (0.123).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of behavioral disclosure. It explains that the tool generates a signed claim using an Ed25519 session key, that the signature is verifiable, and includes implementation references (GuardrailDecisionV1). It does not mention destructive behavior, rate limits, or idempotency, but the described action is inherently non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: the first clearly states the tool's purpose, the second adds technical detail about the signature mechanism, and the third provides a concrete example. Every sentence earns its place, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an expected output, the description fully covers what the agent needs to know: the nature of the receipt, the signing key, verifiability, and a sample output. The presence of an output schema (true) reduces the need to describe return values, but the description still provides valuable context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the description does not need to elaborate on parameter meanings. It adds context by explaining what the tool produces and including an example result, which is sufficient beyond baseline for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Generate') and resource ('signed BoundaryAttest receipt') clearly indicating the tool's output. It explicitly names the benchmark context ('agentforce CKG benchmark result'), distinguishing it from sibling tools like list_concepts or query_ckg.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool vs. alternatives or when not to use it. However, the context of exporting a signed receipt is narrow enough that the usage scenario is implicitly clear. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_prerequisitesAInspect
Return the full ordered prerequisite chain for an AgentForce concept.
Shows everything the concept depends on — the complete upstream path.
Args: concept: Target concept — e.g. 'Autonomous Resolution', 'Multi-LoRA Serving', 'Custom Actions', 'Semantic Retrieval'.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It clearly states the tool returns an ordered prerequisite chain, implying a read-only, non-destructive operation. It does not mention any side effects or special requirements, but the behavior is transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences and an Args section. Every sentence adds value, and the structure is clean with front-loaded purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter input and the presence of an output schema, the description is complete. It does not need to explain return values since the output schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning by specifying 'Target concept' and providing examples like 'Autonomous Resolution'. This compensates for the lack of schema property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Return the full ordered prerequisite chain for an AgentForce concept. Shows everything the concept depends on — the complete upstream path.' This distinguishes it from siblings like list_concepts and search_concepts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage by showing concept examples, but it does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives like resolution_path or evaluate_trust_chain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conceptsBInspect
List all 40 AgentForce concepts in this knowledge graph.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors. It only states it lists concepts, but does not mention read-only nature, performance characteristics, or result format. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and an output schema, the description is largely complete. It could mention if pagination or rate limits exist, but given the simplicity, it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add parameter info. Since schema coverage is 100% (vacuously), and the description adds no parameter details, baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('List') and the resource ('all 40 AgentForce concepts'), making it distinct from sibling tools like search_concepts which implies filtering. However, it does not explicitly differentiate itself in the text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., search_concepts for filtered queries). The description lacks context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_ckgAInspect
Traverse the AgentForce knowledge graph from any concept.
Returns prerequisites (what this concept needs) and dependents (what it enables). Every relationship traces to an authoritative Salesforce doc URL.
Args: concept: Concept name — e.g. 'Autonomous Resolution', 'Einstein Trust Layer', 'Service Agent', 'Grounding', 'NVIDIA NIM'. depth: Traversal depth 1–5 (default 3).
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | ||
| concept | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but description discloses query-only behavior, output structure (prerequisites, dependents, doc URLs), and depth limits. Adequate for a read-only graph traversal tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sentences plus a clear Args block. Front-loaded purpose, no redundancy, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values may be documented there. Description covers relationship types and source URLs. Very good but could mention if traversal is bidirectional or depth scope more precisely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description thoroughly explains both parameters: concept with explicit examples, depth with range and default. Adds significant meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Traverse' with specific resource 'AgentForce knowledge graph' and result 'prerequisites and dependents'. Distinguishes from siblings like list_concepts and search_concepts by emphasizing relationship traversal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage via example concepts and explicit depth parameter, but no comparison to siblings like get_prerequisites or resolution_path. Lacks when-to-use vs alternatives context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolution_pathAInspect
Trace the exact path that determines an AgentForce autonomous resolution event.
This is the $2/resolution billing path — what the agent must traverse correctly to resolve autonomously without human handoff.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides some behavioral context by noting it is a billing path and that the agent must traverse it correctly. However, it lacks details on whether it is read-only, what happens if the path does not exist, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. The first sentence states the core function, the second adds meaningful billing context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and an existing output schema, the description sufficiently explains what the tool does and its significance. It could be more complete by mentioning typical use cases or output format, but that is partially covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4 per instructions. The description does not need to add parameter details, and the schema coverage is trivially 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb ('trace') and a unique resource ('exact path that determines an AgentForce autonomous resolution event'). It distinguishes from siblings (e.g., search_concepts, query_ckg) by focusing on a billing-specific resolution path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings or prerequisites. The description implies it is for tracing the resolution path but does not specify contexts that would make it the correct choice (e.g., after a resolution event).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
route_queryAInspect
Route an AgentForce question to the optimal model and reasoning approach via graph depth.
The CKG graph IS the router. AgentForce dependency chains (e.g. Einstein Trust Layer → Data Cloud → NVIDIA NIM → Resolution Criteria) have typed hops that signal reasoning complexity deterministically. No heuristic: the graph decides.
Routing table: hop_depth 1 → haiku · direct (simple concept lookup) hop_depth 2 → sonnet · generic_cot (moderate chain) hop_depth 3+ → opus · sparql_cot (deep dependency, structured reasoning)
Args: question: Concept name or natural language question about Salesforce AgentForce.
Returns: model_tier + reasoning_approach + why + context subgraph to inject before LLM call.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the tool as deterministic based on graph depth, and lists return fields (model_tier, reasoning_approach, why, context subgraph). No annotations are provided, so the description carries the full burden. It is fairly transparent, though it does not mention error handling or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose, mechanism, routing table, args, returns. It is detailed but not excessively long. Some sentences are slightly verbose but add clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema, the description sufficiently covers input type and return fields. It lacks details on error scenarios or performance, but overall is complete enough for an AI agent to use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains that the 'question' parameter can be a 'Concept name or natural language question about Salesforce AgentForce,' adding meaningful context beyond the schema's title 'Question.' With schema description coverage at 0%, this compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Route') and the target ('AgentForce question to optimal model and reasoning approach'). It distinguishes itself from sibling tools like list_concepts, search_concepts, and query_ckg by focusing on routing to models rather than querying or listing concepts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit routing logic with a table mapping hop depths to models and reasoning approaches. It explains that the CKG graph decides deterministically. However, it does not explicitly state when to avoid this tool or compare it with alternatives like query_ckg.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_conceptsAInspect
Find AgentForce concepts by keyword.
Args: query: Search term — e.g. 'resolution', 'trust', 'grounding', 'action', 'NIM'.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states basic functionality (find by keyword) without disclosing behaviors such as case sensitivity, pagination, result limits, or whether it's read-only. The output schema exists but the description does not hint at what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a main sentence and a single parameter explanation. It is front-loaded with the core action. A slightly more structured format with explicit sections could improve scannability, but it remains efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one required parameter and an output schema, the description is minimal but sufficient for basic understanding. However, it lacks details on output format, maximum results, or any constraints, which would enhance completeness for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds critical meaning to the sole parameter 'query' by providing examples ('resolution', 'trust', 'grounding', 'action', 'NIM') and clarifying it is a free-text search term. This significantly aids correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Find', the resource 'AgentForce concepts', and the method 'by keyword'. It distinguishes itself from the sibling 'list_concepts' which likely lists all concepts. The purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an example of query terms but does not explicitly state when to use this tool versus alternatives like 'list_concepts' or 'query_ckg'. There is no guidance on when not to use it or prerequisites, leaving the context implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_sourceAInspect
Return the source URL and content hash for an AgentForce concept node.
Audit chain: edge answer → graph commit → source_hash → source_url (fetch hint)
Verification: curl -s | sha256sum # compare output to source_hash
Args: concept: Concept label (partial match supported). receipt: If True, also return a signed BoundaryAttest receipt envelope (experimental-interop-v0.1) binding concept_label + source_url + source_hash + timestamp to this server's ed25519 session key.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | ||
| receipt | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses behavior: returns URL and hash, optional receipt, and hints at network call (curl). Good transparency for a read-like operation, though could mention if side effects exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (audit chain, verification, args), but the code block and step-by-step instructions could be more concise. Still effective and not overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (as per context signals), the description sufficiently covers what the tool does, what inputs are needed, and what behavior to expect. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description fully compensates. 'concept' is explained as label with partial match support. 'receipt' is explained as experimental interop envelope with details. Adds significant meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns source URL and content hash for a concept node, with specific actions like audit chain and verification. It is distinct from sibling tools like search_concepts or list_concepts, which do not perform verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for verifying source integrity via audit chain and curl/sha256sum, but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but 'get_prerequisites' overlaps with the prerequisite functionality of 'query_ckg', which could cause confusion. Overall, boundaries are mostly clear.
Most tools follow a verb_noun pattern, but 'resolution_path' is a noun_noun, breaking the consistency. Otherwise, naming is predictable.
With 9 tools, the set is well-scoped for a knowledge graph server, covering query, exploration, and trust verification without being excessive or thin.
The tool set covers core exploration, verification, and trust operations. However, a dedicated tool to retrieve full concept details is missing, creating a minor gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
NVIDIA AI knowledge graphs — 20 domains. 4x F1, 11x fewer tokens, SHA-256 provenance. MCP-native.
NVIDIA NemoClaw knowledge graph — 55 nodes, F1 0.576 (+269% vs RAG), 11x fewer tokens. MCP-native.
Graph-native persistent memory for AI agents — 33 MCP tools, zero-LLM writes.
Real-time AI intelligence signals and temporal knowledge graph for agent economy
Related MCP Servers
- AlicenseAqualityCmaintenanceAgent-native knowledge infrastructure. Deterministic, vertical-specific knowledge bases for autonomous agent consumption via MCP. Ethics modules mapped to EU AI Act articles. Free 24-hour trial.72MIT
- AlicenseNot gradedqualityAmaintenanceRAG Knowledge Graph - MCP server providing AI-powered tools and automation by MEOK AI Labs12MIT
- AlicenseAqualityAmaintenanceA Compact Knowledge Graph MCP server providing pre-structured domain knowledge as a routing layer for agent stacks, enabling efficient structural queries (e.g., prerequisites, dependency chains) without hallucinations.44MIT
- FlicenseNot gradedqualityAmaintenanceA local, privacy-first knowledge graph for Salesforce orgs. It live-syncs your org to a SQLite + vector index on your machine and exposes 26 MCP tools to Cursor, Claude Code/Desktop, and VS Code, so the AI you already use can reason about Apex, LWC, Flow, Vlocity, OmniStudio, security, and integrations without your code or schema ever leaving your laptop.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Yarmoluk/ckg-agentforce'
If you have feedback or need assistance with the MCP directory API, please join our Discord server