Skip to content

docs(integrations): add Asqav (signed agent audit trails) to frameworks#2882

Closed
jagmarques wants to merge 2 commits intolangfuse:mainfrom
jagmarques:docs/asqav-integration
Closed

docs(integrations): add Asqav (signed agent audit trails) to frameworks#2882
jagmarques wants to merge 2 commits intolangfuse:mainfrom
jagmarques:docs/asqav-integration

Conversation

@jagmarques
Copy link
Copy Markdown

@jagmarques jagmarques commented Apr 28, 2026

Adds Asqav as a frameworks integration page.

Asqav (https://asqav.com) is an AI agent governance layer that produces signed, tamper-evident audit records for agent actions. The page positions Asqav as a complement to Langfuse, not a replacement: Langfuse holds the trace, prompts, completions, and scores; Asqav holds a signed record that can be verified by an external auditor. The example shows both tools coexisting in one Python function with a shared trace_id.

The MDX matches the structure of recent framework pages (crewai.mdx, pydantic-ai.mdx, openai-agents.mdx). Sidebar registration done in content/integrations/frameworks/meta.json (alphabetical between amazon-agentcore and autogen). No new image asset was added; logo is optional in the schema.

Test plan

  • Fumadocs/Next.js build succeeds with the new file
  • Sidebar order is correct in Frameworks
  • Anchors and code blocks render correctly

Disclaimer: Experimental PR review

Greptile Summary

This PR adds a new asqav.mdx framework integration page showing how Asqav's signed audit trails and Langfuse traces can be linked by a shared trace_id, and registers the page alphabetically in meta.json. The structure and writing style match existing framework pages well.

  • Two links point to https://github.com/asqav/asqav-sdk (lines 12 and 112), but the actual repository is https://github.com/jagmarques/asqav-sdk — both will 404 for readers.
  • The closing explanation says to "search Langfuse for the same trace_id", but the Asqav ID is stored as metadata.asqav_trace_id rather than as Langfuse's native trace ID; a small wording fix would prevent confusion.

Confidence Score: 3/5

Not safe to merge as-is — two documentation links will 404 for all readers.

Two P1 findings (identical broken GitHub URL in two places) hold the score below 4. The remaining issues are P2 (import style, text clarity) and would not block on their own.

content/integrations/frameworks/asqav.mdx — fix the GitHub repository URLs on lines 12 and 112.

Important Files Changed

Filename Overview
content/integrations/frameworks/asqav.mdx New integration page for Asqav; contains two broken GitHub links pointing to asqav/asqav-sdk instead of the correct jagmarques/asqav-sdk, and a mildly misleading cross-referencing description for the shared trace_id.
content/integrations/frameworks/meta.json Adds "asqav" to the sidebar pages list in correct alphabetical position between "amazon-agentcore" and "autogen".

Sequence Diagram

sequenceDiagram
    participant App as Application Code
    participant LF as Langfuse (@observe)
    participant Asqav as Asqav SDK

    App->>LF: @observe wraps answer_question()
    App->>Asqav: asqav.generate_trace_id()
    Asqav-->>App: trace_id (shared key)
    App->>LF: update_current_trace(metadata={asqav_trace_id: trace_id})
    App->>App: LLM call (OpenAI, LangChain, etc.)
    App->>Asqav: agent.sign(action, context, trace_id)
    Asqav-->>App: receipt (signature_id, verify_url)
    App->>LF: flush() — trace stored with asqav_trace_id in metadata
    Note over LF,Asqav: Linked by trace_id — debug in Langfuse, audit via Asqav verify_url
Loading
Prompt To Fix All With AI
This is a comment left during a code review.
Path: content/integrations/frameworks/asqav.mdx
Line: 12

Comment:
**Incorrect GitHub URL for Asqav SDK**

The link `https://github.com/asqav/asqav-sdk` will 404. Based on the PyPI package metadata, the `asqav.com` homepage, and the PR author's profile, the actual repository is at `https://github.com/jagmarques/asqav-sdk`.

```suggestion
> **What is Asqav?** [Asqav](https://github.com/jagmarques/asqav-sdk) is an AI agent governance layer that produces signed, tamper-evident audit records for agent actions. Each call to `agent.sign(...)` returns a verification URL backed by an ML-DSA (post-quantum) signature. By default the SDK runs in hash-only mode, so prompts and tool inputs are hashed locally and only the digest plus metadata is sent to Asqav. The default deployment is GDPR-aware data minimization and is designed to support EU AI Act reporting obligations.
```

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: content/integrations/frameworks/asqav.mdx
Line: 112

Comment:
**Same incorrect GitHub URL in Resources**

Same broken link as in the blockquote above — the repository owner is `jagmarques`, not `asqav`.

```suggestion
- [Asqav SDK on GitHub](https://github.com/jagmarques/asqav-sdk)
```

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: content/integrations/frameworks/asqav.mdx
Line: 94-98

Comment:
**Import placement and missing context**

Per the project's style guide, imports should be at the top of the module rather than scattered across separate steps. The `from asqav import verify_signature` here is also in a separate code block from the Step 3 imports, which means `receipt` (defined in Step 4) is undefined if a reader runs this cell standalone.

Consider consolidating the import into Step 3 and adding a note that `receipt` comes from the previous step, or add `verify_signature` to the Step 3 imports and just call it here without re-importing.

**Rule Used:** Move imports to the top of the module instead of p... ([source](https://app.greptile.com/review/custom-context?memory=c960fc07-9928-409f-a18b-a780cbdded12))

**Learned From**
[langfuse/langfuse-python#1387](https://github.com/langfuse/langfuse-python/pull/1387)

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: content/integrations/frameworks/asqav.mdx
Line: 108

Comment:
**"Search Langfuse for the same `trace_id`" is misleading**

The Asqav-generated `trace_id` is stored in Langfuse as `metadata.asqav_trace_id`, not as Langfuse's native trace ID (which is auto-generated by `@observe`). Telling readers to "search Langfuse for the same `trace_id`" implies a direct ID lookup that won't work — they'd actually filter by metadata.

```suggestion
The `trace_id` you put on both sides is the join key. If a regulator asks for evidence of a specific signed action, you hand them the Asqav verification URL; if you need to look up the prompt and completion behind that action, you filter the Langfuse Trace Table by `metadata.asqav_trace_id` matching that value.
```

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "docs(integrations): add Asqav (signed ag..." | Re-trigger Greptile

Greptile also left 3 inline comments on this PR.

Adds a frameworks integration page describing how to use Asqav alongside
Langfuse. Asqav holds a signed, tamper-evident record of each agent action;
Langfuse holds the trace, prompts, completions, and scores. The page shows
the join pattern via a shared trace_id and registers the new page in
content/integrations/frameworks/meta.json.
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 28, 2026

@jagmarques is attempting to deploy a commit to the langfuse Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Apr 28, 2026

CLA assistant check
All committers have signed the CLA.

@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. documentation Improvements or additions to documentation labels Apr 28, 2026

This page shows how to combine [Asqav](https://asqav.com) with Langfuse so the trace you use to debug an agent and the audit record you hand to a regulator stay linked by a shared `trace_id`.

> **What is Asqav?** [Asqav](https://github.com/asqav/asqav-sdk) is an AI agent governance layer that produces signed, tamper-evident audit records for agent actions. Each call to `agent.sign(...)` returns a verification URL backed by an ML-DSA (post-quantum) signature. By default the SDK runs in hash-only mode, so prompts and tool inputs are hashed locally and only the digest plus metadata is sent to Asqav. The default deployment is GDPR-aware data minimization and is designed to support EU AI Act reporting obligations.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Incorrect GitHub URL for Asqav SDK

The link https://github.com/asqav/asqav-sdk will 404. Based on the PyPI package metadata, the asqav.com homepage, and the PR author's profile, the actual repository is at https://github.com/jagmarques/asqav-sdk.

Suggested change
> **What is Asqav?** [Asqav](https://github.com/asqav/asqav-sdk) is an AI agent governance layer that produces signed, tamper-evident audit records for agent actions. Each call to `agent.sign(...)` returns a verification URL backed by an ML-DSA (post-quantum) signature. By default the SDK runs in hash-only mode, so prompts and tool inputs are hashed locally and only the digest plus metadata is sent to Asqav. The default deployment is GDPR-aware data minimization and is designed to support EU AI Act reporting obligations.
> **What is Asqav?** [Asqav](https://github.com/jagmarques/asqav-sdk) is an AI agent governance layer that produces signed, tamper-evident audit records for agent actions. Each call to `agent.sign(...)` returns a verification URL backed by an ML-DSA (post-quantum) signature. By default the SDK runs in hash-only mode, so prompts and tool inputs are hashed locally and only the digest plus metadata is sent to Asqav. The default deployment is GDPR-aware data minimization and is designed to support EU AI Act reporting obligations.
Prompt To Fix With AI
This is a comment left during a code review.
Path: content/integrations/frameworks/asqav.mdx
Line: 12

Comment:
**Incorrect GitHub URL for Asqav SDK**

The link `https://github.com/asqav/asqav-sdk` will 404. Based on the PyPI package metadata, the `asqav.com` homepage, and the PR author's profile, the actual repository is at `https://github.com/jagmarques/asqav-sdk`.

```suggestion
> **What is Asqav?** [Asqav](https://github.com/jagmarques/asqav-sdk) is an AI agent governance layer that produces signed, tamper-evident audit records for agent actions. Each call to `agent.sign(...)` returns a verification URL backed by an ML-DSA (post-quantum) signature. By default the SDK runs in hash-only mode, so prompts and tool inputs are hashed locally and only the digest plus metadata is sent to Asqav. The default deployment is GDPR-aware data minimization and is designed to support EU AI Act reporting obligations.
```

How can I resolve this? If you propose a fix, please make it concise.


## Resources

- [Asqav SDK on GitHub](https://github.com/asqav/asqav-sdk)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Same incorrect GitHub URL in Resources

Same broken link as in the blockquote above — the repository owner is jagmarques, not asqav.

Suggested change
- [Asqav SDK on GitHub](https://github.com/asqav/asqav-sdk)
- [Asqav SDK on GitHub](https://github.com/jagmarques/asqav-sdk)
Prompt To Fix With AI
This is a comment left during a code review.
Path: content/integrations/frameworks/asqav.mdx
Line: 112

Comment:
**Same incorrect GitHub URL in Resources**

Same broken link as in the blockquote above — the repository owner is `jagmarques`, not `asqav`.

```suggestion
- [Asqav SDK on GitHub](https://github.com/jagmarques/asqav-sdk)
```

How can I resolve this? If you propose a fix, please make it concise.

| Langfuse | trace, prompt, completion, latency, cost, evals, scores | engineers debugging the agent |
| Asqav | hash of the action, agent ID, action type, signature, timestamp, optional `trace_id` | auditors, risk and compliance teams |

The `trace_id` you put on both sides is the join key. If a regulator asks for evidence of a specific signed action, you hand them the Asqav verification URL; if you need to look up the prompt and completion behind that action, you search Langfuse for the same `trace_id`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 "Search Langfuse for the same trace_id" is misleading

The Asqav-generated trace_id is stored in Langfuse as metadata.asqav_trace_id, not as Langfuse's native trace ID (which is auto-generated by @observe). Telling readers to "search Langfuse for the same trace_id" implies a direct ID lookup that won't work — they'd actually filter by metadata.

Suggested change
The `trace_id` you put on both sides is the join key. If a regulator asks for evidence of a specific signed action, you hand them the Asqav verification URL; if you need to look up the prompt and completion behind that action, you search Langfuse for the same `trace_id`.
The `trace_id` you put on both sides is the join key. If a regulator asks for evidence of a specific signed action, you hand them the Asqav verification URL; if you need to look up the prompt and completion behind that action, you filter the Langfuse Trace Table by `metadata.asqav_trace_id` matching that value.
Prompt To Fix With AI
This is a comment left during a code review.
Path: content/integrations/frameworks/asqav.mdx
Line: 108

Comment:
**"Search Langfuse for the same `trace_id`" is misleading**

The Asqav-generated `trace_id` is stored in Langfuse as `metadata.asqav_trace_id`, not as Langfuse's native trace ID (which is auto-generated by `@observe`). Telling readers to "search Langfuse for the same `trace_id`" implies a direct ID lookup that won't work — they'd actually filter by metadata.

```suggestion
The `trace_id` you put on both sides is the join key. If a regulator asks for evidence of a specific signed action, you hand them the Asqav verification URL; if you need to look up the prompt and completion behind that action, you filter the Langfuse Trace Table by `metadata.asqav_trace_id` matching that value.
```

How can I resolve this? If you propose a fix, please make it concise.

@jagmarques jagmarques closed this by deleting the head repository May 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants