Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 122 additions & 0 deletions a2as.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
manifest:
version: "0.1.2"
schema: https://a2as.org/cert/schema
subject:
name: obrizan/doi-parser
source: https://github.com/obrizan/doi-parser
branch: dev
commit: "85086aa7"
scope: [crossref/__init__.py, scopus/__init__.py, assistant/__init__.py]
issued:
by: A2AS.org
at: '2026-01-26T16:11:42Z'
signatures:
digest: sha256:Wh8Zr7cunMu_B8in-asOJJin-x4P0FmHvYmW2vp6w3s
key: ed25519:adyLm-ZOE12G1dGYm7Fn2XITAG9CblU2Mg6PnnEpGfU
sig: ed25519:I-YXehNIyeVxiJZ5pBxjyQqR1LMEALHEefAZHl2rkW0DzcDUZkYeW6twoX3L3ZnjdN7h4cH43vhbPb57-rnQAg

agents:
agent:
type: instance
models: [gpt-4.1]
tools: [find_doi_by_title_tool]
params:
name: Crossref search
output_type: ReferenceLookupResult
instructions: ['Find DOI from a title or partial citation using Crossref. If the user gives any reference-like string,
you must call this tool. Search by the paper/document title only. Do not search by a conference name or journal
name.']

models:
gpt-4.1:
type: default
agents: [agent]

tools:
find_doi_by_title_tool:
type: decorator
agents: [agent]

imports:
Agent: agents.Agent
asyncio: asyncio
BaseModel: pydantic.BaseModel
csv: csv
find_doi_by_title: crossref.find_doi_by_title
first_true: more_itertools.first_true
function_tool: agents.function_tool
get_by_doi: scopus.get_by_doi
os: os
requests: requests
Runner: agents.Runner

functions:
__init__:
type: sync
module: scopus
args: [self, data]
doi:
type: sync
module: scopus
args: [self]
params:
returns: str
find_doi_by_title:
type: sync
module: crossref
args: [title]
find_doi_by_title_tool:
type: tool
module: assistant
args: [title]
params:
returns: dict
format_citation:
type: sync
module: crossref
args: [data]
params:
returns: str
get_by_doi:
type: sync
module: scopus
args: [doi]
main:
type: async
module: assistant
scopus_id:
type: sync
module: scopus
args: [self]
params:
returns: str
url:
type: sync
module: scopus
args: [self]
params:
returns: str

files:
references.txt:
type: literal
actions: [read]
params:
caller: [open]
alias: [f]
results.csv:
type: literal
actions: [write]
params:
caller: [open, csv.writer]
alias: [csvfile]

networks:
api.crossref.org:
type: api
actions: [GET]
urls: [/works]
protocols: [https]
ports: ["443"]
params:
caller: [find_doi_by_title, get_by_doi]