Indie AI-agent dev — Quickstart
For the solo founder shipping a LangChain RAG agent fast. Skip the boilerplate, get a hash-chained audit trail and a signed VC on every chain completion.
You're here because…
You're a solo or small-team dev shipping a LangChain agent and you don't have time to hand-roll an audit trail before launch. The funnel evaluation flagged that the "5-minute promise" used to break at the import step — from services.identity_service import … only worked from a cloned repo, not from a clean pip install. v0.4.0-rc.2 ships the canonical attestix.* namespace, so the snippet below runs end-to-end from a fresh venv.
60-second install
pip install --pre 'attestix[langchain]'That installs v0.4.0-rc.2 plus the langchain-core extra. Drop the --pre once v0.4.0 GA ships.
First 30 lines that actually do something
from langchain.agents import AgentExecutor, create_react_agent
from langchain_core.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
from attestix.integrations.langchain import AttestixCallback
from attestix.services.identity_service import IdentityService
# 1. One-time: create the agent identity (signed, persisted to identities.json).
agent = IdentityService().create_identity(
display_name="rag-helper",
source_protocol="manual",
capabilities=["retrieval", "synthesis"],
issuer_name="VibeTensor",
expiry_days=365,
)
# 2. Wire the callback. Every tool call, LLM call, and chain step gets
# SHA-256 hash-chained, Ed25519-signed, and stored locally.
callback = AttestixCallback(
agent_id=agent["agent_id"],
record_llm_tokens=True,
issue_vc_on_success=True, # default True
)
llm = ChatOpenAI(model="gpt-4o-mini")
prompt = PromptTemplate.from_template("{input}\n{agent_scratchpad}")
executor = AgentExecutor(
agent=create_react_agent(llm, tools=[], prompt=prompt),
tools=[],
callbacks=[callback],
)
result = executor.invoke({"input": "Summarise our Q4 board pack."})
print(result["output"])What you just got
- A row in the local hash-chained audit trail for every callback event (
on_chain_start,on_tool_start,on_llm_end,on_chain_end). - A signed
ChainExecutionCredential(W3C VC,Ed25519Signature2020) auto-issued on chain completion — verify it offline withattestix credential --verify <cred_id>. - A persistent agent DID so the same identity is reused across runs (no per-run re-creation).
Verify the chain hashes still line up:
attestix audit <agent_id>The deeper LangChain integration guide covers chain-of-thought events, sub-chain UCAN delegations, and the full callback event table.
Next step (5 minutes)
Anchor today's audit batch to Base L2 testnet (Sepolia, free, requires a funded test wallet — no mainnet wallet needed):
from attestix.services.blockchain_service import BlockchainService
tx = BlockchainService().anchor_audit_batch(agent_id=agent["agent_id"])
print(tx) # 0x...; verify on https://sepolia.basescan.orgMainnet schema registration is on the roadmap; until then anchoring is testnet only and is not legally non-repudiable. See the Base L2 anchor walkthrough for the full setup.
Quickstart — pick your role
Copy-paste to verifiable agents in 90 seconds. One page per ICP persona from the v0.4.0 funnel evaluation, written against the actual pain point that persona hit.
Fintech compliance engineer — Quickstart
Wire a trading or credit-scoring agent with hash-chained audit, signed inference logs, and a third-party conformity assessment record — without a database.