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.5 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.5 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.