FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

feat: Agent Charlie — AI assistant with Solid pod data access · Issue #205 · JavaScriptSolidServer/JavaScriptSolidServer · GitHub

Repository navigation

feat: Agent Charlie — AI assistant with Solid pod data access #205

Closed

Description

Background

Tim Berners-Lee's Charlie Works describes a vision for trustworthy, user-centric AI assistants that leverage personal data stored in Solid Pods. Rather than giving generic responses, "Charlie" accesses an individual's structured data (with consent) to provide highly personalized answers.

Key insight: "the pod full of semantic web data is extremely powerful in driving the LLM."

How it maps to JSS

JSS already has most of the building blocks:

  • Solid Pods with LDP containers and JSON-LD resources
  • WAC auth for fine-grained access control
  • /db/ route backed by MongoDB for structured data storage
  • IdP with credentials endpoint for token-based auth
  • Pay-as-you-go token model — agent interactions can be metered

Proposed implementation

  1. /agent/ endpoint — accepts a natural language query + consent scope
  2. Pod data retrieval — agent reads user's pod data (fitness, finances, preferences, etc.) based on granted permissions
  3. LLM context injection — pod data is serialized as JSON-LD context and sent to an LLM (e.g. Claude API)
  4. Response — personalized answer returned to the user
  5. Consent flow — user explicitly grants/revokes data access per query or per session
  6. Token metering — each agent query costs tokens, fits the pay-as-you-go model

Data flow

User query + consent → /agent/ endpoint
  → Read pod data (WAC-scoped)
  → Build JSON-LD context
  → Send to LLM API
  → Return personalized response

Reference

Activity

  1. melvincarvalho commented on May 18, 2026

    ContributorAuthor

    This is the original Charlie proposal — superseded in shape (not in spirit) by #490, which lands the substrate first.

    #490 lands the foundation: `jss start --mcp` exposes the pod as an MCP tool surface. Any MCP-compatible client (Claude Desktop, Cursor, `solid-apps/charlie`) can drive it. Bot identity is a `did:nostr:` WAC subject; ACL controls access exactly like for human users. No server-held API keys, no vendor coupling.

    This issue stays open as the hosted-Charlie follow-on: a JSS-internal `/agent/` endpoint that owns the LLM call and applies the pay-as-you-go token metering described above. That's a useful convenience layer on top of MCP for users who don't want to run their own LLM client — but it's strictly additive to the MCP primitive in #490.

    Proposed order: #490 first (substrate + reference `solid-apps/charlie` UI), then this one (hosted convenience + metering).

  2. added
    agenticIssues and PRs related to agentic / LLM-builder / agent-friendly use cases
    on May 19, 2026
  3. melvincarvalho commented on Jun 10, 2026

    ContributorAuthor

    Closing (2026-06-10): Charlie ships as the MCP pattern

    The vision this issue proposed is running today, and documented:

    • Substrate: feat: expose JSS as an MCP server (--mcp) — proposed v0.0.200 #490 (closed) — jss start --mcp exposes the pod as an MCP tool surface; bot identity is a did:nostr: WAC subject; ACL scopes access exactly as for human users.
    • Documentation: docs/features/charlie.md on the docs site — TBL's 2017 vision, the working 2026 stack (npx jspod + any MCP client + open-weights model), and session transcripts showing an agent reading WAC as a consent model rather than a barrier. Plus the "How Charlie works" wiring section in the MCP feature doc.

    On the hosted-Charlie follow-on (the /agent/ endpoint + token metering my earlier comment reserved this issue for): dropping it. The shipped pattern's framing supersedes the idea — "no vendor in the loop, no commercial API key required" is the point. A JSS-internal endpoint that owns the LLM call would reintroduce exactly the coupling the pattern exists to avoid. The agent runtime is the right home for inference; the pod's job is identity, consent, and storage. If demand for a hosted convenience layer materializes, it can be a fresh, narrowly-scoped issue — this one's vision is delivered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agenticIssues and PRs related to agentic / LLM-builder / agent-friendly use casesenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions


      Back | FazBrowse Home | New Git URL