The easy case

AI agent for ABP.io / ASP.NET Zero

If your product is built on ASP.NET Zero, the adapter is a thin translation layer over the auth, permissions, application services, and notifications ABP already ships.

Auth method: jwt (ASP.NET Zero bearer tokens / AbpSession)

ASP.NET Zero (ASP.NET Core plus the ABP framework) already provides the three things every Cambiary adapter needs: JWT authentication via AbpSession, a rich permission system in IPermissionChecker, and application services (IApplicationService over IRepository<T>). You are not building auth, permissions, or data access — you are exposing the ones you already have. That is why this is the easy case.

The adapter maps one-to-one onto infrastructure you already run: identity and tenant come from IAbpSession, getPermissions projects IPermissionChecker.IsGranted results into platform tool-permission strings, executeTool dispatches into your existing application services, and pushNotification reuses ABP's notification system. Tenant context maps straight from IAbpSession.TenantId, lining up with ABP's own multi-tenancy so runs and audit are already tenant-scoped.

This is the reference adapter that actually exists in the repository (adapters/pms-ats/), backing the platform's first fully worked reference workflow — governed candidate screening inside a People Management Suite. A worked C# controller shows each of the five methods reusing ABP primitives.

Highlights
Lowest adapter effort — a thin layer over existing ABP auth and services
Reference adapter that exists today (adapters/pms-ats/)
tenantId maps straight from IAbpSession.TenantId
Reuses IPermissionChecker, IApplicationService, and ABP notifications
How the integration works

The integration path.

01

Embed <agentic-panel> in your Angular or MVC page and feed it the current AbpSession token plus the entity on screen as a references-only HostContext.

02

Add an adapter controller (AgentAdapterController : AbpController) that reuses ABP's auth, IPermissionChecker, and application services.

03

Map ABP permissions to platform tool-permission strings in getPermissions (e.g. IsGrantedAsync("Pages.ATS.Resumes") to tool.list_resumes.execute).

04

Dispatch executeTool idempotently into your IApplicationService classes; honor the idempotencyKey so retries replay rather than repeat.

05

Register the host once with authMethod "jwt"; tenantId comes from IAbpSession.TenantId.

Worked example

Worked C# adapter controller (abridged)

[Route("agent-adapter")]
public class AgentAdapterController : AbpController
{
    private readonly IPermissionChecker _permissionChecker;
    private readonly IResumeAppService _resumeAppService;

    // validateToken — ABP already validated the JWT; AbpSession carries identity.
    [HttpGet("whoami")]
    public object WhoAmI() =>
        new { valid = AbpSession.UserId.HasValue, userId = AbpSession.UserId };

    // getPermissions — map ABP permissions to platform tool-permission strings.
    [HttpGet("permissions")]
    public async Task<string[]> GetPermissions()
    {
        var perms = new List<string>();
        if (await _permissionChecker.IsGrantedAsync("Pages.ATS.Resumes"))
            perms.Add("tool.list_resumes.execute");
        if (await _permissionChecker.IsGrantedAsync("Pages.ATS.Analysis.Save"))
            perms.Add("tool.save_analysis.execute");
        return perms.ToArray();
    }

    // executeTool — idempotent dispatch into existing application services.
    [HttpPost("tools/{toolId}/execute")]
    public async Task<ToolResult> Execute(string toolId, [FromBody] ToolArgs a)
    {
        if (await _idem.SeenAsync(a.IdempotencyKey))
            return await _idem.ReplayAsync(a.IdempotencyKey);
        return toolId switch
        {
            "list_resumes"  => Ok(await _resumeAppService.ListAsync(a.Args["jobId"])),
            "save_analysis" => Ok(await _resumeAppService.SaveAnalysisAsync(a.Args)),
            _               => Fail("unknown tool"),
        };
    }
}
Honest note

This is a documented integration approach with worked code — not a pre-built, install-and-go production connector. Governance, the adapter SDK, idempotency, and audit are built; the gateway-to-registered-adapter write dispatch is still maturing. See the full build-status honesty box →

Start your ABP.io / ASP.NET Zero integration.

The adapter SDK and worked examples are in the docs. We'll walk your team through the two seams, the governance gate, and this path end to end.